Class Description: Writing mental ray Shaders
Intended for programmers, this three-day class introduces fundamental mental ray concepts, covering a broad collection of shaders, and providing source code and methods for custom shader development. Exercises rendering with standalone mentalray, while editing scene files and shader source code, reveal the basic conventions and API resources available for writing shaders. The exercises reinforce a methodology for efficient realization of custom shader kits.
Class Outline: Writing mental ray shaders
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 - Compile and use color shaders
- Transparency
- Exercise 5 - Compile and use transparency shader
- Color from Image Files (Texture Maps)
- Exercise 6 - Compile and 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 - Compile and 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
- LAmrUG Forum - Advanced Shaders Section
|