Course overview

The following are the objectives:

• understand the 3D rendering pipeline
• gain a good understanding of what RenderMan is - how it works, what it can do for you
• learn to write basic & intermediate level shaders
• use MTOR to translate Maya scenes suitable for rendering with RenderMan
• understand some basic mathematics useful in shader-writing
• learn what RenderMan-related resources are available

Math concepts

Although it is possible to use RenderMan without any knowledge of math, your experience with it would be much more rewarding if you have an understanding of some fairly straightforward concepts. These will be especially handy when you need to write your own shaders.

The following are topics that you need to be familiar with:

• Coordinate systems

• - Location, distance
- Reference frame
- Cartesian axes
- Polar coords

• Points

• - 2D, 3D
- line segments
- distance between 2 points

• Vectors

• - scalar vs. vector
- magnitude, direction
- negation
- multiplication with a scalar
- normalization
- dot product
- cross product
- tangent, normal, binormal
- matrices

• Transformations

• - RST [Rotate/Scale Translate]

• Trigonometry

• - right triangle, Pythagoras Theorem
- sin(), cos() and tan()
- rotation about an axis

• Color spaces

• - RGB vs. HSV

• Image representation

• - RGB, Alpha channels
- Mipmap

• Polygons

• - convex vs. concave
- general polygons

• Curves

• - polylines
- splines

• Surfaces

• - primitives
- polymeshes
- patches

• Interpolation

• - linear interpolation
- step
- smoothstep
- spline

• Math functions

• - sin(), asin()...
- sqrt(), pow(), exp(), log()
- mod(), abs(), sign()
- min(), max(), clamp()
- ceil(), floor(), round()
- noise(), turbulence..

Rendering basics

A standard 3d rendering pipeline aims to convert a 3D 'scene' (with objects and materials, lights and a viewing camera) to an image, i.e. to a 2D representation.

Viewing transformation
- Object space
- World space
- Camera/eye space
- Camera projection
- Clipping against view volume
- Backface culling

Rasterization
- Screen space
- Image space
- Shading and illumination [materials, lights]

Misc. topics
- Flat vs. interpolated shading
- Bump vs. displacement mapping
- Texture mapping