Baz © John Saleem

Tutorials | Making of Baz

Making of Baz

Created and written by John Saleem. Edited by Leif Pedersen.

dystopian Look, Happy development

Bazooka or Baz for short, is a fictional creature in the post-apocalyptic realm, who wields a Bazooka missile launcher as his favorite weapon. Baz embodies strength and determination to survive in a harsh and dystopian setting.

I have created this project to expand my knowledge of RenderMan and Katana. It was a quick yet fun project to work on during my spare hours.

Final render for Baz


Gathering as many references as possible before the start of the project is always good for modeling, texturing, and lookdev. Based on the description above, I wanted the creature to have a dark leather costume that reflects the post-apocalyptic world, inspired by Mad Max.

Baz References

Depending on the project, I usually start from basic primitives in Zbrush to block out shapes and volumes of the character, then convert them to dynaMesh and/or Zremesh halfway through the modeling process for faster and easier sculpting. Once I am pleased with the shapes, volumes, and concept, I retopologize in Maya.

A similar approach has been taken for the costume, in addition to using masking, extract function, poly groups, and projection to fit the body.

The missile launcher, boots and individual costume objects are modeled in Maya.

Zbrush modeling timelapse

I typically maintain symmetry in the body UVs, even if the model and facial features are asymmetrical. This approach helps the initial texturing process by copying UDIMs in MARI from one side to the other as a starting point (Or use Link UDIMs). Later on, I break the texture symmetry.

Character UV Layout

The missile launcher was made using hard surface modeling in Maya, here’s a look at the topology and UVs.

Bazooka UV Layout

Finally, here is a turntable of the Zbrush sculpt of Baz in a neutral pose.

Texturing Tip
The base model, UVs, and displacement are the base for the whole project. If the base mesh and sculpting are done right from the beginning, it will make life much easier for rigging, texturing, and look-developing the character. Make sure you are happy with your asset at this stage before moving to the next step.

Texturing and UVs

I used a combination of hand painting and image projection for the first color map pass and cavity map generated in Zbrush to enhance skin details. The black patterns on his skin are separated as an ID map from the base skin for better control during the lookdev stage. A similar approach has been taken for dirt maps.

Creating ID masks allows for creative choices during shading and post

To even have more control in lookdev, I've created a few ID Masks for the body and costume.

…and of course, his favorite weapon, the Missile Launcher.


The primary objective of this project was to develop a specialized Katana template designed explicitly for RenderMan. I approached this by using PRMan nodes to explore and learn different lookdev techniques. The workflow heavily relied on RenderMan's Layered shader approach (PxrLayer and PxrLayerMixer) as well as PxrSurface using NMC (Network Material Create).

Developing a template improves predictability when getting creative

Using Primitive Variables

PxrPrimvar gives you access to built in primitive variables in RenderMan and is very powerful for isolating specific parts of the model during shading, among other things, so it is used widely in production for lookdev purposes. The online documentation provided by Pixar's RenderMan offers comprehensive insights into the workflow. Below are a few images showcasing my PxrPrimvar workflow to tweak specific materials on isolated objects and displacement.

The setups will later be connected to a few PRMan nodes (see Layering displacement and Skin below) to utilize the potential of color correcting or grading certain parts on the asset.

Layering Displacement

I am using a 0.5 mid-grey value for displacement. This mid-value is consistent across Zbrush, MARI, and Substance 3D Painter. To ensure the accurate layering of each map in RenderMan, the PxrDisplacementTransform values for each map should be set as shown below.

As you can see, I'm also using Primvars in the displacement network to isolate its effect on certain parts of the assets.

Primvars are useful throughout the entire shading process

Optimizing all displacement maps when layering displacement is always good to avoid increasing render time.

Layering Skin Shader and Costume

I approached the lookdev of Baz knowing I’ll be taking a layered approach, much like in production, involving continuous updates and note-taking. I separated the skin, dark patches, and dirt on the character's skin and costume into distinct materials. I then layered all the materials together to create the final look.

Material layering is essential to go along with the changing flow of production

Finally, here’s how I used PxrPrimvar on his missile launcher to color-correct and grade isolated elements of the model.

Shading Tip
I recommend utilizing layering techniques whenever possible. Creating a clean base and then adding dirt, weathering, stickers, or different materials on top, allows for more flexibility and efficiency in making adjustments and refinements to your shading.

Lighting and Rendering

Having a background in Maya-based shading and working with various rendering engines, I cannot emphasize enough the purpose behind the Baz project. Its main objective was to create a RenderMan-based Katana template that can be seamlessly integrated and modified in future projects. This approach ensures scalability and reliability in my workflow. This predictability allows artists to be more productive and creative.

During the development of the template, I focused on several key areas.

Asset Turntable and Light Rig Switcher

Before diving into shot lighting, I like to test the asset in a few lighting scenarios during the lookdev process, such as Studio, Sunny, and Cloudy. This mimics the lookdev pipeline used in major visual effects studios.

After many days of researching online Katana nodes and workflows, I created a light rig switcher, which gave me a quick "call to action" for changing light rigs.

Here’s a snapshot of the setup in Katana.

You can download HDR maps from to use with the PxrDomeLight, or create your custom lighting for each rig to create something similar. I’ve also added a fourth option called "Shot0" as the final light rig for rendering. This particular rig mimics a three-point lighting setup with additional rim and fill lights for enhanced visual impact.

Using Matte IDs

In the world of VFX, the phrase "Do it in Comp" is often heard, and here is where AOVs, or arbitrary output variables, prove to be incredibly valuable in the compositing stage. AOVs allow for targeted color correction or grading of specific parts of an asset without tweaking values in lookdev and re-rendering the entire scene.

The setup for using PxrMatteID is straightforward and easy to follow.

  1. Create an OpScript for each object you want to isolate (in this case, objects were used for Baz).
  2. Drag the object(s) from the scene graph into the OpScript CEL.
  3. Copy the script provided in the OpScript script section. (which can be found on the RenderMan website).
  4. Set the MatteID(number) to 0, 1, and so on. Each MatteID requires 3 channels.
  5. Assign a new channel for the current matteID in the floatAttribute script.
  6. GroupStack the OpScript. When you run out of options for each MatteID (since there are 3 available), duplicate again and repeat from step 4 skipping step 6

gb = GroupBuilder()
gb:set("value", FloatAttribute({1.0, 0.0, 0.0}, 3))
gb:set("type", StringAttribute("color"))
Interface.SetAttr("prmanStatements.attributes.user.MatteID0", gb:build())

And here’s a snapshot of Baz’s AOVs for example.

Lighting Tip
I always encourage creating separate MatteIDs for objects and materials. This gives me the flexibility to make targeted adjustments and enhancements during the compositing process. For instance, I create MatteID for each material such as metal, leather, skin, and so on. Then, I create MatteIDs for each object, allowing me to isolate them in comp.


In my straightforward 3D compositing workflow, I began by combining the character with the background. I then utilized the AOVs that I had created for the purpose of color correction and grading.

Nuke compositing graph

To streamline the process, I shuffled the output channels from each AOV into a single output layer. This allowed me to isolate and manipulate specific elements without having to go back to the lookdev stage and re-render.

I told you IDs were awesome!

Finally, here are a few more renders of Baz ‘Bazooka’.
I hope you've enjoyed the creative process and have fun with the project files!

About the Artist


Terms of Use

Baz is available with a Attribution-NonCommercial 4.0 International License. This allows you to share and redistribute for non-commercial purposes, as long as you credit the original author.

Attribution-NonCommercial 4.0 International
(CC BY-NC 4.0)


Learn | Check out a new tutorial using RenderMan for Maya!