-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ToyCar model is too small. Is it intentional? #63
Comments
I'm not the creator of the model, so I'm not sure why the default size is so small, but I think applying ToyCar's built-in camera will make it appear just right. |
It's probably not about the appearance per se, but rather about combining this model with other models: The unit in glTF is meters, and when the whole model has a height of 2.8 centimeters, including the platform/socket, then the actual car itself might have a height of ~1.5 centimeters. I'm not sure whether one can talk about "right" or "wrong" in this case: It is supposed to be a toy car, but ... a really tiny one, FWIW... EDIT @cx20 There's that |
For reference, I collected samples that specify scale with gltf-test.
|
I don't believe most of these models are based on a true physical thing, so I doubt there is a ground truth to compare to. What is important is the appearance of correct scale. I think @cx20 has done a nice job of showing the problem models. The BoomBox is a great example (a boom box for ants!). One of the most common errors with glTF exporters is to get the units wrong, since we're basically the first format to specify meters. The sample models indicate best practices, so I think it's important to get this right. This used to not matter because in the 3D the camera is arbitrary, but glTF is commonly used for AR, where the units are critical. Bad scale also makes these sample models difficult to use in AR. |
Certain models don't have a sensible concept of a "size", e.g. the For some models, there will not be a "ground truth", like the The "real" objects, like the Finally, the CAD models ( Maybe glTF-Transform from @donmccurdy could be helpful to update these models? Something along the lines of
to update the size of the models as a batch process...? One crucial question might then be: Do we want to scale the geometry, or do we just want to adjust the scaling factor of the root node? |
I would say whatever's easiest, personally. glTF only specifies the end product of all transforms is meters, so the internal units are arbitrary. |
This could be pretty quick as a batch process that updates scale of the root, yes. Would someone be able to suggest updated sizes? glTF-Transform already has a Scaling vertex data feels "cleaner" if the attributes are float32, but is probably a bit more work to implement and not applicable for normalized integer attributes. |
I agree that scaling the geometry feels "cleaner" and might help "composability" in some way, even though it is not strictly necessary.
Should I open a 'feature' issue in However, just as a first glance, the bounding box sizes (and min/max values) of the aforementioned models:
Some of these could reasonably be millimeters (e.g. the first three ones) or centimeters (the fox). For the others... one could only guess (is that |
Physical units in vertex-level data is just not generally practical with integer quantization, unless the geometry is (a) close to, but not greater than, 1m in all dimensions (for normalized attributes), or (b) greater than tens of thousands of meters in size. In all other cases we'd be sacrificing precision just to avoid putting scales on nodes; that doesn't seem worth it. Note that the |
Is there a Khronos process for getting these issues resolved? Everyone on this thread is in agreement about what should be done, but no one is clearly an owner. Should Khronos put out an RFP for someone to actually fix/upkeep the models in this repo? |
Unless this is resolved (via a PR to Sample Assets) by Nov 27, it will be transferred to that repo along with #64. |
Should future geometry be converted into glTF at just under 1m for its largest dimension, then use a parent node to scale it to real-world dimensions? |
I don't think it's necessary – an optimizer applying |
Most toy cars are few centimeters in size, so that model size seems plausible. |
I was adding ToyCar to model-viewer fidelity test scenarios. It looks like the model size is too small. Sharing in case it was not intentional. The bounding box size from model-viewer editor tool is as below:
{x: 0.0734429171, y: 0.028822900858008347, z: 0.0739622928921281}
/cc @elalish
The text was updated successfully, but these errors were encountered: