Maya is using procedurals for rendering translators. One of the reason of using procedurals is because the translators of some renderers are not extensible. For example, to keep modules independent, Mentalray’s Mayatomr.mll and XGen’s libAdskXGen.dll are not linked together. This means that the code using XGenRenderAPI doesn’t require a procedural. If third party renderer doesn’t support procedural, you can directly use XGenRenderAPI in the translator.
To do this, you can call XGenRenderAPI::PatchRenderer::init() to initialize XGen primitive generation, and call FaceRenderer::render() to generate XGen hairs. You will also need to implement ProceduralCallbacks::flush() to collect XGen bplines and convert them to the renderer’s curve representation.
Here is the XGen RenderMan Documentation about arguments. In this documentation, we have clearly mentioned the list of arguments that can be used for the procedural, along with descriptions:
The “-file” and “-geom” flags can be set to non-existence files. The API checks for the flags, but it will not actually load the files if the collection/description already exist in the scene.
You can enable debug info in the Maya GUI in the XGen Panel, Click Log -> Debug Level -> 5(high). The logs can be found in the window below titled “Log”(drag to expand the panel).

Leave a Reply