render proxy
Posted: Tue Jan 10, 2017 8:08 am
In Maya each renderer has it own way to deal with render proxy, but they are very similar:
Mental-ray
https://knowledge.autodesk.com/support/ ... F-htm.html
Arnold
https://support.solidangle.com/display/AFMUG/Stand-ins
V-Ray
https://docs.chaosgroup.com/display/VRA ... +VRayProxy
render Proxy don't load any geometry in Maya but are external files only loaded at render time by the renderer itself,
this reduce drastically translation time, memory usage, and would give a direct access to Octane features which are not easy to support inside Maya.
It's much needed for the Octane plugin to have a similar mechanism,
to deal with :
- "linked" Alembic files loaded at render time in Octane as a Scene Geometry Node
e.g: viewtopic.php?f=110&t=55917
- "linked" VDB file loaded at render time in Octane as a Volume Geometry Node
and maybe will avoid the need to have a specialized VDB reader node.
- "linked" ORBX file, loaded at render time with its own embedded materials,
maybe if there's some "render setting nodes" included in the ORBX, they should be ignored.
- "linked" obj files loaded as simple Octane geometry node, could also be supported,
not sure this one is much needed but could benefit from the "auto create material from mtl files feature" of Octane standalone.
- "linked" cvs file loaded at render time as Octane scatter node.
In my opinion a fast way to implement this feature, is to just handle ORBX proxy node at first ,
as ORBX can contain all other type of "proxy" geometry but with the limitation that materials have to be defined inside the ORBX,
and the ORBX could have to respect one simple rule:
- all nodes in the ORBX scene must be contained in one Octane group Node with one geometry output (to be automatically easily linked at render time to the geometry group of the translated Maya scene ).
The way to handle this in Maya UI could be for example to add an Octane proxy attribute to the Maya Locator Shape Node:
When the path to an ORBX is set in this attribute, the locator acts as a placeholder for the ORBX loaded at render time.
A more advanced implementation would be to add a "proxy" attribute to all Maya shapes in the Octane attribute section, different type of shape would handle different type of proxy.
The proxy attribute could be a simple string attribute where user set the path to the external file, and at render time the Maya Shape is replaced by the external geometry file but using the Maya shape materials and transform.
For example for a VDB proxy file, you would set the proxy path in a Fluid shape, the fluid shape would be replaced by the VDB Volume geometry node at render time but using Material attributes defined for the fluid shape.
Or for pfxStroke shape node a proxy attribute would be supposed to point to an alembic file containing RiCurves.... ect
As proxy attributes may need more relative attributes to define options for the proxy (for example Alembic start frame and frame rate),
maybe a better way to do this is to have a new Octane Proxy Node where you define path to the file and as much options as needed, and the proxy attribute in the Maya shape would just be a linker to this Octane proxy node.
Or a third way to do this is just a separate Proxy node (so not linked to a Maya and not re-using maya shape settings and materials),
but this node would need to have a lot of options and attribute and new mechanism to handle material setting for each type of proxy,
Mental-ray
https://knowledge.autodesk.com/support/ ... F-htm.html
Arnold
https://support.solidangle.com/display/AFMUG/Stand-ins
V-Ray
https://docs.chaosgroup.com/display/VRA ... +VRayProxy
render Proxy don't load any geometry in Maya but are external files only loaded at render time by the renderer itself,
this reduce drastically translation time, memory usage, and would give a direct access to Octane features which are not easy to support inside Maya.
It's much needed for the Octane plugin to have a similar mechanism,
to deal with :
- "linked" Alembic files loaded at render time in Octane as a Scene Geometry Node
e.g: viewtopic.php?f=110&t=55917
- "linked" VDB file loaded at render time in Octane as a Volume Geometry Node
and maybe will avoid the need to have a specialized VDB reader node.
- "linked" ORBX file, loaded at render time with its own embedded materials,
maybe if there's some "render setting nodes" included in the ORBX, they should be ignored.
- "linked" obj files loaded as simple Octane geometry node, could also be supported,
not sure this one is much needed but could benefit from the "auto create material from mtl files feature" of Octane standalone.
- "linked" cvs file loaded at render time as Octane scatter node.
In my opinion a fast way to implement this feature, is to just handle ORBX proxy node at first ,
as ORBX can contain all other type of "proxy" geometry but with the limitation that materials have to be defined inside the ORBX,
and the ORBX could have to respect one simple rule:
- all nodes in the ORBX scene must be contained in one Octane group Node with one geometry output (to be automatically easily linked at render time to the geometry group of the translated Maya scene ).
The way to handle this in Maya UI could be for example to add an Octane proxy attribute to the Maya Locator Shape Node:
When the path to an ORBX is set in this attribute, the locator acts as a placeholder for the ORBX loaded at render time.
A more advanced implementation would be to add a "proxy" attribute to all Maya shapes in the Octane attribute section, different type of shape would handle different type of proxy.
The proxy attribute could be a simple string attribute where user set the path to the external file, and at render time the Maya Shape is replaced by the external geometry file but using the Maya shape materials and transform.
For example for a VDB proxy file, you would set the proxy path in a Fluid shape, the fluid shape would be replaced by the VDB Volume geometry node at render time but using Material attributes defined for the fluid shape.
Or for pfxStroke shape node a proxy attribute would be supposed to point to an alembic file containing RiCurves.... ect
As proxy attributes may need more relative attributes to define options for the proxy (for example Alembic start frame and frame rate),
maybe a better way to do this is to have a new Octane Proxy Node where you define path to the file and as much options as needed, and the proxy attribute in the Maya shape would just be a linker to this Octane proxy node.
Or a third way to do this is just a separate Proxy node (so not linked to a Maya and not re-using maya shape settings and materials),
but this node would need to have a lot of options and attribute and new mechanism to handle material setting for each type of proxy,