Home  
     
  mental images  
     
           
 
    Errata for volume 1, Rendering with mental ray
Last update: December 6, 2001
     



 

First and Second Edition

Corrections
 Section 4.8, Light Mapping, page 107
 

the last parameter of mib_lightmap_write in the scene example should be "input", not "result_sh".

 Section 11.3, Image Formats, page 261
 

Targa images are written uncompressed, not RLE-compressed

Section 18.5, Global Illumination and Caustics, page 366
 

In the table, the second and third argument of the final gather accuracy row are reversed. It should read
"finalgather accuracy raysint [rmax [rmin ]]".

 Appendix A.4, Image Display: imf_disp, page 438
 

The section begins with "The image display and flipbook utility imf_copy...". This should read "imf_disp" instead of "imf_copy".

Additions that document later versions of mental ray and shaders
 A.1, Command line options, page 428
  Added new -echo attributes omit and norecurse, each with a string argument S, and an argument for the explode option:
    explode now accepts a numerical argument that specifies that only objects with more vertices than this number should be exploded. This is useful to avoid large numbers of trivial autoload files that would be too small to amortize the overhead of reading a file from disk. Also, the {_MI_EXPLODEPATH} registry entry can be set to replace the {\tt autoload} part of the autoload file names.
    omit specifies that certain types of elements, specified by S, should be omitted from the output. It is supported by mental ray 3.0 only. Note that both omit and norecurse will produce incomplete and nonrenderable scene files. These options are useful for extracting subsets of a scene.
    norecurse specifies that references of certain types of elements specified by S should be omitted from the output. It is supported by mental ray 3.0 only. For example, if S contains icil, instances of cameras and lights would be echoed (unless disabled by omit), but the instanced camera or light would not be echoed first. The S strings of the omit and norecurse attributes are sequences of the following codes:
   
code element affected statement
g instance group instgroup
o geometric object object
c camera camera
l light source light
m material material
t texture texture
p option block options
s named shader shader
d declaration declare
u user data data
ig instance of an instance group instance
io instance of an object instance
ic instance of a camera instance
il instance of a light instance
is instance of a geometry shader instance
Section C.8, Geometry, page 479
  mental ray 2.1.47.38 and 3.0.1 and later come with a base shader library that includes a new geometry shader mib_geo_torus:

geometry "mib_geo_torus" (
  scalar "radius",
scalar "thickness"
integer "uSpans",
integer "vSpans")

If left undefined, the parameters default to 2, 1, 32, and 32.

Appendix D.3, Physics Shaders, page 466
  The "col" parameter of the dielectric material, if set to 0.9, means that 10%, not 90%, of the light is absorbed per unit length of the material.

First Edition Only

Corrections
Section 4.1, Color and Illumination, page 46
 

On Lambert illumination: "On the side of the object facing the cube, ..." should be replaced with "On the side of the object facing the light source, ...".

Section 4.4, Bump Mapping, Figure 4.22, page 83
 

The bump maps are missing. Here is the correct figure:

Section 4.2.1.4, Texture Vectors, page 58
 

In the first bullet point, shaders accessing nonexisting texture vectors will not get null vectors but random data. mental ray does not (and never did) zero out undefined texture or bump basis vectors for performance reasons.

Section 4.4, Bump Mapping, page 82
 

The top right box of the diagram should be labeled mib_passthrough_bump_map instead of mib_bump_map, and the righmost arrow should begin at the bottom right box and loop through the top right box, not the other way around.

Section 4.10, Glossy Reflection, page 112
  The last sentence before section 4.1 should say "this is the reflection" instead of "this is the specular reflection".
Section 7.5, Caustics, page 167
  The second sentence of the last paragraph recommends to set the number of photons, and ends with "or even set to 0 (unlimited)". This part should be removed; 0 means "default", not "unlimited".
Section 11.2, Frame Buffers, page 246
  z contains depth values: the distance from the camera to the frontmost object. The book incorrectly states that the negative Z coordinate is stored.
Section 11.3, Image Formats, page 250
  In the second paragraph, it should read "The following table lists readable formats, with the number of components...", not "...number of bits per component...".
Section 12.3.2, Surfaces, page 272
  The last column of the basis matrix row should say (p-1)s+d+1, not (p+1)s+d+1.
Section 17.6, Filename Rewriting, page 341:
  Environment variable lookups using the registry syntax are specified as ${var}, not {$var}.The example should read ${MI_ROOT}.
Section C.7, Mix, page 454
  Mode 0 (blend) of the mix shader mib_color_mix is described by the equation R = A . (1 - Ba ) . w + B . w. The closing parenthesis after w in the first line of the equation table was wrong.

Additions that document later versions of mental ray and shaders:
Section 7.4, Caustic and Global Illumination Lights, page 165
 

mental ray 2.1.37.7 and later permit setting the number of stored photons to 0 if a number of emitted photons is also given (second optional argument) in one of the photons statements in the light source definition. mental ray will then emit exactly the number of photons specified without limiting storing.

Section 7.6.4, Final Gathering, page 181
 

The last sentence says that only a single ray generation is traced. This is now true only for diffuse rays; specular and glossy rays are now followed to allow final gathering through glass panes or mirrors. Correspondingly, final gathering now supports all of the more general L{D|S|G}{S|G}*D{S|G}*E rays, not only LDDE rays as claimed at the top of page 182.

Appendix A, Command Line Options, page 411
 

mental ray 2.1.36 introduces a new command-line option:

-render   beginint   [ endint   [ incint ]]

This option directs mental ray to render only frames begin through end. If end is omitted, begin and all following frames are rendered. If inc is given, only every inc-th frame is rendered. Frame 1 is considered the first render statement in the scene file; camera frame specifiers are not considered. For example, 4 8 2 will skip the first three frames, then render frame 4, 6, and 8, and omit the rest. It is not an error if the scene file has fewer frames than requested.

Appendix C.2, Texture Space Mapping, page 432
 

The mib_texture_vector shader in the base shader library shipped with mental ray 2.1.36 adds a new selection space mode 5 for light space, which uses the object space of the light. This is useful in light shaders that need to distinguish their local space (mode 5) from the object space of the illuminated object (mode 1).

Appendix C.2, Texture Space Mapping, page 432
  The mib_texture_vector shader in the base shader library shipped with mental ray 2.1.36 also adds a new projection mode 7 for lollipop projection, which puts the center of the texture (after texture vector normalization) at X=0.5 Z=1, and the corners at the parameter corners. On a sphere, the texture center is at the north pole and the texture corners are at the south pole, like a lollipop wrapper.
Appendix C.2, Texture Space Remapping, page 433
  The mib_texture_remap shader in the base shader library shipped with mental ray 2.1.36 adds a new vector parameter offset. The offset is added to the returned vector as the last step of remapping (unlike the translation row of the transform matrix, which is applied early). Offsets allow shifting transformed textures on a surface.
Appendix C.2, Bump Mapping, page 436
  The mib_bump_map shader in the base shader library shipped with mental ray 2.1.36 adds a new boolean parameter clamp, which prevents bump mapping outside the coordinate range [0, 1).