Radii Preserving Implicit Primitives

I had a question about implicit primitives. If you define a Sphere with a radius, usdGeomImaging produces a right handed catmull clark subdivision surface containing control points positioned radius units away from the center of mesh.

Refinement will contract the limit surface away from the specified radius. If someone is using a Sphere as a guide for collisions, this can create discontinuities between the refined imaged surface and the true implicit sphere that might be used in simulation or other contexts.

Should usdGeomImaging “nudge” the control points away from the center so the refined imaged surface is closer to the radius of specified implicit sphere? Alternatively, could implicit rendering be more easily delegated to renderers native support?

We expect that other primitives like Capsule, Cone, and Cylinder requiring similar treatment.

1 Like

With Hydra2 spheres are already passed as implicit objects and only converted to meshes via a Scene Index if requested. Does that solve it?

Possibly. Storm support for implicit spheres, cylinders, cones, and capsules would be a good step to provide a reference. Some consideration for compatibility between Hydra 1.0 and Hydra 2.0 would need to be considered as well.

Without double-checking to be sure, I believe the hdPrman delegate in the GitHub repo works with implicit spheres.