Point cloud objects (typically Autodesk ReCap .rcp or .rcs files) are translated to Arnold as points primitives. Points primitive behave like any other shape. They can have any shader assigned to them, their visibility mask set, etc. There is nothing special you need to do to render point clouds in Arnold, except accessing the exported colors. In 3dsMax, there are several options for the color channel assigned to the point cloud.

 

 

 

For each, a user data named "colors" is exported together with the points primitive, containing:

  • Elevation Ramp: an RGB array with the normalize (0..1 with respect to the points bounding box) XYZ position of each point.
  • Intensity Ramp: a float array with the color's intensity of each point.
  • Normal Ramp: an RGB array with the normal of each point, following the classic normal map conversion (x = -1 -> r = 0, x = 1 -> r = 1, etc.) 
  • Single Color: the single constant color showing when this option is selected.
  • True Color: an RGBA array with the color of each point.

 

To pull these data in the material editor, you want to use a user_data_rgba/RGB/float shader, depending on the data type, with the Attribute string set to colors, and connect it to the shading node of your choice.

 

 

The Gradient Map is not supported. However, once in Elevation Ramp mode, you can use the user data output to drive any shader with support for input coordinates.

Here is an example of how to apply an image shader along the point cloud XY planar space. Note that the user_data_xxx shader will always perform the type conversion automatically (RGBA to UV in this case)

 

 

Finally, right now MAXtoA uses the Real-World Scale only for the points' size. The As Pixel size is ignored.

For avoiding flickering in animation, you can take advantage of the Min. Pixel Width parameter. If you apply the Arnold Properties to the point cloud object, you can set it in the Points rollout. If not, the one in the rendering options is used.

 

 

  • No labels