Hello. I have a USD scene where some of the geometry primitives have the doubleSided attribute set to True. The official USD documentation [openusd.org] states:
... However, it is often advantageous to model thin objects such as paper and cloth as single, open surfaces that must be viewable from both sides, always. Setting a gprim's doubleSided attribute to true instructs all renderers to disable optimizations such as backface culling for the gprim, and attempt (not all renderers are able to do so, but the USD reference GL renderer always will) to provide forward-facing normals on each side of the surface for lighting calculations.
The issue is that, if i enable "Cull Backface" in Karma Render Settings (Rendering - Geometry and Shading - Cull Backface), the attribute is not respected and the geometry back faces are culled anyway. Is this a known bug? An intended behavior?
So, you're telling Karma to cull the backfaces, but also to shade double sided? I think in this case, Karma decides to the cull backfaces option takes priority.
Internally, there's only one option in Karma that controls this behaviour. The USD attribute is used to set the value of the "Cull Backface" property in Karma - but it looks like if the Karma property also exists, it overrides the USD behaviour. This might actually change based on threading or updates to the USD/Karma libraries. When you're giving conflicting instructions, you get undefined behaviour.
Some properties set in Karma render settings will be overridden per prim if the same property is also present on the prim. I too would have expected this to work.
mark So, you're telling Karma to cull the backfaces, but also to shade double sided? I think in this case, Karma decides to the cull backfaces option takes priority.
Internally, there's only one option in Karma that controls this behaviour. The USD attribute is used to set the value of the "Cull Backface" property in Karma - but it looks like if the Karma property also exists, it overrides the USD behaviour. This might actually change based on threading or updates to the USD/Karma libraries. When you're giving conflicting instructions, you get undefined behaviour.
Thank you for your answer Mark,
My understanding after reading USD's documentation (bolded text in my previous message) was that, even if backface culling is set in Karma, if a geometry primitive is marked as "doubleSided", Karma would render both sides. Using the USDView application from the USD SDK i get that exact behaviorm: "doubleSided" geometries are visible even when the "Cull backfaces" option is enabled.