検索 - User list
Full Version: Correct way to export a point3d[] (64-bit) attribute to USD
Root » Technical Discussion » Correct way to export a point3d[] (64-bit) attribute to USD
vinayfx123
Hi All,
I'm completely stuck trying to fix a large-world viewport jittering issue. My goal is to convert a 32-bit USD (point3f) to a 64-bit USD (point3d).

I'm using an Attribute Cast SOP to convert my P attribute to 64-bit float.

However, when I export using the USD Export SOP, the saved file is always point3f (32-bit).

How can I force Houdini to save my 64-bit points SOP data to disk and load it in stage context?

Is this a bug in Houdini 20.0.445, or am I doing something wrong in my workflow?
Heileif
Limitation of USD maybe.
vinayfx123
Thanks for the reply. I'm not sure if it's a limitation of the USD format itself.

My scene's transformation values are huge—we're millions of units away from the origin. For example, a typical transform is:

X: ~9.89e+06 (9,890,000)
Y: ~4.22e+05 (422,000)
Z: ~1.0e+07 (10,000,000)

Because my exported point3f data is only 32-bit, the precision loss is catastrophic. I'm seeing all the classic symptoms: weird artifacts, jiggling vertices, and completely broken, flickering shadows.

For now, I've found that using a Match Size LOP on the environment and Character can work as a temporary workaround by moving the caches to grid, but we can't do this for a whole line of shots.

If we can't force Houdini to export 64-bit P, is there any other way to solve this precision issue in the stage context without matchsize lop?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB