Introduction to Shading

return to main index


This tutorial demonstrates how Cutter can be used to construct shading networks that use Pixar's Bxdf and Pattern nodes. The tutorial has two section - Shape (steps 1 to 4), and Shading (step 1).


Step 1

Make sure the RPS and RfM installation directories have been set - figure 1.

Figure 1

Create the following directory structure. Refer to "Cutter: Setting Up" for information about installing Cutter.

            |          |_ geo/
            |          |_ lights/
            |          |_ materials/
            |_/textures  <<-- converted .tex files
            |_/tiffs     <<-- source images for texture maps

Step 2 - Preparing the Rib Archives

Save bar.rib and jack.rib archives in the archives/geo directory.

                           |_ bar.rib
                           |_ jack.rib

Step 3 - Preparing a Scene for Modeling

Generate a rib using the Beauty Pass menu - figure 2.

Figure 2

Save the file as jack_scene.rib in the ribs directory.

                   |_ jack_scene.rib

Edit the jack_scene.rib and replace the Translate and Sphere statements on lines 48 and 49 with the following Scale and ReadArchive statements.

        Scale 3 3 3
        ReadArchive "geo/jack.rib"

Render jack_scene.rib (figure 3) using the keyboard shortcut Alt+e, Control+e or Apple+e.

Figure 3

Step 4 - Improving the Lighting

Save the 3lights.rib archive the archives/lights directory.

                              |_ 3lights.rib

Lines 28 to 41 should be replaced with the following ReadArchive statement.

    ReadArchive "lights/3lights.rib"

Figure 4


Step 1 - Applying a Material to the "floor"

It is easier to do look-development if the shading network that defines a material is specified in rib archive. For example, save an empty rib archive named ThinFilm.rib in the archives/materials directory.

                              |_ ThinFilm.rib

Open the archive document and choose PxrSurface from the Plugins->Materials menu.

Figure 5

Cutter will insert a Bxdf rib statement into the document. Do the same again but choose Plugins->PxrPatterns->PxrThinFilm. Parameters that will not be edited can be deleted. The shading network is shown below.

Pattern "PxrThinFilm" "PxrThinFilm1"
        # params have been omitted...
        # "PxrThinFilm2:resultRGB"   uses->|color|vector|normal|point| 
        # "PxrThinFilm2:resultR"     uses->|float| 
        # "PxrThinFilm2:resultG"     uses->|float| 
        # "PxrThinFilm2:resultB"     uses->|float| 
Bxdf "PxrSurface" "PxrSurface1"
        "reference color diffuseColor" ["PxrThinFilm1:resultRGB"] # <-- connection
        # remaining params have been omitted...

Cutter indicates the outputs of a Pattern within the comments. Notice the diffuseColor parameter,

    "color diffuseColor" [0.18 0.18 0.18]

has been edited so that it receives color values from the output (resultRGB) of the PxrThinFilm "node".

    "reference color diffuseColor" ["PxrThinFilm1:resultRGB"]

Add the following ReadArchive immediately before the Polygon statement.

    ReadArchive "materials/ThinFilm.rib"

A similar procedure can be followed for the chromium "look" for the jack - Chrome.rib. For example,

Bxdf "PxrSurface" "PxrSurface2"
    "color specularFaceColor" [1 1 1]

The final render is shown next.

Figure 6

© 2002- Malcolm Kesson. All rights reserved.