google / model-viewer

Easily display interactive 3D models on the web and in AR!
https://modelviewer.dev
Apache License 2.0
6.85k stars 809 forks source link

Please add remark about differing size units between glTF/glb and USDZ #559

Closed PixelPartner closed 4 years ago

PixelPartner commented 5 years ago

The README recommends to use meter as unit size. Note about units and model size in AR. Please add a note that USDZ exports should be in centimeter instead and may need scaling, or iOS users will see models 100 times smaller.

cdata commented 5 years ago

@PixelPartner thanks for the feedback. I have it on good authority that 1 unit is treated as 1 meter by AR Quick Look, but I cannot find any definitive documentation on the subject. Can you share a link to documentation from Apple or Pixar on this subject? Or perhaps a reproducible demo that confirms what you are claiming?

PixelPartner commented 5 years ago

I experienced Quicklook assuming centimeters and asked someone more familiar with the matter.

He quoted (on twitter) either Apple or Pixar with:

"If a UsdStage has no authored metersPerUnit we fall back to the value UsdGeomLinearUnits::centimeters, i.e. 0.01."

Am 20.05.2019 um 17:30 schrieb Christopher Joel notifications@github.com:

@PixelPartner thanks for the feedback. I have it on good authority that 1 unit is treated as 1 meter by AR Quick Look, but I cannot find any definitive documentation on the subject. Can you share a link to documentation from Apple or Pixar on this subject? Or perhaps a reproducible demo that confirms what you are claiming?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

cdata commented 5 years ago

This may be true, but that does not mean that Quick Look does not specify a metersPerUnit for its UsdStage.

Other engineers who are subject mater experts in this area have confirmed for me that Quick Look treats 1 unit as 1 meter.

If you can you give me the steps to reproduce what you saw Quick Look doing, I can review that with the other engineers. Perhaps we will learn something interesting :)

Sadly, Apple's documentation on this topic doesn't seem to exist. If you can't give me repro steps, I have to trust the guidance of the other engineers who have more expertise in this area.

PixelPartner commented 5 years ago

To reproduce, please:

Thank you very much.

Am 21.05.2019 um 06:30 schrieb Christopher Joel notifications@github.com:

This may be true, but that does not mean that Quick Look does not specify a metersPerUnit for its UsdStage.

Other engineers who are subject mater experts in this area have confirmed for me that Quick Look treats 1 unit as 1 meter.

If you can you give me the steps to reproduce what you saw Quick Look doing, I can review that with the other engineers. Perhaps we will learn something interesting :)

Sadly, Apple's documentation on this topic doesn't seem to exist. If you can't give me repro steps, I have to trust the guidance of the other engineers who have more expertise in this area.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/GoogleWebComponents/model-viewer/issues/559?email_source=notifications&email_token=AAAR6X2E5T5CELO3IGJ23ADPWN3HFA5CNFSM4HOBNS22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV2W4OI#issuecomment-494235193, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAR6X5PMIBVE72TF2GKXXTPWN3HFANCNFSM4HOBNS2Q.

cdata commented 5 years ago

@PixelPartner ultimately we are not in control of what a user decides to set as their metersPerUnit. I will propose that we change our documentation to remind users that while we recommend metersPerUnit should be set to 1, ultimately they must decide for themselves what the value should be.

PixelPartner commented 5 years ago

Please make sure, the usd file has a metersPerUnit setting for its UsdStage or Quicklook will default to centimeters and assets will look 100 times smaller than the gltf version.

Am 21.05.2019 um 06:59 schrieb Christopher Joel notifications@github.com:

@PixelPartner ultimately we are not in control of what a user decides to set as their metersPerUnit. I will propose that we change our documentation to remind users that while we recommend metersPerUnit should be set to 1, ultimately they must decide for themselves what the value should be.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

PixelPartner commented 5 years ago

The quote came from the official Pixar docs: https://graphics.pixar.com/usd/docs/api/group___usd_geom_linear_units__group.html

Von meinem iPhone gesendet

Am 21.05.2019 um 06:59 schrieb Christopher Joel notifications@github.com:

@PixelPartner ultimately we are not in control of what a user decides to set as their metersPerUnit. I will propose that we change our documentation to remind users that while we recommend metersPerUnit should be set to 1, ultimately they must decide for themselves what the value should be.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

PixelPartner commented 5 years ago

Link to the discussion https://groups.google.com/forum/m/#!msg/usd-interest/y7bUOv58H3c/EgKKHEzoAAAJ

Am 21.05.2019 um 07:39 schrieb Thomas Kumlehn thomaskumlehn@googlemail.com:

The quote came from the official Pixar docs: https://graphics.pixar.com/usd/docs/api/group___usd_geom_linear_units__group.html

Von meinem iPhone gesendet

Am 21.05.2019 um 06:59 schrieb Christopher Joel notifications@github.com:

@PixelPartner ultimately we are not in control of what a user decides to set as their metersPerUnit. I will propose that we change our documentation to remind users that while we recommend metersPerUnit should be set to 1, ultimately they must decide for themselves what the value should be.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

PixelPartner commented 5 years ago

But the discussion also mentioned that metersPerUnit is a very new property. Too new to be supported by Apple's usdz_converter and some other tools. The old standard was centimeters, and that's why the fallback for the new property is 0.01[m]. I'm still not sure about a helpful wording.

pushmatrix commented 4 years ago

FYI metersPerUnit is now working in iOS13. It also supports channel packing, so it will use the same ORM texture from the glb in the usdz.

The problem is that this will only work on iOS13. It will be ignored on iOS12 resulting in the model being way too big.

How we got around it at Shopify is to only show the AR badge on iOS13 and above.

smalls commented 4 years ago

I've proposed a small change to mention size units as part of general verification of converted output. In general there might be more recommendations we can give but I'm not sure how we'll keep them up to date. We've had a long-standing interest in tooling here (#278) which seems like potentially a better answer than a guide.

rianlukog commented 3 years ago

Facing some issues regarding size scaling, wondering what is the best way to go about it. My 3d model looks good in the 3d view port but upon opening the AR port the model is so tiny that it is barely visible and is often off-centered to the right

Explanation video and post: #2526 (comment)