Scene Scale Solaris in Houdini Meters or in Maya Scale?

Hi everybody, could it be possible that the scene scale ( on which especially sss and dof depends ) is in maya scale rather than the houdini meter scale? Scaled at meter levels the Depth of field is really exaggerated and the SSS is way too translucence. If not how big is the sensor size of the hydra camera compared to a physical one, if one has to match the dof and focal length of a real camera?

jsmackI think the sensor size was in cm until a very recent build, which would affect dof. Karma sss is specified in scene units, whatever they may be.

Thank you very much so it was in maya scale in 18.0.416. Regarding the sss this could be renderman issue. As I was using renderman but the dof does not differ between renderman and karma so I thought the sss would also behave the same. I will do some testing, thank you very much!

Roman SThank you very much so it was in maya scale in 18.0.416. Regarding the sss this could be renderman issue. As I was using renderman but the dof does not differ between renderman and karma so I thought the sss would also behave the same. I will do some testing, thank you very much!

I don't know about renderman. It might be using some kind of units for sss.

I believe the world scale is in meters, but the sensor size is specified in cm, as opposed to mantra where the sensor size can be specified in mm by default, and the scene scale is configured as meters by default but can also be specified.

Scene scale in Solaris is defined according to the USD standard, which allows a layer to have metadata indicating the numbers of meters per world unit. Houdini deviates a bit from the standard in that the USD library default value if one is not explicitly specified is 0.01m/unit (cm scale). In Houdini, we look at the length units preferences in the Edit->Preferences dialog for the default value. But you can change it with the Configure Layer LOP. Of course, as with USD as a whole, Houdini doesn't actaully _do_ anything with this information. It just records it.

The USD standard also declares that camera aperture and focal length attribtues are in “tenths of a world unit” (which is mm if your world units are the default cm scale). This behavior is problematic for renderers, so we are investigating ways to provide more understandable behavior in the next major release.

My understadning of shading is pretty weak, so I don't really know how these units matter or should be used in a shader…

mtuckerScene scale in Solaris is defined according to the USD standard, which allows a layer to have metadata indicating the numbers of meters per world unit. Houdini deviates a bit from the standard in that the USD library default value if one is not explicitly specified is 0.01m/unit (cm scale). In Houdini, we look at the length units preferences in the Edit->Preferences dialog for the default value. But you can change it with the Configure Layer LOP. Of course, as with USD as a whole, Houdini doesn't actaully _do_ anything with this information. It just records it.

The USD standard also declares that camera aperture and focal length attribtues are in “tenths of a world unit” (which is mm if your world units are the default cm scale). This behavior is problematic for renderers, so we are investigating ways to provide more understandable behavior in the next major release.

My understadning of shading is pretty weak, so I don't really know how these units matter or should be used in a shader…

Units for the image plane matter in as much as they are used to compute the size of the circle of confusion is world space. The USD spec of 10ths of the world space units seems unintuitive. If anything, there should be a units conversion attribute on the camera to go from image plane units to scene units, so the render knows what the image plane units mean and without having to know anything about the world's units.

“The USD spec of 10ths of the world space” OK. Does this mean we can assume Solaris 1 unit = 1 cm (maya scale) or 1 unit = meter like the rest of Houdini.

I have been running solaris 1 until = 1 meter. But also seeing camera clipping doing this.

Way back before PC's could do 3D I remember people saying we need a standard for 3D scale on Amiga computers with 3D programmes, lightwave and realsoft3D. 28 years latter there is still debate.

It would be great if all the major 3D apps got together and decided on a unified scale for everything. Or failing that measurements could be stored in meta data in the usd/abc file. A Houdini meter. A Maya meter etc. This way on import you could have a toggle asking you something like “program X measurements detected, do you want to convert to current program measurements?”.

There can be no single unified length unit. Floating point precision limitations make this impossible. So instead we've gone the way of letting each file say what its length units are. This is true in USD, and it is true in Houdini. I don't know about Maya, but I suspect it is true there too. The problem is there is no way to consistently automatically convert a file between units because not all attributes have the same units (many are unitless, some are lenghts, some are areas). And custom user attributes are not tagged with their units by any application that I'm aware of (so this is still a piece that is missing from all file formats and applications to allow mixing and matching of files with differing units).

Youo shouldn't assume anything. You should use the available facilities to explicitly declare the units you intend to use. You can set the Houdini default length unit in Edit->Preferences. This unit is used by all of Houdini, including Solaris, unless you explicitly set a different value with the Configure Layer LOP.

mtuckerYouo shouldn't assume anything. You should use the available facilities to explicitly declare the units you intend to use. You can set the Houdini default length unit in Edit->Preferences. This unit is used by all of Houdini, including Solaris, unless you explicitly set a different value with the Configure Layer LOP.

That's good to know. Does that go for husk run from command line as well? Is this preference saved in the hip file or the user preferences? The way we have the render farm setup, it doesn't have access to user prefs, so I wonder how this will affect husk.

Thank you very much for your clarifications. I will keep that in mind and do some testing. Probably it is best to set houdini to maya scene scale to avoid surprises. Good question regarding the husk commandline rendering. This is something that would be good to know.

jsmackThat's good to know. Does that go for husk run from command line as well? Is this preference saved in the hip file or the user preferences? The way we have the render farm setup, it doesn't have access to user prefs, so I wonder how this will affect husk.

It goes for Solaris, which means that Solaris will write the value of the Houdini preference unit length to the USD files it generates. But in neither case, Houdini or husk, is the unit length communicated to the render delegate. There is no facility in hydra to do this. For the next release we are playing with various solutions to this, but because th evalue will be written to the USD files, whatever we do for Houdini will also work for husk. And will work on a farm without accses to Houdini preferences.

I believe the unit length preference is stored with the hip file (with a global preference for the default to use in a brand new hip file).