...
- Warnings on the console when rendering to XPU from Katana. There are some warnings you will see on the console about a bad DSO being found for the socket display driver. You can ignore these.
- Picking from "it" does not relay the selection back to RenderMan for Maya
- RenderMan for Maya does not yet support batch renderinng to XPU
Shading
BxDFs, Displacements, & Patterns | RIS | XPU | Notes |
---|---|---|---|
PxrSurface | ✅ | ✅ | Some Subsurface modes are not available |
PxrLayerSurface | ✅ | ✅ | |
PxrDisneyBsdf | ✅ | ✅ | |
PxrMarschnerHair | ✅ | ✅ | |
PxrConstant | ✅ | ✅ | |
PxrDiffuse | ✅ | ✅ | |
PxrDisplace | ✅ | ✅ | |
Lama | ✅ | ❌ | |
PxrVolume, Volumes | ✅ | ❌ | |
OSL Patterns | ✅ | ✅ | PxrDirt & PxrCurvature not supported |
C++ Patterns | ✅ | ❌ | |
PxrSeExpr | ✅ | ❌ | |
Baking | ✅ | ❌ | |
Point Clouds | ✅ | ❌ |
- Custom Bxdf or Displacement plugins are unsupported.
- Lama support will be implemented in a future release.
- In XPU, we support the following SSS models:
- Burley Normalized
- Exponential Path Traced
- Non-Exponential Path Traced
- subsurfaceSubset is not yet supported.
...
- In XPU, the first argument to the OSL getbuiltin() shadeop is ignored. The You may continue to specify a first argument in order for your shader to remain compatible with RIS, but the distinction between "primvar", "builtin", and "attribute" that exists in RIS does not exist in XPU. You may continue to specify a first argument in order for your shader to remain compatible with RIS.
- getattribute() calls asking for geometry primvars (in RIS, getattribute("primvar")) are fully supported.
getattribute() calls targeting "builtins" are partially supported. Some builtins known to RIS are not currently available in XPU. The most important changes are summarized in the table below. If an alternative is suggested, it means that OSL patterns should be rewritten to use the alternative to be as forward looking as possible.
Builtin Supported in XPU Alternative (if possible) P ❌ use global P PRadius ❌ Po ✅ Nn ❌ use global N Non ✅ supported, but only if displacement took place Ngn ❌ use global Ng
Naon ❌ point Po;
getattribute("primvar", "P", Po);
normalize(cross(Dx(Po), Dy(Po)));Tn ✅ Vn, VLen ❌ curvature ❌ dPdu, dPdv ❌ use globals dPdu and dPdv u, v ✅ st ✅ du, dv ❌ use Du(u), Dv(v) dPdtime ❌ time ❌ id, id2 ✅ - The only getattribute("attribute", ...) lookups that are supported in XPU are "user" and "identifier" attributes (e.g. getattribute("attribute", "user:foo", foo))
- trace() is not currently supported. Support for a single level of recursion will be added in a future release.
- Dynamic string construction is not supported.
- It is possible in some cases that strings within OSL patterns are not properly constant folded, resulting in errors at runtime.
- Dynamic path construction in your own patterns is not supported, but please note that we do support the following path tokens <UDIM>, <u>, <v>, <U>, <V> and <primstr:varname> that will result in a "dynamic" path to your textures. <primstr:varname> can be used to reference the value in a constant primvar or user attribute to build a dynamic path. Also note that <primstr:varname> is not in beta1 for XPU, but will be in a later beta.
...
Geometry | RIS | XPU | Notes |
---|---|---|---|
Subdivision Surfaces | ✅ | ✅ | Catmull-Clark only |
Polygonal Surfaces | ✅ | ✅ | |
Nurbs | ✅ | ❌ | |
Curves | ✅ | ✅ | |
Points | ✅ | ✅ | Some features not available |
Quadrics and Blobbies | ✅ | ❌ | |
Procedurals | ✅ | ❌ | |
Nested Instancing | ✅ | ✅ | Known Limitation: Varying attributes to drive differences in materials per-instance is not yet supported. |
- Loop Subdivision is not supported. Catmull-Clark for both quads and triangles is supported.
- Point falloff is not yet supported.
- Object attributes such as maxdiffusedepth and maxspeculardepth have not yet been implemented.
- Deformation motion blur is not yet supported.
Shading of nested instancing has artifacts. In our tests we have seen shading issues with leaves that are rendered as nested instances.
Inverted normals are possible when doing displacement, depending on the input file and DCC. We have seen this with Alembic being imported into Houdini.
...