-
Notifications
You must be signed in to change notification settings - Fork 0
Limitations
I want to thank Todd Manus www.itodd.net for first drawing this issue to my attention.
As highlighted in other pages there is a limitation to using divide / multiply loops when rebuilding with materials and lightgroups simultaneously. As separate rebuild blocks they must rebuild back to the beauty before merging to the larger rebuild through a divide / multiply loop, this is because the loop shows the difference between the rebuild and the beauty it's compared against.
In testing this become apparent to me for emissive objects / materials. Only occurring in the additive rebuild as the subtractive method takes from, and then adds back to the beauty for each AOV, (so taking away then plussing back an empty emission AOV from the beauty does nothing). The emissive objects / materials are still in the (beauty) rebuild B pipe and can be taken from / plussed back if a lightgroup AOV has been assigned to these objects / materials.
Compared to the additive rebuild where the composite starts from an empty image and each AOV must be plussed back to rebuild the beauty, an empty emission AOV means a missing emission AOV in the materials rebuild breaking the larger rebuild as it's passed through a divide / multiply loop. In the same regard (additive rebuild) if an emissive object / material is rendered through a lightgroup AOV and not an emission AOV, and if there are no other lightgroup AOVs to rebuild the lightgroups block back to beauty before it's passed through a divide / multiply loop, this will break the larger materials & lightgroups rebuild.
Todd Manus raised this with me using test renders from RenderMan 27, Houdini 21. Then I found the same issue when rendering the custom render vars test scene (refining_karma_renders) in Karma, Houdini 22. I've included test renders from refining_karma_renders.hip from H21, H22 (using H22 nodes) and H22 (using H21 nodes) to track changes as Karma is developed and out of the box I observed that H21 renders emissive AOvs when selected but not the custom render var 'visible_lights', whereas H22 does the opposite.
It's easily worked around with manual adjustments and I've added a feature to the additive rebuild whereby users can add duplicate AOVs to multiple (material & lightgroup) breakouts, so I've documented it as a limitation rather than 'known issue' to be fixed.
When using divide / multiply loops for additive rebuilds, each material and lightgroups block must rebuild back to the beauty before being merged through a divide / multiply loop.