Date: Fri, 29 Mar 2024 02:12:41 +0000 (UTC) Message-ID: <802838304.235.1711678361613@ip-10-0-0-233.us-west-2.compute.internal> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_234_1107500491.1711678361610" ------=_Part_234_1107500491.1711678361610 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
In production, it's desirable to create and add your own pattern= s and C++ plugins (materials, lights, patterns, and more) to the user inter= face in Maya, having them load when RenderMan is loaded. This gives artists= access to these nodes in a Maya session. Users wanting to do this must obt= ain a Maya Node ID from Autodesk (these are often assigned in blocks). This= allows Maya to assign unique IDs and identify nodes.
Since we do not recommend changing the shipped rfm.json files, you may u= se a system environment variable, RFM_SHOW_PATH or RFM_SITE_PATH, to source your custom versions.
RenderMan for Maya will search in the following order and merge/override= in the same order. Note : This hierarchical pr= ocess is valid for the other config files: shelf.json, aovs.json, menu.json= , etc.
override.json can be used to override default values of RfM nodes both s= tandard and custom.
To add extra nodes (patterns, bxdfs, integrators, etc), resources/user/n= odes/search_paths should be extended. rfm always expects the same directory= structure:
BASE |_ config |_ rfm.json |_ shelf.json, etc (optional) |_ nodes (optional) |_ args (optional) |_ osl (optional) |_ icons (optional) |_ logs (optional)
Node IDs for Patterns are embedded in the metadata. Below is an example = from the PxrLayer OSL shader.
shader P= xrLayer [[int rfm_nodeid=3D1053299, string=20 rfm_classification=3D"rendernode/RenderMan/pattern", =20 int rfc_nodeid=3D1037674, string rfc_description=3D"Xpxrlayer", = =20 string help =3D "An OSL pattern for layerable parameters for PxrSurface= or " "input layer to PxrLayerMixer." ]]
In your custom rfm.json file, you can load your files like the below exa= mple:
{ "$schema": "./rfmSchema.json", "resources": { "user": { "nodes": { "node_exclusion_list": [ "PxrHair", "PxrLMDiffuse", "PxrLMGlass", "PxrLMMetal", "PxrLMPlastic", "PxrLMSubsurface", "PxrSkin", "PxrValidateBxdf" ] } } }, "dirmaps": { "user_to_z": { "from": "/User/name/maya", "to": "Z:/maya", "zone": "UNC" } } }
Node IDs for these are included in the .args file. The order doesn't mat= ter but it must be in the first level of the tags. The below example is for= a light.
<rfmd= ata nodeid=3D"1053261" classification=3D"rendernode/RenderMan/shader/light"/>