Class Description: Shader Network Design - Phenomena
Intended for technical directors (TDs), this three-day class introduces fundamental mental ray concepts, covering a broad collection of shaders, and providing methods for extending the functionality of these shaders by developing Phenomena. Exercises rendering with standalone mentalray, while editing shader declaration and scene files, demonstrate how to develop sophisticated looks, using hands-on practice with the material covered in lecture.
Class Prerequisites: Shader Network Design - Phenomena
The minimum requirements for taking the class include:
- Experience using mental ray in one of the 3D applications (Maya, XSI, 3ds max, etc.).
- Familiarity with indirect illumination techniques
| GI and caustics photon mapping
| Finalgathering - Knowledge of scripting language or common CG scene file format idioms:
| Variable declaration and type definition
| File data structures: block begin/end, keyword/value pairs - Reasonable proficiency with a text editor and command-line tools.
Class Outline: Shader Network Design - Phenomena
Monday-Wednesday, 10AM-6PM
Day 1
Introduction
Introduction to mental ray Rendering
| Exercise 1 - Render with ray, display with imf_disp
Break
Part 1 - Structure
.mi Scene File Structure
| Exercise 2 - Editing and rendering a scene file
Shader Structure
Shaders in the Scene
| Exercise 3 - Using a shader in a scene file
Shader Programming Overview
Lunch Break
Part 2 - Color
Single Color
Color from Orientation
Color from Position
| Exercise 4 - Use color shaders
Transparency
| Exercise 5 - Use transparency shader
Color from Image Files (Texture Maps)
| Exercise 6 - Use texture shaders
Color of Edges
Break
Part 3 - Light
Point Lights, Spot Lights and Shadows
Light on Surface - Direct Illumination with Lambert, Phong, etc.
| Exercise 7 - Use Lambert and other shader
Reflection
| Exercise 8 - Using reflection
Refraction
| Exercise 9 - Using refraction
Day 2
Light Paths, Traced Rays and Ray Types Review
Light from Other Surfaces - Indirect Illumination
Ambient Occlusion
| Exercise 10 - Using ambient occlusion
Break
Part 4 - Shape
Modifying Surface Geometry
| Exercise 11 - Displacement mapping
Modifying Surface Orientation
| Exercise 12 - Bump mapping
Creating Shapes
Lunch Break
Part 5 - Space
Global and Object Environment
| Exercise 13 - Environment shader
Global and Object Volume
| Exercise 14 - Volume shader in hull object
Break
Part 6 - Image
Samples, Pixels and Tiles
| Exercise 15 - Sample diagnostics, fixed and adaptive
| Exercise 16 - Sample diagnostics, object samples
Lens Shaders
| Exercise 17 - Fisheye lens
Break
Motion and Temporal Samples
Rendering Image Components
| Exercise 18 - User Framebuffers
Output Shaders
Day 3
Part 7 - Implementation
Render Process
| Jobs and execution order
| Parallelism
| The render report
Memory - Scene Cache
Placeholders - Object Files and Callbacks
| Exercise 19 - Placeholder example
Sharing Data
| Exercise 20 - User data example
State Shaders
Break
Using the Rasterizer
Alternate Pipeline Options
| Exercise 21 - Alternate pipeline example
Lunch Break
Labels - Identifying Object Sets
| Exercise 22 - Shader using labels
Leaf instances
Geometry shader object in scene DAG
Break
Part 8 - Illumination Models
Color and Energy Representation
Matching Shader Implementations
| Traditional vs. physically correct
| When to use shadow shaders
Break
Part 9 - Debugging Techniques and Resources
Summary of Techniques Used Throughout Exercises
-debug Option
Online Manual
