You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Hi team !
We ran into issue reading USD files exported from 3DS Max, I assume this is something which falls into this repository responsability otherwise please let me know where to direct my bug report.
In 3DS Max we can specify what is the distance unit system for our work, and this translates in the USD ecosystem into the metersPerUnit stage metadata.
The UsdGeomCamera specification is sensitive to this information as some of its information must be relative to that information.
More specifically lens and filmback properties are measured in tenths of a scene unit rather than "raw" scene units (See Units of Measure for Camera Properties).
The bug we observed is that USD files exported from 3DS Max does not fully comply with this.
Here is an excerpt of what we get for exported UsdGeomCamera when the stage is as meters
We feel this is a bug as some camera properties seems to behave correctly (e.g. focusDistance) but not all the relevant ones (e.g. focalLength).
Beyond authored properties, it is also important to not rely on default value when the stage metersPerUnit is not using its default.
This means that other distance properties must be authored to be correct too.
For example, if you set the stage metersPerUnit you want to make an opinion on all distance based properties. In the above example it means that you need to also author clippingRange.
Steps to reproduce
Steps to reproduce the behavior:
Change the unit to be in meters
Author a scene in 3DS Max with camera and depth of field effect
Save your 3DS Max scene
Export the scene as USD (e.g. foo.usd)
Close the scene or reset the scene (you need to restart from an empty state)
Change the unit to be in centimeters
Reopen your saved 3DS Max scene (you should get a prompt stating the scene you are opening uses a different unit compared to the current one and asks if you want to convert it)
Export the scene as different USD (e.g. bar.usd)
Both exported files should displayed camera values compliant with the UsdGeomCamera specification.
And as such they should render the same image with a USD compliant and depth of field capable renderer.
Expected behavior
When exporting to USD, we expect Camera to fully comply with the UsdGeomCamera specification.
In particular we expect any distance based property to be authored correctly following the stage metersPerUnit information.
Rules for compliance can be found in Units of Measure for Camera Properties, and the UsdGeomCamera USD schema highlight which properties are distance based or not.
Attachments
I do have 3DS Max scene to share but GitHub won't accept those, let me know how we can share those.
Specs:
3ds Max version 2025
Plugin version 0.9
The text was updated successfully, but these errors were encountered:
theblackunknown
changed the title
Incorrect values for UsdGeomCamer awhen exporting USD from 3DS Max
Incorrect values for UsdGeomCamera when exporting USD from 3DS Max
Dec 6, 2024
Thank you for the very detailed report! Indeed we write out millimeters for the focal length, and with the spec you linked, that does appear to be wrong. I will log an issue to address this internally.
brossee-adsk
changed the title
Incorrect values for UsdGeomCamera when exporting USD from 3DS Max
[EMSUSD-1914] - Incorrect values for UsdGeomCamera when exporting USD from 3DS Max
Dec 6, 2024
Describe the bug
Hi team !
We ran into issue reading USD files exported from 3DS Max, I assume this is something which falls into this repository responsability otherwise please let me know where to direct my bug report.
In 3DS Max we can specify what is the distance unit system for our work, and this translates in the USD ecosystem into the
metersPerUnit
stage metadata.The UsdGeomCamera specification is sensitive to this information as some of its information must be relative to that information.
More specifically lens and filmback properties are measured in tenths of a scene unit rather than "raw" scene units (See Units of Measure for Camera Properties).
The bug we observed is that USD files exported from 3DS Max does not fully comply with this.
Here is an excerpt of what we get for exported
UsdGeomCamera
when the stage is asmeters
Here is an excerpt of what we get for exported
UsdGeomCamera
when the stage is ascentimeters
We feel this is a bug as some camera properties seems to behave correctly (e.g. focusDistance) but not all the relevant ones (e.g.
focalLength
).Beyond authored properties, it is also important to not rely on default value when the stage
metersPerUnit
is not using its default.This means that other distance properties must be authored to be correct too.
For example, if you set the stage
metersPerUnit
you want to make an opinion on all distance based properties. In the above example it means that you need to also authorclippingRange
.Steps to reproduce
Steps to reproduce the behavior:
Both exported files should displayed camera values compliant with the
UsdGeomCamera
specification.And as such they should render the same image with a USD compliant and depth of field capable renderer.
Expected behavior
When exporting to USD, we expect Camera to fully comply with the
UsdGeomCamera
specification.In particular we expect any distance based property to be authored correctly following the stage
metersPerUnit
information.Rules for compliance can be found in Units of Measure for Camera Properties, and the
UsdGeomCamera
USD schema highlight which properties are distance based or not.Attachments
I do have 3DS Max scene to share but GitHub won't accept those, let me know how we can share those.
Specs:
The text was updated successfully, but these errors were encountered: