We’re experiencing an issue in rendering Crowds with usdskel, whereby all the geometry that is saved as polygons is dropping the normals information at rendertime - and appearing as faceted. We lose the nice smooth normals, exported from our assets.
Our only workaround, has been to force the meshes to render with subdivision, which appears smooth but increases the amount of geometry - making it hard to scale up a crowd.
Our pipeline currently uses Houdini and Renderman, and according to Pixar - who confirmed this issue - the USD is culling the normal attributes somehow.
Has anyone else seen this, and found a solution?
The mesh renders smooth (you may have to restart the render)
Tested in Solaris with Houdini 19.5.959, Renderman 25.3_2333134, Karma.
Karma
Karma auto-smoothes meshes without normals. You may need to set Cusp Angle to 0 via a Render Geometry Settings to see the facetting. This is equivalent to Renderman’s Smooth Polygon property and doesn’t solve the problem of losing the normals authored on the model.
Minimal Setup
The bug only happens with a working SkelRoot asset, meaning at the minimum you need:
A Skeleton prim
A SkelRoot prim with a skel:skeleton relationship pointing to the Skeleton prim
A mesh with skel:jointIndices and skel:jointWeights primvars
Removing any one of these 3 things fixes the normals.
Just a guess by looking at the file quickly, but have you tried using face normals instead of vertex normals? Currently it looks like it has the same count as the number of vertices, while looking at other polygonal meshes it seems to be using the face count instead so maybe that is throwing it off somehow?
I think this is likely because the Hydra skinning computation (both CPU, and Storm’s GPU computation) doesn’t handle deforming normals, and so they’re forced to be recomputed post-skinning
Just to followup from offline discussions about this… @cameronwhite is correct; this is a known limitation, and handling authored normals efficiently in UsdSkel computations is a potential concern… we’re working with the RenderMan team to prioritize this work.