Slim Templates


Inside/Outside Shading


Translucency Shading


Point Clouds & Brick Maps


Custom Mental Ray Shaders


City Explosion


Point Clouds & Brick Maps

The purpose of this exercise was to bake out and reuse general 3D textures in Pixar's RenderMan (PRMan). Point clouds and brick maps provide a way to bake data like diffuse color, highlights, direct and indirect illumination, ambient occlusion, etc into a single file. Subsequent renders look to this file, which can be accessed quickly, and render times are decreased as a result.

Ambient Occlusion Brick-Mapped

City Flythrough

Point Cloud & Brick Map Info

512 Sample Size
1280 x 960 Resolution
48.0 MB Point Cloud (3 hrs)
43.1 MB Brick Map File

Rendering Info

736 x 460 Resolution
23 seconds / frame
550 frames

Mental Ray Equivalent

4 min 40 sec / frame
The video above is an 18 second flythrough of a low-poly city. My shader creates a point cloud which stores ambient occlusion information. Once the .ptc file is created, I convert it into a brick map (.bkm) which is handled more efficiently by the renderer. As the video demonstrates, a higher resolution and sample size is needed to create a production quality result. If I were to replace the proxy geometry with more detailed buildings, I would probably need to generate a point cloud that would take at least 24 hours to generate (& probably a few hundred megabytes).
I designed the camera movement so that the brick map texture can be seen close up and at a distance. Also by using the complexity of a city as a benchmark, I'm able to more accurately estimate how large a brick map must be to properly detail a large environment. This rendering used a relatively small file. I can easily see how files sized in the GB or TB range would be necessary to prevent pixelation and bring out finer details.
More information on point clouds and brick maps can be found here.

The Difference Between

Point Clouds & Brick Maps

Point Cloud Example

Brick Map Example

Drawbacks of reading point clouds

  • When a point cloud is accessed the entire point cloud file is read in even if only a few points are used.
  • The entire point cloud stays in memory until the frame has finished.
  • The point cloud format does not provide a level-of-detail representation, making filtering and blurring difficult.

Advantages of the brick map

  • The brick map is independent of the surface representation.
  • No 2D surface parameterization is necessary. (Specifying a 2D parameterization for surfaces such as subdivision surfaces, implicit surfaces, and dense polygon meshes can be cumbersome.)
  • Brick maps automatically adapt to the data density and variation. If, for example, a fairly smooth 3D texture has only one small region with a lot of detail, there will only be many bricks in that one small region. (This is in contrast to traditional 2D textures where the entire texture has to have high resolution if just a small part of it has a lot of detail.)
  • The MIP map representation is suitable for efficient filtering, and the tiling makes it ideal for caching. This means that PRMan can deal efficiently with large brick maps even collections of brick maps much larger than the available memory.
  • The user can specify the required accuracy when the brick map is created. This makes it simple to trade off data precision vs. file size.


Richard Sun / Rich Sun Productions 2007.