No Title
Keywords: main

# mental ray 2 User Manual

Version 2.0.28.18 and 2.1.40.45

Next: Contents

## Contents

- Contents
- Introduction
  - 0.1 Organization of this Book
  - 0.2 Introduction to mental ray
  - 0.3 WWW Resources
  - 0.4 Acknowledgements
- 1. Functionality
  - 1.1 Parallelism
  - 1.2 Free-Form Surfaces
  - 1.3 Edge Merging and Adjacency Detection
  - 1.4 Special Points and Curves
  - 1.5 Atmospheres and Volumes
  - 1.6 Materials
  - 1.7 Light Sources
  - 1.8 Area Light Sources
  - 1.9 Shadow Maps
  - 1.10 Texture, Bump, Displacement, and Reflection Mapping
  - 1.11 Texture Filtering
    - 1.11.1 Pyramid Filtering
    - 1.11.2 Elliptical Projection Filter Lookup
  - 1.12 User-Defined Shaders
  - 1.13 The Camera
  - 1.14 Lens Effects
  - 1.15 Depth of Field
  - 1.16 Animation
  - 1.17 Motion Blur
  - 1.18 Sampling Algorithms
  - 1.19 OpenGL Acceleration
  - 1.20 Color Calculations
  - 1.21 Output Shaders
  - 1.22 Contours
  - 1.23 Memory-mapped Textures
  - 1.24 Caustics
    - 1.24.1 Light Sources
    - 1.24.2 Objects
    - 1.24.3 Material Shaders and Photon Shaders for Caustics
      - 1.24.3.1 Physically Plausible Material Shaders
    - 1.24.4 Shader Functions
    - 1.24.5 Fine-tuning Caustics
  - 1.25 Global Illumination2.1
    - 1.25.1 Light Sources
    - 1.25.2 Objects
    - 1.25.3 Fine-tuning Global Illumination
  - 1.26 Final Gathering2.1
  - 1.27 Volume Caustics
  - 1.28 Global Illumination in Participating Media2.1
  - 1.29 Diagnostic modes2.1
- 2. Scene Description Language
  - 2.1 Shader Declarations
    - 2.1.1 Parameter Types
    - 2.1.2 Shader Apply Flags
    - 2.1.3 Declaration Options
  - 2.2 Shader Definitions
  - 2.3 Shader Lists
  - 2.4 Shader Graphs
  - 2.5 Phenomena
    - 2.5.1 Phenomenon Interface Parameters
    - 2.5.2 Phenomenon Roots
  - 2.6 Commands
  - 2.7 Scene Entities
    - 2.7.1 Options
      - 2.7.1.1 Sampling Quality
      - 2.7.1.2 Tessellation Quality
      - 2.7.1.3 Motion Blur
      - 2.7.1.4 Trace Depth
      - 2.7.1.5 Shadows
      - 2.7.1.6 Rendering Algorithms
      - 2.7.1.7 Feature Disabling
      - 2.7.1.8 Caustics
      - 2.7.1.9 Global illumination2.1
      - 2.7.1.10 Frame Buffer Control
      - 2.7.1.11 Scene Geometry
      - 2.7.1.12 Contours
      - 2.7.1.13 Diagnostic Modes2.1
      - 2.7.1.14 Miscellaneous
    - 2.7.2 Cameras
    - 2.7.3 Textures
    - 2.7.4 Materials
    - 2.7.5 Lights
    - 2.7.6 Objects
    - 2.7.7 Polygonal Geometry
    - 2.7.8 Free-Form Surface Geometry
      - 2.7.8.1 Bases
      - 2.7.8.2 Surfaces
      - 2.7.8.3 Surface Derivatives
      - 2.7.8.4 Texture Surfaces
      - 2.7.8.5 Curves
      - 2.7.8.6 Trimming, Hole, and Special Curves; Special Points
      - 2.7.8.7 Space Curve Geometry
      - 2.7.8.8 Approximations
      - 2.7.8.9 Connections
      - 2.7.8.10 Example
    - 2.7.9 Instances
    - 2.7.10 Instance Groups
  - 2.8 Contours
    - 2.8.1 Where to Place Contours
    - 2.8.2 Color and Width of Contours
    - 2.8.3 Contour Output
    - 2.8.4 Faster Contours
  - 2.9 Scene Example
- 3. Using and Writing Shaders
  - 3.1 Dynamic Linking of Shaders
  - 3.2 Coordinate Systems
  - 3.3 Shader Type Overview
  - 3.4 State Variables
    - 3.4.1 Frame
    - 3.4.2 Image Samples
    - 3.4.3 Rays
    - 3.4.4 Intersection
    - 3.4.5 Textures, Motion, Derivatives
    - 3.4.6 User Fields
    - 3.4.7 State Variables by Shader Type
  - 3.5 Shader Parameter Declarations
  - 3.6 Parameter Assignments and mi_eval
  - 3.7 Shader Versioning
  - 3.8 Material Shaders
  - 3.9 Texture Shaders
  - 3.10 Volume Shaders
  - 3.11 Environment Shaders
  - 3.12 Light Shaders
  - 3.13 Shadow Shaders
  - 3.14 Photon Shaders
  - 3.15 Photon Emitter Shaders
  - 3.16 Lens Shaders
  - 3.17 Output Shaders
    - 3.17.1 Parallel Output Shaders
  - 3.18 Displacement Shaders
  - 3.19 Geometry Shaders
  - 3.20 Contours
    - 3.20.1 Contour Computation
    - 3.20.2 Contour Store Function
    - 3.20.3 Contour Contrast Function
    - 3.20.4 Contour Shaders
    - 3.20.5 Contour Output Shaders
  - 3.21 Functions for Shaders
    - 3.21.1 DB Functions
    - 3.21.2 RC Functions
    - 3.21.3 Sampling with mi_sample
    - 3.21.4 RC Photon Functions
    - 3.21.5 RC Direction Functions
    - 3.21.6 IMG Functions
    - 3.21.7 Math Functions
    - 3.21.8 Noise Functions
    - 3.21.9 Auxiliary Functions
    - 3.21.10 Obsolete Auxiliary Functions
    - 3.21.11 Contour Functions
    - 3.21.12 Memory Allocation
    - 3.21.13 Thread Parallelism and Locks
    - 3.21.14 Messages and Errors
    - 3.21.15 Callable Functions by Shader Type
  - 3.22 Initialization and Cleanup
  - 3.23 Automatic Source Generation with mkmishader
  - 3.24 Shaders and Trace Functions
  - 3.25 Example Scene with Custom Shader
- 4. Geometry Shaders
  - 4.1 Introduction
  - 4.2 Examples
  - 4.3 Geometry Shader API
    - 4.3.1 Symbol Tables
    - 4.3.2 Dynamic Lists
    - 4.3.3 Incremental Changes
    - 4.3.4 Options, Cameras, and Outputs
    - 4.3.5 Lights, Materials, Textures
    - 4.3.6 User Data
    - 4.3.7 Instances and Instance Groups
    - 4.3.8 Geometric Objects
      - 4.3.8.1 Objects
      - 4.3.8.2 Bases
      - 4.3.8.3 Polygonal Geometry
      - 4.3.8.4 Free-Form Surface Geometry
      - 4.3.8.5 Curves
      - 4.3.8.6 Space Curves2.1
      - 4.3.8.7 Subdivision Surfaces2.1
    - 4.3.9 Function Declarations
    - 4.3.10 Function Definitions
    - 4.3.11 Phenomenon Definitions
    - 4.3.12 Verbatim C Sources
    - 4.3.13 Scopes
    - 4.3.14 Miscellaneous
  - 4.4 Geometry Shader Data Structures
    - 4.4.1 Instances
    - 4.4.2 Groups
    - 4.4.3 Cameras
    - 4.4.4 Lights
    - 4.4.5 Functions
    - 4.4.6 User Data
    - 4.4.7 Function Declarations
    - 4.4.8 Boxes
    - 4.4.9 Objects
    - 4.4.10 Approximations
    - 4.4.11 Polygon Lists
    - 4.4.12 Polygon Indices
    - 4.4.13 Polygon Vertices
    - 4.4.14 Polygon Vectors
    - 4.4.15 Surfaces: Face List
    - 4.4.16 Surfaces: Surface List
    - 4.4.17 Surfaces: Curve Segment List
    - 4.4.18 Surfaces: Scalar Lists
    - 4.4.19 Surfaces: Curve Point Lists
    - 4.4.20 Surfaces: Basis Lists
    - 4.4.21 Surfaces: Algebraic Lists
    - 4.4.22 Space Curves2.1
    - 4.4.23 Books and Pages
    - 4.4.24 Subdivision Surfaces
    - 4.4.25 Materials
    - 4.4.26 Rendering Options
    - 4.4.27 Images
    - 4.4.28 Strings
    - 4.4.29 Tag Lists
- 5. Usage and Command Line Options
  - 5.1 Command Line Options
  - 5.2 Startup File
  - 5.3 Stack Size
- 6. Upgrading from mental ray 1.9 to 2.x
  - 6.1 Rendering Algorithms
  - 6.2 Scene Description Language
  - 6.3 Shader Writing
- 7. Scene File Grammar
- Bibliography

Copyright Information

mental images Gesellschaft für Computerfilm und Maschinenintelligenz mbH & Co. KG, Berlin.

All rights reserved.

This document contains proprietary and confidential information of mental images GmbH & Co. KG and is protected under copyright law. The contents of this document may not be disclosed to third parties, translated, copied or duplicated in any form, in whole or in part, without the express written permission of mental images GmbH & Co. KG.

The information contained in this document is subject to change without notice. Neither mental images GmbH & Co. KG nor its employees shall be responsible for incidental or consequential damages resulting from the use of this material or liable for technical or editorial omissions made herein.

mental images®, mental ray®, mental matter®, mental ray PhenomenonTM, mental ray PhenomenaTM, PhenomenonTM, PhenomenaTM, Phenomenon CreatorTM, Phenomenon EditorTM, Photon MapTM, mental ray RelayTM Library, and RelayTM Library are trademarks or, in some countries, registered trademarks of mental images GmbH & Co. KG, Berlin, Germany.

All other product names mentioned in this document may be trademarks or registered trademarks of their respective owners and are hereby acknowledged.