Problems with scene size

   456   3   1
User Avatar
Member
1 posts
Joined: 9月 2019
オフライン
Hello,

I work with a large scene from another program. And because we are talking about a space scene, the ratio of the sizes of objects sometimes differs by 5000 times. And if I try to reduce the size of the scene, some objects become too small. If I work with the original size of the scene, I get big problems in the viewport and on the render, the picture is distorted, particles disappear and much more. If I simply move the box by any of the coordinates by the number 1e7, part of the box disappears, the viewport starts shaking. I have attached screenshots. Perhaps these are limitations in the program itself, that you cannot move objects at such a distance.

Attachments:
111.jpg (223.1 KB)
222.jpg (208.2 KB)

User Avatar
Member
19 posts
Joined: 1月 2016
オフライン
I don't have a quick solution, but you can try Uniform Scaling it by 0.0001 or until the scene becomes reasonable size. Working in real scale that far away from the origin is never a good idea.
User Avatar
Member
58 posts
Joined: 8月 2014
オフライン
For anything remotely realistic-space-scale, you'll have to use 64-bit precision position data to avoid precision issues.

You can convert an object's P attribute to 64-bit using the Attribute Cast SOP.

It's possible that won't help with camera-jitter issues though, as I presume Houdini's camera handling is hardwired to 32-bit. Not sure about that.
(And those issues might follow you into rendering, etc... depending on if the renderer supports 64-bit precision or not)
Edited by VortexVFX - 2025年8月27日 18:27:23
Dan Wood
Vortex VFX Ltd
User Avatar
スタッフ
5266 posts
Joined: 7月 2005
オフライン
If you transform the parent object rather than the individual points, you'll get a better result. The object transform and the view transform are combined on the CPU in 64b, often cancelling out the large values, and sent to the GPU as a 32b transform. But if you transform P, the attribute is sent as 32b, and that's causing precision loss. GPUs do not like working in 64b -- they run almost 30x slower in some cases, so we do not support 64b math in our GLSL shaders.
  • Quick Links