MayaMan Help Contents

# MayaMan Release Notes

#### MayaMan 2.0.4 - xx/Sept/2007

- prman 13.5 point based modes from mayaman 2.0.3 now works with perl driver scripts
- reflection/refraction rays thrown from mayaman generated shaders (or from custom shaders that use the DO_TRACE/DO_TRACE_ALPHA macros from maya_magic_shaders.h) now have an appropriate label set so that the hit surface has additional context
- deep shadows no longer are hue reversed
- a faceforward() issue in prman that caused faint edges has been fixed
- create object archives will now (optionally) apply polyReduce as it goes
- material attributes can be used to control specular/diffuse/transmission ray tracing hitmode attributes
- fixed visibility flag setting problem that caused problems with single sided surfaces and non-shadow casting but shadow receiving geometry
- ray traced occlusion computations for prman now consider objects that are part of the 'indirect' group rather than the 'shadow_caster' group so participation is now controlled through mayaman model attributes rather than the 'casts shadows' flag
- prman, the shader used for area lights now reduces the number of samples when raydepth>0, now has a true rectangular shape and has smoother shadows for a given number of samples, the distance attenuation has also been corrected, increase decay rate by one to get to old distance attenuation
- if the user supplies a 'compression' argument in the display driver argument list then the automatic setting of lzw compression to file/tiff drivers is suppressed
- doubleSidedness and orientation flags are now set as expected for archived shapes
- particle instancer will now work if the first particle has 0 scale
- prman, importance values are tracked during raytracing so that rays that are not going to contribute significantly can be culled
- the shader infrastructure now contains hints for importance propogation as well as reflection and refraction ray depth

#### MayaMan 2.0.3 - 4/Sept/2007

- prman 13.5: Point based occlusion and bleeding is according to the PRman app note "Point Based Approximate Ambient Occlusion and Color Bleeding"
- if an environment map is specified in the global illumination panel it will now be blended into reflections
- pfx shader now responds to ambient light
- fur export crash fixed

#### MayaMan 2.0.2 - 12/Jul/2007

- load/save preset dialog now works on linux (again)
- objects with the referenceObject attached (a common requirement for 3d texturing on deforming meshes) is now checked when deciding if an object changes shape over time (ie: needs to be sampled at every frame or just once). This change should make use of the 'force per frame shape sample' option much less frequent
- a problem with detection of duplicate specular computations caused layered shader to mishandle speculars on a regular basis
- mayaman now issues a warning at ribgen time if an attempt to motion blur particles has been thwarted by all 0 velocities
- mayaman now issues a warning if a FurDescription is attached to a mesh that does not have a referenceObject as referenceObject use is almost always required or popping will occur
- mayaman now uses the 'showHelp' command which has restored help capabilities to maya 8.5
- a scene name with more than one '.' in the name no longer gets split at the wrong place during synthesis of paths
- mayaman_batch now returns non-zero exit status on license failure
- alfred script mode, texture conversion now uses Cmd/RemoteCmd as indicated by the local/remote flag
- psd textures are now supported
- .qual/.rfl_qual/.search_path files are now only created once instead of once per batch invocation
- the -cam command line argument will now find the camera if given a full path to the camera
- -sourcefile/-preloadfile command line args added to batch mode which can be used to simplify clumsy command line syntax
- added flag to disable all displacement shaders
- fixed uvChooser emulation bug that selected bad values on polygons that don't have the uvChannel assigned to them
- date stamp information is now preserved from source image files to texture files which eliminates risk of them being out of sync
- fractal shader node emulation has been improved, in particular, the threshold parameter was badly broken
- ramp shader node, most ramps are now driven using facing ratio (as stated in maya documentation) rather than colorInput
- ramp shader node, specular color ramp is now driven by intensity of specular illumination
- Air, arealight emulation now handles lights with mapped shadows

#### MayaMan 2.0.1 - 14/May/2007

- cross platform issue, path remapping is now applied to the Envname parameter from the global illumination options
- shadow blur setup for ray traced shadows in magic light shaders now matches the precompiled shaders which avoids surprising change of look when mayaman decides it has to generate a light shader instead of using a simple stand in
- camera's environment background color value is not blended into reflections in a manner similar to the maya software renderer and the inbuilt fresnel attenuation has been removed
- useBackground, samples that contain reflection data now have their alpha set in a way that is consistent with the maya renderer, it is still not possible to represent the full expressive power of useBackground in a RenderMan renderer, users are still encouraged to use Extra Output Channels and/or Extra Passes and performing the blending in a compositing package as this has other desirable properties
- Maya 8.5 on Windows was not reliably generating and applying textures
- render layer visibility is now the union of layer member ship all the way up the transform stack
- path remapping is now applied to the filenames used for extra output channels
- particle instancer, improvements to handling of 'aimUpAxis' and 'aimWorldUp' for 'aimDirection' mode

#### MayaMan 2.0 - 26/March/2007

- mayaman now uses the Reprise license manageron all platforms, it is virtually identical to flexlm
- mayaman is now available for maya 8.5 on both linux and windows
- zero scale/radius particles are skipped
- anisotropic highlight tangent is now computed in a more robust manner
- __ambient extra-output-channel is now scaled by transparency
- added a __constant extra-output-channel that contains the color of each material with no lighting
- various tiled render issues have been resolved
- per-pass (layer) changes to light settings are now observed
- 3delight, subsurface scattering and raytraced reflections/refractions now work
- 3delight, two-pass colour bleed (photon map based) has been enabled, previously the colour bleed mode was degenerating to worst case brute force ray-tracing

#### MayaMan 1.2.64 - 9/March/2007

- mayaman for maya 8.0 on linux now uses the Reprise license manager, it is virtually identical to flexlm, all other versions of mayaman will make this switch in the near future
- builds for maya 5 and 6 are no longer included in the distribution
- when mayaman fails to find a shader it now logs a message
- when mayaman fails to find a shader it tries searching with the windows/unix directory mapping applied
- restructuring of volume light code to take advantage of interior shaders (Air) and/or vpvolumes (PRMan)
- support for Air 5.0.11's middist shadow map computation options
- fixed some bugs related to the reliable expansion of of things like '#s' and '$shadow' in procedural argument strings

#### MayaMan 1.2.63 - 9/Feb/2007

- faster conversion of maya subd
- expanded GUI range of some parameters related to subsurface generation
- subsurface prepass is no longer forced to single thread mode
- improved handling of 'aimPosition' mode in that upaxis adjustments are now made
- use of radiusPP as instancer scale now works
- order of values passed to CropWindow is now correct, previously top/bottom were reversed
- translucence now responds much better for all combinations of translucence amount and focus, depth is still ignored
- improvements to the MMfluidImplicit plugin which is used to render uncached fluid systems in prman

#### MayaMan 1.2.62 - 25/Jan/2007

- continued improvements to stucco/solidFractal/granite shader emulators
- object scale is now correctly ignored by fur, correcting a problem that crept in somewhere around 1.2.50
- maya 7 and later, output images for render layers now includes the name of the layer in the file name as well as the path
- prman13, 'mcfp' cached fluid systems are rendered using the impl_mfc plugin that comes with prman, users need to augment the procedural search path manually or the renderer won't find it's own plugin!... see prman manual
- shader compile issues with fluid shaders have been resolved
- changed default state of the 'constant' flag on the per-material subsurface cache to 'off' as that's the most common and least error prone state
- user defined chunks of rib can now be associated with materials via a mayaman material attributes node
- archives now contain the attribute/identifier/name information
- partices, object instancer, an instancer driven in 'sequential' mode from something other than age will now select the right objects to instance
- fur, a surface with more than one furDescription will now get correct attractor associations, previously one would be picked at random
- all locators are now placed into the rib as named coordinate systems
- user light shader with a 'light_type' parameter will now have it filled in, 0=point, 1=spot, 2=directional, 3=ambient, 4=volume, it will also be supressed from the parameter list in the attribute editor
- ramp material shader now compiles again
- air light output channels

#### MayaMan 1.2.61 - 9/Dec/2006

- added subsurface, fur and pfx cache file deletion options to the "Output Directories" "Clear MayaMan Cache" panel
- prman subsurface scattering, hid the 'max pixel dist' control as it doesn't actually do anything
- magic shaders, uvchooser would not always select the correct uv data, NB: if more than one object uses the same shading network then they should all have the same uv channels and in the same order, this can avoid the effort of having to associated every object with every uv chooser
- extended subsurface computation quality controls in Global Illumination Options
- magic shaders, minor implementational tuning on a few nodes, note that the noise pattern on 'stucco' has shifted slightly but the character is the same
- MayaMan Preset file browsers now filter based on the suggested '.mmp' extension
- Added a Tuning Air For Displacement + Occlusion page
- Added controls to the motion blur panel for Air 5.0.4's adaptive motion blur
- minor tweaks to improve crater/stucco/marble emulators
- place3dTexture, total rewrite of shader code removes virtually all restrictions and known bugs (ie: inheritsTransform issues), note, rotateAxis and shear are not supported
- layeredTexture, difference mode is now supported
- perl script mode, fixes some bugs with shader recompilation
- added flag to turn on prman13 shader profiling

#### MayaMan 1.2.60 - 17/Nov/2006

- fixed ribgen crash when using a custom shader with parameters that contained an '_'
- fixed lookup of user shader node emulations
- experimental new TweakAir behaviour, when tweakair is enabled and attributes are manipulated the system will now react automatically, nodes should not be added or destroyed, just modified, choose the 'auto tweak' setting before turning on TweakAir and then leave it alone, old behaviour is obtained by leaving auto tweak turned off before starting tweakair
- maya 8.0 mll distributed for windows only, linux coming soon
- Happy Feet is released in the U.S.A.

#### MayaMan 1.2.59 - 16/Nov/2006

- particles/points, when there were more than 16k particles the rgbPP and other PP attributes would get discarded from all but the first 16k points
- particles/points, Air, when the 'pointsAsSpheres' toggle is enabled it will now turn points into spheres! Previously it only meant that spheres would be rendered as points
- perl mode, perl scripts are now run more reliably
- air, volume primitive from particles will now create a __Pref from birthPosition/position, birthRadiusPP/radiusPP, birthRadiusXPP/radiusXPP, birthRadiusYPP/radiusYPP, birthRadiusZPP/radiusZPP, birthRotXPP/rotXPP, birthRotYPP/rotYPP, birthRotZPP/rotZPP, all are optional. This forms a coordinate system for 3d texturing operations that remains constant over time and allows procedural textures to stick to and track each particle.
- air, pointlights with mapped shadows now will use cubeface shadow maps which results in faster rendering
- 3delight, multithread/multiprocessing flags are now set correctly
- users who are extending the magic shaders to support their own maya shading nodes can specify that particular attributes should be converted to a textre, see 'totex' comment in shaders/maya_texture_description
- 3delight, seperated 5.0 and 6.0 shaders, inline archiving enabled for 3delight 6
- magic shaders, split maya_magic_shaders.h into a a file per emulated node type making it easier to study a particular node and add your own extensions
- magic shaders, 'maya_texture_description', 'maya_material_description' and 'maya_light_description' files are now also loaded from any 'mm_magic' subfolders found under entries in the MAYA_PLUG_IN_PATH, these subfolders are also added to the shader compiler include paths which makes it possible to add support for user defined hypershade nodes without modifying files that are distributed with mayaman and providing a way of versioning the mayaman support along with the plugins
- reflection/refraction blur/samples/subset are now taken from the mayaman material attributes node attached to the material shader that needs them rather than being taken from the topmost material shader in the shading group, this allows different blurriness (for example) on different materials that participate a layered shader
- particles, streak/multistreak/sphere, rib is now leaner
- air, arealights, now both shadowsamples and attribute/light/nsamples are set. The shadowsamples value comes from the helper light when it's setup for ray traced shadowing and it's number of shadow rays setting. The nsamples attribute is taken from the mayamanattributes node setting that is with the other per-model area lighting controls.

#### MayaMan 1.2.58 - 08/Nov/2006

- added note to fur doco for 3delight users, same applies for pfx
- magic shaders, added support for remapColor and remapHsv nodes
- magic shaders, improved fractal node observation of frequencyRatio, threshold, bias, time and timeRatio
- particles, multi-segment-motion-blur processing is faster and matches different time samples properly
- particles, negative radii are now turned into positive radii
- rib restructuring to enable tweakAir on area lights
- geo as arealight now observes 'opposite' flag which is important when the geo not double sided
- prman, vpvolumes shading strategy is now used for fogLight which is faster and better than the old technique
- enabled bucket order control for 3delight and added it's modes (zigzag, circle, random) to the bucket order dropdown
- shadow mapped point lights didn't work if a custom shadow map name was nominated, this is now handled by inserting a number to the requested name that indicates the direction
- prman 13, multithreading control can now be set to 0 which tells prman to all CPUs
- GUI, hid some controls that are only needed when Entropy is selected, in which case they are re-shown

#### MayaMan 1.2.57 - 03/Nov/2006

- 3delight, displacement shaders now compile
- 3delight, texture conversion now works
- particles, multi segment motion blur now handles the point/multipoint case, sphere case has been debugged
- MayaManSelectObjectSet (a callback script for extra passes) now correctly selects the objects instead of the set
- mayamanbatch in 1.2.56 was accidentally linked with debug libraries on windows, fixed

#### MayaMan 1.2.56 - 02/Nov/2006

- prman 13, ShutterOpening controls are now provided
- prman 13, geometry to brickmap conversion convenience menu entry, implemented on top of new generic brickmap creation mechanism
- particles, in a few limited cases, multi-segment motion blur now actually works!
- fixed a serious regression in 1.2.55 related to declaration of extra output channels
- recompiled pre-packaged shaders with 3delight 5.0

#### MayaMan 1.2.55 - 26/Oct/2006

- command line '-us' option no longer requires a dummy argument... ie: it works as documented
- the MaxVPDepth option no longer causes mayaman to crash
- mayaman can now use Air's Points-As-Spheres mechanism to render sphere based particles much more efficiently, use the mayaman menu's Add Particle Shape Attributes command to add an extra attribute that can be used to enable this behaviour
- the main mayaman menu now contains a command to add attributes to objectSets that control Attribute/grouping/membership
- the names of the render layers that an object belongs to are now inserted into the rib as Attribute/grouping/membership directives, this can be used in conjunction with the DriverArgs setting on the ExtraChannels panel to tap into Air's ability to groups of objects to particular output files, note the layer names are prefixed with "LAYER_" to avoid collision with other usages of grouping
- DepthMask Hider computation now takes camera motion blur into account
- __ambient extra output channel is now correctly scaled by the material's colour
- Air, reflections would often have red/green zeroed out!
- Air, LZW compression is now always turned on for the 'tiff' and 'file' drivers
- pixel aspect ratio issue continuing from 1.2.54, the MaintainRatio=PixelAspect with FitResolutionGate=Fill combination now works
- varying/vertex primvars on nurbs now works
- extra passes can now be driven from object sets
- the mayaman menu entry "add layer attributes" now adds the MayaManMatte attribute to all render and display layers, furthermore, it defaults the flag to on so that the common desired behaviour is the default
- you can now force MayaMan to always compile shaders for lights instead of using pre-canned light shaders
- prman 13, lagrangian texture filtering is now supported
- prman 13, sigma hiding controls are provided
- prman 13, Lens Aperture (Bokeh) controls are provided for special depth of field effects
- the logic used to get the filename associated with an imagePlane or file node now uses the same code as maya, in particular this means that things like frameOffset on imagePlane is accounted for
- MayaManInfo now has a '-isPreviewing' flag that can be used to detect if MayaMan is doing a preview
- trace sets for reflection/refraction can now be set on a per material basis via a mayaman attributes node and an object set

#### MayaMan 1.2.54 - 10/Oct/2006

- compressed ribs can now be generated for Air (you need a current Air build)
- there is now a place to set prman's deepshadowtiles options, the mayaman default is 1000 which is 10x larger than the prman default
- useBackground shader now supports reflectivity
- allow setting of dice camera on all passes, extra pass scripts may manipulate the MayaManNugget.DiceCamera attribute to select a dice camera per pass
- if the Trim Shader Strings flag is enabled the string args to shaders now have prefixes indicated by the texture search path stripped
- the formulation of the Attribute/identifier/name can now be controlled
- animCurveUU is optimized out of shaders if their time input comes from a locator or transform
- if shadow map reuse is enabled and mayaman decides it wants to write the shadow rib then the shell script that drives the render will also check to see if the target file exists, this allows more ad-hoc generation of ribs though it may mean that the render will begin before the shadow map is finished, manual deletion of corrupt shadow maps may be required to force computation
- shadow maps that are write-protected are skipped, this is a convenient way to mark that a set of shadow maps should be reused and not deleted without having to fiddle with the flags in mayaman, reflection maps are treated similarly
- tile renders now first combine into strips and then merge the strips into a whole, this reduces possiblity of command line length problems
- moved the connectDiceCamera() function into MayaManHelpers.mel as there are scripts (at Animal) that assume the function exists in a non-GUI context
- the 'cmd' shell no longer has it's title set
- -p flag no longer passed to netrender to attempt multi-threading
- arealight emulation for Air now produces proper shadow information to usebackground
- if a light shader needs a coneangle parameter and the light it is attached to is not a spotlight then an angle of PI/2 is assumed rather than the old behaviour of assuming 0
- the default orientation for a global illumination map is now naturally aligned
- a particle system's opacityPP is now passed properly to Air's volume primitive as floatOs
- Air 4.117 and later has a 'fragment shadow' concept similar to deep shadows
- some additional quote protection has been added to scripts to ease use of paths with spaces
- when reducing the number of rays to trace for shadows on samples at deep ray depths mayaman will now use the sqrt of the regular number of samples instead of 1. This causes shadows in reflections and the like to degrade more gracefully
- per-shape object archiving now figures out what materials to use much better
- Create Default Lights If None In Scene is now ignored when global illumination is enabled
- light visibility is now handled during render layer emulation
- screen window computation has improved handling of non-square pixels when Maya's Maintain Ratio mode is Pixel Aspect, the code is unchanged for 'Device Aspect' mode. In particular, an out of the box NTSC config now works, WARNING this may mean that images produced by this version of MayaMan may not line up with those produced by previous versions of MayaMan.
- extra output channels pulldown menu now includes the most common shader produced outputs, using this pulldown menu also sets suggested values for type and quantization

#### MayaMan 1.2.53 - 19/Aug/2006

- matte object flag works again (was broken in 1.2.52)
- solidFractal shading emulation improved
- projectionNode shading emulation now includes the noise attributes
- mayamanbatch now has a command line switch (-dolayer) that can be used with Maya7.0 and later to chose which layer will be processed, alternately, it may be possible to process all layers at one go using extra passes, see next point...
- extra passes dialog has a button to create a mayaman extra pass per maya renderLayer

#### MayaMan 1.2.52 - 16/Aug/2006

- particleCloud... shader would not compile when used in a volume shader, this break happened in 1.2.51 when the air volume primitive support was enhanced
- missing texture files are now reported, missing reference files can't be detected (!?)
- magic shaders, due to a silly bookkeeping error it was virtually impossible to have more than one magic light shader in a scene
- shader support for unitConversion nodes that have a single input
- renderLayer handling has been brought into line with the maya interpretation
- particle shapes in streak/multistreak mode are now rendered as linear curves
- rgbPP/opacityPP are no longer applied twice!
- minor bug fixes for displacement baking through Air
- fur shader now outputs the __normal AOV
- fluid shader improvements for air volumetrics
- pfx improvements for pfxHair based strokes (texture mapping)

#### MayaMan 1.2.51 - 28/Jul/2006

- fixed shadow maps... they were badly broken in 1.2.50
- particle systems can now be rendered with Air's Volume primitive
- particleCloud shader emulation beefed up to support the Air Volume Primitive
- renderLayer, if an object is a member of any renderable layer then it will be renderable, previous all the render layers that an object was a member of had to be renderable for an object to be renderable
- renderLayer, an object is considered to be a member of a renderable layer even if it's only the parent transform that's in the layer.
- up to two additional camera can be specified, this allows easy production of stereoscopic images
- shaders, pfx emulation shader now produces the common extra output channels

#### MayaMan 1.2.50 - 23/Jul/2006

- added convenience mechanism to copy crop settings from 'it'... see the crop options dialog
- magic shaders, multiple bump maps chained together through outNormal now composite properly
- fixed very rare crash during shader gen
- license policy relaxed, driving mayaman through mayabatch no longer consumes a mayaman interactive license
- magic shaders, vectorproduct... normalizeOutput now does what is expected on a dot-product operation
- render layer shading group overrides are now partially observed... if there is only one render layer set to renderable and it has a material override set then it will prevail and will also override mayaman's global material override
- camera motion blur is now automatically disabled on a per-frame basis when the camera is stationary
- if the output resolution is animated and the user selects 'FlatRib' mode then the right thing will happen
- user defined rib no longer goes through a forward/backward slash normalization, it was an unintentional side effect of variable expansion (which still works)
- matte objects that have 'use surface shader' turned on will now return their un-matte color when seen by reflection or refraction rays, when 'use surface shader' is turned off a black value will always be returned for reflection/refraction rather than grey
- shaders, brownian noise now has correct range on outAlpha and the look matches maya much better
- shaders, minor improvements to crater emulation
- shaders, shadingMap now works

#### MayaMan 1.2.49 - 11/Jul/2006

- added function that will configure a polygon mesh so that it's edges render like it was polysmoothed, available through the subdiv menu
- improved curve attractor emulation
- sprites now work with tipped camera mode
- fixed an ancient bug related to changing ribdir and then previewing resulting in shaders not being found
- the pre-frame MEL script is now called when using forward linear motion blur
- for renderers that support it... you can now use up to 31 segment motion blur
- in some cases mayaman would fail to insert the render commands for extra passes into the render script

#### MayaMan 1.2.48 - 08/Jun/2006

- prman13, provide seperate controls for -p and -t modes (number of processes and number of threads per process)
- crop-to-selected now works when archive substituion is being used

#### MayaMan 1.2.47 - 02/Jun/2006

- if more than one SLCodeNode in a shader declares a particular primvar the duplicates are now detected and handled properly
- SLIncludePath and SLInclude attributes on an SLCodeNode will now accept comma separated lists as well as semicolon separated lists
- advanced duplicate shader detection is now performed, this can dramatically reduce render time memory requirements if there are lots of copied materials
- changes to how '__shadow' AOV is computed when the unshadowed illumination at a point is black, previously this would be interpreted as fully shadowed, this fix repairs some of the useBackground behaviour

#### MayaMan 1.2.46 - 22/May/2006

- debugging various area light scenarios in Air
- removed spurious '-' characters from extra channel file names
- flat mirror temporary image files now end in .tif so that Air is not confused
- per shape archiving now works properly with complex material assignments
- the tiff file detection code introduced in 1.2.45 would sometimes result in a rejection of a valid tif which could result in a corrupted texture
- added a button to the blobby menu to assist in connecting materials to blobbies

#### MayaMan 1.2.45 - 16/May/2006

- added a 'matte' argument for procedurals
- paintFx plugin now handles more than 5 different stokes properly
- shader output variables are now initialized to 0
- non-visible helper lights are now skipped, previously they would have their shadow map gen skipped but still be referenced by the parent light which produced rendertime warnings
- constant prim vars are now output for subd, other storage types are still ignored
- the hash function used by 'MayaManInfo -hashstring' is now much better (less collisions)
- mayaman's caching of illumination values now checks if the normal and specular models are the same as the previous call and will re-evaluate as required
- shading simulation, file node, alphaIsLuminace now gets computed correctly if the mayaman texture channel access optimization has decided that the channel access mode should be something other than RGBA
- particles, when a mayaman attributes node is directly connected to a particle shape and that atts node is set to use a procedural then the procedural is invoked at each particle location, age/ageNormalized/particleId/emitterId/opacity/rgb can all be used as symbolic args to the procedural and they will be replaced with the correct value for each instance
- shader code correction to allow Air (4017 or later) to handle surfaces that are not to receive shadows properly
- changing cameras on a per-pass basis now works
- each pass now can run a shell script on completion
- RMindirect shader for Air has been improved
- crater shader simulation now produces an 'outNormal'
- bump mapping has more predictable results now that a missing normalize() call has been added
- 3d procedural textures now remove the object scale from the point to be shaded
- a bug with the computation of U/V coordinates for nurbs surfaces in 'fix texture warp' mode has been corrected, NB: mental users should note that it seems to ignore the fix texture warp flag so it should be switched off to maintain texture alignment in mayaman
- the 'flipped normal' output of samplerInfo is now computed correctly
- place2d, value is now clipped against unit square after coverage fraction is applied
- turning off 'Generate Reflection Maps' no longer disables ray traced reflections
- instances of native prman shaders that differ only in the values of the shader parameters would sometimes get collapsed into a single instance
- totex on linux is now compiled with a more modern compiler
- prman 13 light AOV enhancements, use of light: notation no longer results in malformed file names, use of light:(lightname) notation results in correct substition of actual light handle at ribgen time, the lightname can be a lightname or a shader name
- file texture frame extensions driven by expressions or keyframes will now evaluate correctly on the first frame of a batch ribgen

#### MayaMan 1.2.44 - 24/April/2006

- major overhaul of the 'generate object archive per shape' mechanism
- crop-to-selected now computes it's screen bound properly
- particles, added some notes on how to generate ribs for particles with per-particle expressions
- maya 7.0's test resolution settings are now handled correctly
- Dice PerFrame Shadow Maps With Main Camera now defaults to off as the price of having it on by mistake is high compared to the cost of not having it on and needing it
- air 4, repaired anisotropic and blinn, blinn is not optimpal
- prman 13, small changes to magic code gen to improve compatability with new diagnostic features
- subdiv stitch, extra support holes are now added that improves continuity between surfaces
- when a 'bake' flavour of prman is selected as the renderer the sensible dice/cull attributes are placed into the rib
- MayaManRemodelFromPointCloud now has a command to find out what channels are present in a point cloud and a command for copying a data channel from a pointcloud into the vertex color of a mesh
- fixed crash when generating non-motion blurred hair
- setting the crop region from the batch command line now works
- batch mode, setstringattr flag now wraps the argument in quotes automatically
- animated texture handling now handles all digit frame specifiers more gracefully for tif files and will handle more than 4 digit replacement
- prman 12.x style caustics now work again
- use of progress bar can now be turned off (from the main menu)

#### MayaMan 1.2.43 - 9/March/2006

- maya hair will now motion blur
- eliding displacement shaders with 0 displacement bounds from shadow runs is now optional
- shader compile failures now have log data dumped to the script editor log window, in batch mode these messages are dumped to stderr
- extra output channels can now be embedded in the main display image
- shader creation is now faster, especially for large SLCodeNode networks
- maya's "dgtimer" is now used during rib gen, it's always on for batch mode and can be disabled for previews from the main menu
- maya's progress window is now used to keep you up to date regarding mayaman's progress through your scene
- sometimes attributes that get set in a pre-render script don't get picked up.. the nugget cache is now discarded after each user script is executed so that new values are picked up
- if the RenderComment is not the empty string then it is passed to the 'file' and 'tiff' driver as the 'ImageDescription', for Animal's internal drivers it's passed as a 'comments' parameter.
- tipped flag is now passed to every display driver in every pass, not a select few drivers in the main pass
- added a __translucence shader output channel

#### MayaMan 1.2.42 - 18/Feb/2006

- the 'ignoreWhenRendering' flag is now observed on the fogGeometry connection of lights
- the hider/maxvpdepth setting for prman now has a control in the scanline options
- the shutter/clampmotion option for prman now has a control in the motionblur options
- basic support for Maya7 fur-driven-by-hair-dynamics has been added, old style fur attractors are no longer supported
- fix instanced geo rotation problem when instancer is in 'degrees' mode, previously mayaman duplicated a bug in maya regarding rotation but that bug in maya has been corrected so mayaman's emulation of it has been removed
- improve billow mode support for noise/volumenoise
- texture periodicity settings (.pX/.pY extensions in converted filenames) are now derived directly from the wrapU/wrapV on the file node

#### MayaMan 1.2.41 - 07/Feb/2006

- prman 12.5 ray tracing, objects that are not visible to reflection *and* refraction now are made invisible to specular rays
- various stitching upgrades to support substitutable model parts and archiving
- prman 13, XML stats are output to a file with the same name as the rib with .xml appended
- camera projection, scaling is now removed from camera matrix which makes the result more consistent with the maya renderer
- mayaman now knows that prman knows about the display driver search path option
- fix particle instancer glitch introduced in 1.2.36
- usepref changes, it was using pref that was synthesized by the displacement shader even when usepref was off for the model
- maya hair now works again
- a warning is now printed if the number of items in a curve data attribute does not match the expected number

#### MayaMan 1.2.40 - 21/Jan/2006

- modifying selection in extra pass scripts now works, particularly useful when used in conjunction with CropToSelected
- there is a new global flag to treat all unselected objects as matte objects, this is useful with crop to selected and extra passes
- fixed crash introduced in 1.2.39 related to the processing of image plane geo

#### MayaMan 1.2.39 - 18/Jan/2006

- prman, diffusehitmode was incorrectly being hardcoded to 'shader' which caused surprise slow downs
- matte objects, two new checkboxes in the model attributes node that can save render time
- when using extra-passes, you can now skip the main pass
- a PASS variable will now be expanded to match the current pass name

#### MayaMan 1.2.38 - 24/Dec/2005

- tweakair now works with pre-canned archives, existing archives will need to be regenerated (or the Attribute "identifier" "name" lines removed).

#### MayaMan 1.2.37 - 20/Dec/2005

- pressing the 'Init' button on a MayaManCustomShader node works reliably
- spotlight shadowmaps, when dmap autofocus is not enabled the dmapFocus value is now used instead of the coneangle
- rib optimization, shadow ribs no longer contain displacement shaders that have 0 displacement bound even if 'consider surface shaders' is on
- texture optimization, 3 channel textures with R==G==B are now converted to single channel textures during texture conversion, it may be worthwhile emptying out tex_cache folders and letting them repopulate
- __shadow AOV is now computed according to the this relationship: diffuse = unshadowed * (1-shadow) + indirect
- MayaManFur shader now looks for and uses Shave&Haircut style prim-vars (rootcolor, tipcolor) which makes it useful for shading shave ribs
- MayaManFur shader now creates __ambient, __diffuse, __specular, __diffuse_unshadowed, __shadow output channels
- user defined rib sections now have variables expanded (ie: $(PROJECTDIR)) and are subject to frame-numberization (ie: #4f expansion)
- crop to selected, if the selected objects are all off screen the resulting crop region will now be a small window in the upper left corner, previously it would revert to an uncropped render, also if some selected objects are in view and other are not, the non-visible objects no longer influence the crop

#### MayaMan 1.2.36 - 15/Dec/2005

- the orientation of geometry in reflection map images was inside out, the camera and world in reflection ribs are now configured consistently with the beauty rib
- the 'debug' flag in the advanced options has been withdrawn
- blobbies, in many cases the rib was malformed and now warnings/errors are printed if the set contains the incorrect number of operands for the specified operator
- cropping modes now with tipped camera
- motion blur on blobbies, threshold is now set on each time sample which avoids a weird exploding effect
- added ability to use Air's point-as-sprites rendering, use 'Add Particle Shape Attributes' on main mayaman menu and then look in the ExtraAttributes section of the particleShape
- added support for the maya 'remapValue' shading node
- for prman, added a new occlusion shadow mechanism that delivers soft ray traced shadows much faster than the previous technique
- windows only, animal display driver can now be used to display Extra Output Channels during previews
- tiled images, tile_img directory is created in all cases, extra output channels are now correctly assembled
- __shadow extra-output-channel is now scaled by Oi so that it doesn't incorrectly appear in transparent areas
- particle instancer now correctly accounts for translation on instanced object
- subdiv stitch now ignores underworld nodes
- selection cropping works better under varied camera configurations
- anisotripic shader now uses U/V info to orient effect rather than a dodgy object space metric
- improved framing of objects during displacement baking
- prman 12.5 raytracing visibility attributes now better utilized
- ribs for extra passes now have .rib at the end instead of in the middle, this help tools that trawl disks looking for files of certain types
- bump mapping now observes the filter/offset values (somewhat)
- extra passes now update many more flags on a per-pass basis (ie: matte)
- resolution can now be specified for dicing camera

#### MayaMan 1.2.35 - 7/Nov/2005

- sometimes a complex hypergraph network to a mesh node would cause an infinite loop during rib creation
- improvements to subdiv stitching, continuity is improved by automatically using neighbor polygons to shape the mesh
- batch, project dir is now set before the scene is loaded, not after
- batch, -preloadscript and -us command line handlers won't produce spurious errors
- batch, windows, peak pagefile usage is now printed at end of processing

#### MayaMan 1.2.34 - 3/Nov/2005

- bucket/grid size can now be set per-light, default is to use main bucket/grid size which is a shift in policy from previous releases
- basic shadow map settings are now placed in a per light .qual file just like the main pass, this facilitates tweaking after rib gen (ie: by wranglers)
- volume light improvements, mostly related to shadowing
- mapped shadows on point lights work again
- attempts to recompute a reflection map that already exists and is not writable now produces a warning and the computation skipped
- air (as of 3.1.20) can display shadow maps as they are rendered, this can be enabled during previews with the Display Shadow Map During Preview option
- spotlights that use shadow maps can now take advantage of Air's on-the-fly shadow maps, the amount of memory used for this feature can be set too.
- the '-display "driver"' flag for batch mode now works
- shadow color was incorrectly being influenced by intensity
- perl script output was broken if shadow maps were to be created
- particle instancer breakage corrected
- a dicing camera can be specified, this is useful for stereoscopic rendering where both views should be diced the same, it may also be useful for controlling popping during slow/short camera moves, note, this fixed a problem with main camera dicing for shadow maps

#### MayaMan 1.2.33 - 25/Oct/2005

- Maya objectSets that have a string attribute called 'MayaManAddGroup' and/or 'MayaManRemGroup' are used to set trace group membership for the objects in the set, the group name to add/rem from is the value of the attribute.
- vertex motion blur info queries (through MayaManInfo or procedural symbolic expansion) will now return the motion blur values when linear blur mode is enabled, this should slightly simplify procedurals and scripts that involve mayaman vertex blur settings
- maya volume lights now have basic support, note, these are not volumetric lights
- added controls to the model attributes node to control Air's shutter offset/scale, useful when using blurred archives that were created with time values that don't match the usage requirements
- fur is now produced when blur mode is 'zero to one' time range
- maya7.0 linux, linkage issue resolved that prevented licensing from working

#### MayaMan 1.2.32 - 20/Oct/2005

- yet another silly motion blur bug from 1.2.29 has been fixed
- polygon mesh objects with more than one material *and* uv info on some materials but not others would sometimes end up discarding the uv info for all materials on the object
- light linking is now obeyed for shadow map generation when archives are being used
- sometimes when a shadow map is empty (perhaps through light linking) a light would be marked as casting shadows anyway, this caused the shaders to revert to raytracing instead of producing no shadow as required

#### MayaMan 1.2.31 - 17/Oct/2005

- fixed crash introduced in 1.2.29 related to rib deletion
- motion blur issues introduced in 1.2.29 resolved
- on linux for air, multi-threaded executable used when number of CPUs is > 1
- fwiw, the maya5 on linux build of mayaman no longer has an undefined symbol
- various crashes (esp on linux) related to license aquisition failure have been resolved

#### MayaMan 1.2.30 - 6/Oct/2005

- on windows, the registry is no longer consulted for values, only the environment variables are used
- bug that caused second invokation of texture conversion to hang has been fixed
- blur is now auto-disabled during rib gens that have 0 shutter range
- increase compatibility with Air's light shaders by treating __shadow like we do __shadow_value, ie: control the state of attribute/light/shadows
- fixed regression from 1.2.28 related to use of the 'nsamples' attribute for lights in Air
- general improvements in area light handling for both prman and air
- soft raytraced shadows sample scene and notes have been added
- it is now possible to detect if the -renderShadowMap mode has produced no map

#### MayaMan 1.2.29 - 30/Sep/2005

- multisegment vertex/transform motion blur can now be disabled on a per-object basis, the vertex blur switch that was in the 'misc' section of the attribute editor has now been moved to the motion blur section.
- shader search path environment variables expansion changes from 1.2.26 now don't apply to MayaManInfo queries, this avoids unanticipated expansion during GUI interaction.
- subdiv surfaces that were set not to receive shadows would anyway!... fixed
- motion blurred sprites in shadow maps that are not blurring would cause prman to crash... avoided

#### MayaMan 1.2.28 - 18/Sep/2005

- maya 7 build... for windows
- mechanism to turn on renderer statistics for shadow passes
- fur, polygons without UV information are now culled more aggressively during hair computations, this change is in the rib exporter, not the fur procedural so regeneration of cached fur files is required for those affected by this problem
- forced particle attribute export with user nominated types now works as it should
- use of the 'nsamples' attribute on area lights has been re-enabled for Air
- I/O performance during texture copying has been improved

#### MayaMan 1.2.27 - 9/Sep/2005

- futher improvements to displacement baking, previously baked objects are not compatible with the new scheme
- added a convenience function to MayaManHelpers.mel that will create a new extra output channel
- display driver arguments can be set for extra output channels
- extra output channel default file name construction can now use a user supplied extension, if no extension is supplied then the extension is assumed to be 'tif' if the driver is file or tiff, if the driver is openEXR the extension is assumed to be 'exr', otherwise the old behaviour of using the global output file name extension is used
- fixed bug in shader code gen related to projection nodes not projecting (bug was introduced in 1.2.25)
- better detection of empty shadow maps
- shadow map inclusion/exclusion sets now behave as expected for objects being replaced with archives
- subdiv stitch bound now set as intended, previously the bound was twice the square of the specified tolerance, now it's just twice the tolerance, this gets rid of lots of bogus 'exceeded stitch bound' warnings
- reworked subdiv stitch, now creates sets of sets of sets edges instead of sets of models but otherwise works the same, not backward compatible with previous subdiv stitch configurations

#### MayaMan 1.2.26 - 29/Aug/2005

- new light attribute to avoid insertion of mayaman's default light categories into the light category list
- the manual is now searchable... thanks to an applet picked up from Richard Everitt
- animal display driver now knows about tipped-camera mode and adjusts accordingly
- Shadow Casting Override Sets for lights now correctly influence prman's "visibility/midpoint" setting
- texture file copying and conversion is now controlled through locking files, this should greatly reduce/avoid problems related to concurrent modifications that may arise through farmed ribgen or rendering
- texture file conversion now happens in a background thread, thus allowing interleaving of rib-gen and texture creation, up to two texture conversion threads will be started, if rib gen finished before texture conversion then a 'cancel' dialog will appear, otherwise mayaman will wait for the conversions to finish
- camera dicing for shadow maps is probably not a good idea for constant shadow maps so a separate control has been placed in the Global Shadow Options (defaulted to off) to control camera dicing for constant and per-frame shadow maps independently
- Fur, some dodgy maths were causing some hair clumps to wobble and be lit strangely
- Fur, points on the mesh with no valid U/V (ie: tangent) information are now assumed to be bald
- ImagePlane objects on cameras with non-square pixels would not always fit the camera properly
- Shadow Map Helper lights that do not have 'mapped shadows' turned on are ignored, previously they would not generate a map but the top level rib would then try to use that non-existant map anyway. Now a warning is printed at rib-gen time that indicates if helper lights are being skipped.
- There is a new attribute for file nodes that can be used to optimize which channels are accessed during opacity-only evaluations
- Thumbnail images of shadow maps can now be automatically generated and displayed, handy for finding maps that are not doing what they should, see Global Shadow Options for details
- batch mode has a new command line argument for executing MEL before the scene is loaded, useful for loading plugins, etc.
- a referenceObject for mesh/subd can now be plugged into any apropriate mesh plug, if the mesh does not exist as a dag node then it's points are interpreted in object space
- environment variables are now expanded more sooner, this avoids unexapanded entries in search paths, etc.
- SLCodeNode can now request that geometry have the vertex color information attached, just turn on the 'Output Vertex Color' toggle and use 'VertexColor' in the SL code
- displacement baking has been temporarily disabled (at least the shader code that supports it has) as it caused regular use of reference geo to break, there are also some small changes to how displacement is applied in preparation for the next round of displacement baking

#### MayaMan 1.2.25 - 15/July/2005

- variable expansion will now observe values set through MEL's `putenv` command.
- motion blur fixed, was broken in 1.2.24
- polygons with holes are now handled more robustly
- variable expansion now applies to custom shadow map names before the decision to prepend the PROJECTDIR is made, thus allowing use of variables that denote a full path
- there are new MayaManInfo commands to manage user defined rib strings, pre/post render scripts, etc.
- MayaManInfo's -expandvariables mode now works
- further displacement baking improvements, now faster and more accurate
- baking of Ci/Oi, etc. through the MayaManMaterialAttributes, works for prman

#### MayaMan 1.2.24 - 8/July/2005

- occlusion/irradiance baking for prman12.5 works again, also, ptc files are generated on TEMP dir, a basic tutorial for this has been added to the documentation
- the Bucket Order controls now do something for prman12.5, in multithreading mode this determines what buckets are done by what processor. Note, as the previous default for bucket order was 'Vertical', which suited Air, this may not be apropos for PRman users... PRman users who are doing multi-threaded renders on pre-existing scenes should review this setting and adjust as required.
- a Bucket Stride control has been added for prman12.5
- there is a new hook to run a shell script after the shadows have been computed but before any other subpass is computed
- prman subsurface, the subsurface rib no longer contains motion blur information which was muddling up the pointcloud which in turn created bright/dark spots in the final result
- new checkbox in basic global options to turn off all lights... MayaManNugget.NoLights
- new shader override mechanism in advanced options to apply a simple surface shader to all objects, displacement is left as is
- there is a new hook to the MayaManRender command, -cvi [1|2], which will iterate all the materials(1) or models(2) in the scene and create a rib for each, in each rib there is only one material/model visible to the camera, useful for certain baking applications.
- shader compile, if the user has the empty string as an element in the shader search path the compile will fail, now mayaman discards empty string entries

#### MayaMan 1.2.23 - 4/July/2005

- camera tipping, useful for controlling memory when ground planes are involved... see checkbox in basic options
- output file is no longer deleted and checked by batch file, this was causing problems with 'recover' attempts where the recover flag has been slipped in after the batch file has been created
- TweakAir's ability to create new lights is now supported, and other tweakair/air improvements
- shaders, when maya returns a corrupt matrix the problem is logged and an identity matrix is substituted, this avoids rib parse errors due to ill formated numbers
- reference rib file caching, make rib files in subdir of source location now works
- variable expansion more robust/versatile. in addition to the old $() way of specifying a variable, you can now use ${} or just $ provided that the variable name ends with a slash (of either direction). Variable expansion is applied to the file names specified on file nodes... both the main imageName and the mayaman override
- extra output channel file naming, if each channel is sent to a subdir the old naming scheme meant it was hard to tell the clips apart when loaded into a compositing package. there is a new option (defaulted on) that will append the channel name to the file name
- Air3.1 support, super diffuse, etc.

#### MayaMan 1.2.22 - 28/June/2005

- extra output channels, display driver can be selected per channel... and other enhancements
- archives created without materials now no longer contain displacement bounds
- there is a new panel for specifying RiFilters

#### MayaMan 1.2.21 - 23/June/2005

- improved prman displacement baking
- scripted shadow map renders have better diagnostics, selecting the transform above the light instead of the lightshape is now valid and any failure to produce the map is logged
- procedurals with very long argument strings would crash maya/mayaman, the limit has been raised by 10x
- shading, projection nodes in 'planar' mode with 'wrap' turned off now correctly clip in Z
- shading, texture files with embedded alpha channels don't correctly invert the alpha channel when asked to do so
- shading, displacement baking code caused volume shaders to break

#### MayaMan 1.2.20 - 21/June/2005

- shading, fix black dots on translucense that appeared as of prman12.5
- shading, anisotropic specular has been improved, roughness and general falloff issues corrected, fresnelIndex still not supported
- prman, micropolygon caching is now enabled by default... but set not to kick in until 512Mb of micropolygons are generated, this will provide behaviour similar to previous releases except for scenes with large amounts of micropolygons, in which case the behaviour should improve
- statistics, the default is to now ask the renderer for the maximum amount of statistics that it can produce, this is cheap to collect and a valuable source of information
- bakeair, baking illumination now works again
- texture cache, it is now legal for the value of the 'Mirror Texture Cache' to end in a trailing slash
- displacement baking for prman

#### MayaMan 1.2.19 - 28/May/2005

- subdiv stitching improvements, a stitch set can now contain more than two subdivs and all possible stitching between those surfaces will occur
- maya subd handling improved, surfaces now no longer require a u/v mapping, note, mayaman enforces a base-poly-must-be-split-once rule, your model may be modified as a result of running mayaman
- optimization, use of pre-converted rib archives now uses less file system operations during generation of ribs that use them
- optimization, certain types of repetitive material lookup now cache results resulting in faster rib gen
- texture memory setting is now also placed in shadow rib
- lightfog for cone, scale of light now doesn't confuse the cone inside/outside check
- shadow location cheating, previously the attached lights had to be connected to the helper light slots from the first slot onward with no gaps, now gaps can appear anywhere
- shadow location cheating, sometimes the wrong bias/blendwidth value would get used
- batch, improved reporting of failure, exit status is now non-zero in cases where an exception is thrown but not handled
- shading, ramp shader modes exponential up/down, bump and spike have been improved, thanks Ant!
- shading, surface shader nodes no longer write to extra-output-channels
- pfx, now locates source images from the brushImages dir of the maya install
- pfx, hair dicing is now only applied to hair systems, not pfx strokes
- pfx, rgb channels of textures are no longer sampled during shadow runs
- pfx, strokes that create no points are now elided from the rib
- particles, 'tube' geometry is now exported as a cylinder with two hemispherical caps

#### MayaMan 1.2.18 - 27/April/2005

- improved tweakair support, arbitrary material modification is now supported
- particles, propagate material now works with instanced object archives, be sure to create the archives with IgnoreMaterial on but also, at the time of archive creation, have a simple material on the objects that requires U/V info (like a simple checker) otherwise the archives won't contain the U/V info required later
- the 'EnvName' texture conversion improvements in 1.2.17 would incorrectly try to convert the empty string to a texture, fixed

#### MayaMan 1.2.17 - 19/April/2005

- switched particle primvars back to 'uniform' as it's more efficient and the renderer problem that triggered the change in 1.2.16 has been resolved
- improved tweakair support, lights are now supported
- pfx procedural now works in shadow maps
- distant lights were broken for inside-out geometry
- the code that selects the mayamannugget to use now requires that it be named 'MayaManNugget' exactly, this is a relaxation of what happened in 1.2.13, the only part of that change that remains is the restriction that the nugget is not in a referenced file.
- file names in the 'EnvName' attribute of the Global Illumination Options are now converted to an env-map if they do not end in '.env' or '.tex'

#### MayaMan 1.2.16 - 15/April/2005

- deep shadow map zfile deletion code would sometimes try to delete a file that doesn't exist
- added support for brickmemory
- mayaman no longer tries to get fancy and second guess what display driver you want
- lights that are being 'looked through' and also exist only to create shadow maps for other lights were incorrectly adding light to the scene
- particle primvars are now output as 'constant' rather than 'uniform'
- there is now a 'pre frame' user rib box for the beauty pass and the FrameBegin has an Identity after it, this is a hook for exploiting PRMan12's dicing strategy and dicing camera.
- minor tweaks to pfx support

#### MayaMan 1.2.15 - 12/April/2005

- zfiles for deep shadow maps are now always created on TEMP storage
- force selection of 'min' filter for deep shadows
- added a flag to global illumination panel to disable all indirect ray visibility
- added a flag to raytracing options panel to disable all reflection/refraction ray visibility
- crash with maya hair procedural fixed
- caustics were broken in both prman and air (for different reasosn)
- tweakair mode, surface and displacement shaders only for now, lights to come later
- each shadow map used with Shadow Location Cheating can now have it's own bias
- archive gen with ray-traced-visibility mode in auto no longer causes visibility/transmission=transparent to be set on otherwise shadow casting models
- support for PRman attribute derivatives/extrapolate, see scanline options
- fixed bug with shadow location cheat lights getting broken off and not being reconnectable

#### MayaMan 1.2.14 - 05/April/2005

- Maya 6.5 support
- More shadow maps for shadow cheating... now uses arrays, custom shaders may need recompilation though the code is backward compatible
- Polygon and Subdiv objects now have attribute/identifer/name set like they used to
- Geometry export of maya's fluidShape, fluid shading engine is still naive
- Handle paintFx as a procedural.. saves disk space and has better render profile... combine object archiving and pfx to create truly huge scenes with little effort.
- Support for Air3.0... displacement baking
- Minor tweaks for Prman12.5 users... subsurface baking now stores area in the point cloud.
- Verbose switch now no longer logs the "- rib -" and "- update -" lines as they can overwhelm a log server in a farmed environment.
- Wedge mechanism, create a set of images that represent the iteration of up to 4 attributes over user specified ranges and increments, output image names are representative of parameter values used.
- Improved stability on linux?
- Bug fixes related to shadowmap names and subsurface computation.
- Lighting optimizations for Air, exploit light cache coherence.
- Support non-square shadow maps, also allows setting shadow map rez > 8k.
- Improve default shader for mayafur, extend the shading model with root-darkening.
- Support 'occlusionbound' prman hider option
- Interpret subsurface illumination as incandesence instead of ambience so that it can avoid being scaled by surface color... if you want it scaled that way then use the tinting control in the subsurface parameters section of the material attributes.
- Compute the __shadow output value as the difference between the unshadowed and shadowed light, this makes more sense than the previous way and should lead to more useful __shadow output channels.
- SLCodeNode attributes can now be excluded from shader code gen, useful for infrastructural attributes that would otherwise just cause shader bloat.
- Faster processing of references for the OutputDirectores gui.
- Shadow auto-focus bug fix, objects with an undefined bbox (like an empty particle system) no longer throw the calculation out of whack.

#### MayaMan 1.2.13 - 14/March/2005

- reworked nugget selection to avoid potential incorrect selection of nuggets from reference files
- SLCodeNodes with string args can now have those args interpreted as textures that need conversion
- fixed camera selection code in batch mode, MayaManInfo -cam now works properly in batch mode
- each EOV channel can now have it's filtering mode set individually
- ensure that user supplied reflection file name does not contain illegal characters
- improvements to default fur shader, some of which can only be realized by adjusting some new parameters away from the defaults (which are they way they are for the sake of backward compatability) to the values suggested in the manual.
- fur, attractors now work again, they were broken in maya6.0
- fur, fixed normal flipping problem with hair groomed close to the surface
- better handling of maya's default light, previously maya's default light would be detected by mayaman and therefore supress mayaman's desire to add it's own default light, but then mayaman would think the default light didn't light anything so the render would be black
- subsurface computations can now be restricted to a specific subset of lights
- subsurface computations are now forced to 1x1 pixel samples
- subsurface, don't write EOV channels during subsurface baking
- fixed crash when creating ribs with constant curves
- add the ability to append user supplied text to the end of the main RiDisplay call, effectively supporting arbitrary display driver args
- batch file debugging, if the batch file exits through it's error handler then more information is given about what type of failure occurred (debugging feature for wranglers)
- shader code gen improvement, the EOV arrays are no longer added to shaders that don't need them

#### MayaMan 1.2.12v - 24/Feb/2005

- Make sure the reflection file name does contain illegal chars
- MayaManInfo extensions to access blur info
- Make '-archivebound' work for ribs from massive
- When creating the trueDisplacement plug we should return it's default value (the bug where renders with trueDisplacement off first time and on the second time).
- Avoid casting shadow rays in certain situations, this corrects a defect in the __shadow extra output channel when used with ray traced shadows
- Maya's native subd surfaces were causing mayaman to crash
- Fixed batch file errors related to trying to bake nothing
- Various MayaManFur fixes

#### MayaMan 1.2.12u - 06/Dec/2004

- Sprites now respond to camera motion blur
- Keyed fur parameters now work, previously mayaman would attempt to bake a keyed parameter into a map

#### MayaMan 1.2.12t - 03/Dec/2004

- the vbstart/vbend mbstart/mbend parameters for procedural now have the correct values
- to resolve the texture filtering dilemma between soft but artifact free sampling and the crisp but possibly speckly sampling there is a new switch to select 4 point sampling or 1 point sampling.

#### MayaMan 1.2.12s - 02/Dec/2004

- The batch files for renders (not previews) now delete the result file just before the beauty render starts and then skips the 'Render Complete' message if the result file doesn't exist, this should help the farm catch bad renders.
- Deformed particle systems that instance geometry now correctly instance at the deformed location.
- The filename to use for the depth mask hider will now be automatically generated if the user doesn't supply a name... mayaman ensures that the directory to store those masks in has been created.

#### MayaMan 1.2.12r - 01/Dec/2004

- the 'compressed rib' button has been moved from it's obscure location, now it's right next to the skinny-rib option
- mayaman batch now has a -compress option

#### MayaMan 1.2.12n - 23/Nov/2004

- When 'dice with main camera' was turned on and the resulting screen window for the main camera was not square (ie: all the time) the area covered by the shadow map would be incorrect... usually the shadow map would be missing information from the top/bottom or left/right.

#### MayaMan 1.2.12m - 19/Nov/2004

- inline archive mode with motion blur would sometimes result in what appeared to be missing archives, actually the archive names were being synthesized incorrectly due to a numerical precision problem
- texture file access should produce less of the 'out of range' warnings

#### MayaMan 1.2.12k - 11/Nov/2004

- builds H/I/J had a problem with the MayaManPaths panel that has been traced back to a faulty compile, the code wasn't changed, just needed a freshen... stoopid windows
- layered shader now produces extra-output-channels that are the proper combination of the corresponding extra-output values from the shaders being blended together
- usebackground shader works better, especially when there is no image plane
- non-array scalar triple primvars can now be forced to be declared in the rib as color or normal just like arrays

#### MayaMan 1.2.12j - 9/Nov/2004

- Fixed a stupid bug that caused transform nodes with no rotate/scale component to be stripped away... the translation part was being discarded.
- Shadow Location Cheating now has a new way of combining shadow maps, see mayaman documetation for more detail. Custom light shaders that use light_utils.h should be recompiled.

#### MayaMan 1.2.12i - 8/Nov/2004

- vertex blurred subd were being emitted in long form into the ribs instead of using the inline archives like a polymesh does which results in bloated beauty ribs
- place3d nodes with 0 scale on an axis are now handled in a manner similar to maya, the non-invertability of the matrix is corrected by filling the entire row with epsilon values

#### MayaMan 1.2.12h - 4/Nov/2004

- excess attribute block nesting and identifiers have been removed
- there is a new 'skinny rib' mode (defaults to on) that elides comments from the rib as well as identity transforms
- place3d was not observing the inheritsTransform flag which causes texture swimming on archives that include materials, this is the only change that may have any impact on existing scenes.... please test ASAP and let me know if there are any regressions or changes of behaviour related to this new place3d behaviour
- particle systems that instance hidden geometry produced corrupted ribs due to incorrect nesting of inline archives
- all procedurals now have an associated named coordinate system and this coordinate system name can be passed to the procedural with the $coordsys variable

#### MayaMan 1.2.12g - 3/Nov/2004

- openexr output to rgbaz now automatically selects float quantization for the z channel.
- subsurface files that vary over time are now computed after the per-frame shadow maps
- prman12 style baked ambient occlusion now uses the bent normal for environment lookup

#### MayaMan 1.2.12f - 2/Nov/2004

- the problem with viewing the inside of double sided geometry geometry introduced in 1.2.12e has been fixed, the real fix for the problem in question was in the bump code, look for new bugs over there :)
- Sub Surface baking for multiple objects with the same material now works
- Sub Surface point cloud creation now happens single threaded as is required regardless of the number of threads actually requested, the beauty pass will still use the requested number of threads
- $(RIBBASE) and other symbolic values can now be used in the group name for Sub Surface computations, the group name is used to synthesize cache file names so being able to uniquify these names based on RIBBASE is useful if more than one scene is to share a single rib directory

#### MayaMan 1.2.12 - 31/May/2004

- User variables for bakeair can now be arrays and quantization can be specified, see documentation for details. (Bug #2476)
- there are new modes for the texture cache that can greatly reduce disk usage and time spent doing texture conversion for large productions, see 'output directories' section of the manual for more detail (Bug #2477)
- Preview and Render display drivers can now be specified separately, this should greatly reduce a common error... trying to render on a farm with a display driver than only writes to the framebuffer. (Bug #2478)
- Shaders can discover the name of the view being rendered (with mayaman's uniquifying string appended) by querying the 'viewname' user attribute. Procedurals can discover the name of the view being rendered by asking for the #viewname in the arguments. (Bug #2479)
- The motionfactor setting is now enabled by default with a value of 2. (Bug #2480)
- SLCodeNodes with primvars that are short names of regular vars (ie: a primvar called 'foo' and a non-prim-var called 'foobar') are now handled properly. Previously the expansion of the $foobar variable would be wrong and it would be handled as if it were a primvar too. (Bug #2481)
- The SLCodeNode and MayaManProcedural nodes now allow creation of checkbox GUI elements by selection of the 'bool' type at parameter creation time. (Bug #2482)
- Rib fragments for reference files can now be automatically stored in a global cache. This has the potential to reduce disk space and rib-gen time on large projects. See the 'Output Directories' panel of the global options dialog and the documentation for more detail. (Bug #2483)
- The picking behaviour for MayaManProcedural nodes has been improved. It also has an inputMesh attribute for proxy geometry. (Bug #2484)
- A bug has been fixed that caused SLCodeNodes that reference .h files from more than one SLIncludePath to create empty .h files with the names of the files from other directories this would in turn cause shader compilation to fail. (Bug #2485)
- There is a new motion blur sub-mode (linear) that may speed up rib gen and reduce disk space usage. (Bug #2486)
- The type used in the rib (point/normal/vector/color) to export per-particle attributes can now be controlled. See particles page in documentation for details. (Bug #2487)
- The per-vertex user attribute export for polys and subd can now handle painted float3 data. (Bug #2488)
- The 'ignore when rendering' flag is now observed for any shading network connection. (Bug #2489)
- Batch mode's server sub-mode's render command will now accept multiple frames (Bug #2490)
- The 'focus region scale' attribute of the camera is now applied when computing depth of field settings. (Bug #2491)
- Shadow maps and shadow ribs are now placed in a per-light subdirectory. This avoids potential problems with having more than 64k files in one directory. (Bug #2492)
- The camera depth mask ribs now contain correct ScreenWindow settings... this allows them to properly line up with the beauty pass image. (Bug #2493)

#### MayaMan 1.2.11 - 18/Mar/2004

- envCube now handles it's placementMatrix input so that non-uniform scaling can be applied to the map... also fixed is the fundamental mapping... previously the reflection would be badly distorted. Note that mayaman always behaves as if the infiniteSize flag is on. (Bug #2465)
- Sphere type particles now get the correct radius... previously the radius was only half the size it should be. Also improved is the observation of blur direction for particles. (Bug #2466)
- The light attributes panel now contains links to two sets that can override the shadow casting controls for surfaces on a per-light basis. One set will force a surface to cast shadows for a light regardless of it being a shadow caster, the other set will ensure that a surface does not cast shadows regardless of it's shadow casting or light-linking state. (Bug #2467)
- Particles that are renders as Spheres can now have rotation values specified for each sphere and the rotation can be motion blurred. See mayaman's particle documentation for detail on the attributes. (Bug #2468)
- The start/end hardware cycling settings are now applied when doing texture file lookups. (Bug #2469)
- Per-particle visibility on instanced geometry is now supported. (Bug #2470)
- The user nominated per-particle attributes are now exported for instanced geometry... though as user-attributes in the rib rather than prim-vars so that the value can be accessed from any model in the instance. (Bug #2471)
- There is a new rib-style which uses inline archives which generally will result in many fewer files being created and a smaller disk footprint. (Bug #2472)
- Shadow files and reflection files that are going to be deleted at the end of the render are now generated on the local disk (in the %TEMP% or $TMP dir as the operating system dictates). Note that interrupted renders may leave files behind so machines in a farmed environment should be periodically checked for and purged of residue. (Bug #2473)
- The advanced options panel now has attributes that can be used to specify the names of shell scripts that get exectuted before/after the actual render process. (Bug #2474)
- Animated subd crease sharpness is now correctly handled, previously the sharpness at the first frame of the sequence would be used. (Bug #2475)

#### MayaMan 1.2.9 - 10/Nov/2003

- The Ramp Shader is now supported... with limitations on interpolation types. (Bug #2348)
- Sequence textures on sprites that have their frame number selected through spriteNumPP are now supported. (Bug #2363)
- Batch mode now can create archives. See batch mode documentation for a list of options for archive creation. (Bug #2440)
- The 'Advanced Options' panel now contains a switch to enable prman's -recover flag. When enabled the rib-gen pass also deletes the target files so that recover mode doesn't get confused. (Bug #2441)
- The Advanced Options panel now contains a user defined rib section that gets inserted just before the WorldBegin... this is useful for defining clipping planes. (Bug #2442)
- The 'alphaOffset' attribute of a projection node is now projected like it should be. (Bug #2443)
- Tri-planar projection now works in in-trivial cases. (Bug #2444)
- SamplerInfo's matrixEyeToWorld output now has the correct value (Bug #2445)
- MayaMan now puts a string attribute 'MayaManTexture' on fileNodes and imagePlanes. If you put the name of a renderman texture file in the attribute it will be used (without any conversion attempt) by the shader for texture lookup. The user is entirely responsible for the creation of this texture and making additions to the texture search path is a good idea.

  Good uses include, floating point displacement images, high rez images (low rez proxy for maya to keep it fast). (Bug #2446)

- Fur visibility (via the visibility of the underlying object) can now be animated. (Bug #2447)
- Fur maps are now baked at the resolution specified on the fur description. (Bug #2448)
- The Light Attributes node now has 3 blocks of user ribs for use during depth map generation just like the main top-level rib does.... options, pre-world and world. (Bug #2449)
- Shader connections to unsupported nodes with animated nodes is now handled more gracefully. Previously the attribute would appear to 'freeze' at it's value on the first frame, now it updates with time properly. (Bug #2450)
- The 'Render Shadow Map' mechanism now supports creation of sequences of shadow maps. (Bug #2451)
- The outTransparency component of file nodes now works again. (Bug #2452)
- Light categories can now be specified via the LightAttributes panel (misc section). More than one category can be specified by using a comma seperated list. (Bug #2453)
- Shadow File Deletion can now be controlled on a per-light basis with a control in the DepthMapGeneral section of the light attributes node. (Bug #2454)

#### MayaMan 1.2.8 - 19/Sep/2003

- There is now an alternate shader code gen mechanism that will put the current parameter values into the shader as default values. While this mode causes more shader recompilation it gives shaders that are easier to use outside MayaMan. See the 'Shader Parameters Default To Current Value' switch in the basic options panel. (Bug #2438)
- Matrix parameters of custom shaders can now be set. Use the connection editor to hook a place3d node up to the shader parameter. (Bug #2439)

#### MayaMan 1.2.7 - 15/Sep/2003

- Instanced geometry is now handled with Inline Archives (on renderers that support it). This makes the ribs much faster to generate and much smaller. (Bug #2427)
- Cross platform RIB creation for scenes that use fur now works. (Bug #2434)
- The string used to specify the renderer can now be overriden. Normally mayaman calls 'prman' or 'air' to process the ribs. This new mechanism allows you to insert the name of an arbitrary program, ostensibly to process the rib somehow and pass it through to the real renderer. (Bug #2435)
- It's now possible to create sub-passes. See the documentation for details. (Bug #2436)
- The refraction data is now make available on the extra output channel __refract. (Bug #2437)

#### MayaMan 1.2.6 - 1/Sep/2003

- There is now a button in the Advanced Options panel which will configure the quantization for floating point output. (Bug #2368)
- For clarities sake the argument values for RunProgram procedurals has been split into two fields. One for the command line arguments and one for the argument string that will get piped into the program on stdin. All three fields undergo expansion (ie: #f, $(PROJECTDIR), etc.). Argument strings that contain .so or .dll will no longer cause mayaman to inadvertently use dynamic-load. (Bug #2422)
- The Depth Mask hider from prman11.5 can now be used. Objects can be tagged as depth mask creators and mayaman will do a pre-pass with those objects to create a mask. The mask will then be applied to the main pass. (Bug #2423)
- The Camera's PreScale/FilmTranslate/PostScale values are now observed. (Bug #2424)
- The subdivision surface tags 'interpolateboundary' and 'smoothtriangles' now have easy to access controls. The subdiv controls in the MayaManModelAttributes panel are now in a section of their own. (Bug #2425)
- Batch mode now supports arguments to render only a specific layer or object. These flags can be specified more than once, ie: -layer foo -layer bar will render both the foo and bar layer. The -object flag can be used with wild cards, ie: -object nurbsSphere*. (Bug #2426)
- The Environment Texture specified in the Global Illumination panel can now have it's orientation controlled. Clicking the checkerboard icon will cause a place3d to be created which can be rotated as desired. (Bug #2428)
- Totex (mayaman's texture conversion utility) was causing floating point images to get truncated to 8 bits when producing textures for prman. Now floating point images are passed through as expected. (Bug #2429)
- The BakeAir section of the material attributes node now contains a place to specify arbitrary channels to bake. Just a simple list of type/name pairs with no manual control over quantization/objectspace... these are defaulted to 'reasonable' settings :) see the BakeAir section of this manual for more details. (Bug #2430)
- The shader code produced for the 'conditional' node now works correctly. (Bug #2431)
- The 'ignore when rendering' state of the Global Material Override is now observed which makes it easy to toggle on/off a special pass. The 'ignore when rendering' state of the connections to shadingGroups are now observed. (Bug #2432)
- An attribute is now inserted into the ribs that identify the type of pass. The can be used by shaders to modify their behaviour. See the 'Additional MayaMan Attributes' section of the manual for details. (Bug #2433)

#### MayaMan 1.2.5 - 21/Jul/2003

- A reworking of the shader code gen in 1.2.2/1.2.3 caused SLCodeNodes to break. (Bug #2418)
- Caustics had accidentally been disabled for prman (Bug #2419)
- PRman can now find and run the MayaManFur program on linux. (Bug #2420)
- Basic support for fur clumping has been added... it's slow when the clumpingFrequency is high. Also may suffer clipping artifacts under some circumstances. (Bug #2421)

#### MayaMan 1.2.4 - 18/Jul/2003

- Fixes to problems introduced in version 1.2.3

#### MayaMan 1.2.3 - 17/Jul/2003

- The #s flag for procedurals and runprograms will now take on the value 2 during cube-face environment reflection calculations and 3 during flat mirror computations. (Bug #2413)
- The maxspeculardepth attribute is now set directly from the maxbounce setting. Previously we added one to it which didn't allow it to go below two. (Bug #2414)
- MayaManFur's noise functions now approximate the MayaFur noise much more closely. The frequency of polar/roll/length noise is now a closer match too. (Bug #2415)
- shaders generated for setrange now work properly when the oldMin and oldMax value are the same... which is common when one or more channels is just supposed to pass through (Bug #2416)
- Fur on polygonal surfaces is now much smoother as we now compute a smoother tangent field. (Bug #2417)

#### MayaMan 1.2.2 - 30/Jun/2003

- Renderer discription files for BakeAir/Vortex have been added. BakeAir support includes the ability to bake data and then have it automatically used by the magic shaders. (Bug #2406)
- MayaMan now uses config files to determine what renderers should be shown in the menus and what the capabilities of the various renderers are. See the 'renderers' folder in the mayaman install for more details. Note, the default list of available renderers only contains the most recent versions of the renderers that we use frequently at Animal. Loading old scenes that have renderer selections that are not on this list may not behave as expected until after a legitimate renderer has been selected.... some users may want to tune the if they are using old software. (Bug #2407)
- The ribs now always contain an RiShutter setting so that the 'time' shader variable is valid. (Bug #2410)
- When gathering ambient occlusion or irradiance samples you can now control the treatment of miss and hit rays seperately. In the case of ambient occlusion this lets you define a simple light and shadow color and the defaults are setup for a basic white-sky/black-shadow scenario. For irradiance these defaults are bad because the ray-hit color is used to scale the indirect light coming from other objects... in the irradiance case you'll want to start with white for the ray-hit color and some dark color as the ray-miss color to model the ambience leaking in from the environment. Note, if you specify an environment map too then the ray-miss color is used to scale the map. (Bug #2411)
- When using an SLCodeNode to drive displacement (ie: it moves P and updates N) it is counterproductive to have the maya displacement node also do the same... when mayaman first translates a scene it will add an extra attribute to each displacement node that will allow you to bypass the displacement computation in the magic shader so that the SLCodeNode has full control. (Bug #2412)

#### MayaMan 1.2.1 - 24/Jul/2003

- No release notes.

#### MayaMan 1.2.0 - 3/Jun/2003

- MayaMan now supports Maya v5.0. MayaMan no longer supports Maya v4.0 or Maya v4.5.
- The values that the subd-edge tool puts on the mesh now make it all the way into the rib... previously the values would correctly be retained but would not go into the rib making edge sharpness control impossible. (Bug #2346)

#### MayaMan 1.1.9 - 21/May/2003

- When extra output channels are used mayaman no longer forces 'min 1x1' samples and filtering. (Bug #2401)

#### MayaMan 1.1.8 - 14/Apr/2003

- MayaMan will no longer crash when it sees certain combinations of joints and effectors. (Bug #2400)

#### MayaMan 1.1.7 - 2/Apr/2003

- Various cross platform script issues have been resolved. (Bug #2399)

#### MayaMan 1.1.6 - 27/Mar/2003

- In the Misc section of the 'Advanced Options' panel a shading group can be attached to the 'Global Material Override'. This shading group will be applied to all objects. Useful to substitute a cheap shader (ie: defaultsurface) when doing motion checks, etc. Caveat, pre-converted rib archives will still have their original materials. (Bug #2395)
- The global illumination options panel now contains a toggle to enable automatic ambient occlusion. Note, in this implementation it is mutually exclusive to regular radiance. Also, the occlusion is applied in the magic surface shaders rather than in a special light so custom surface shaders will have to be modified before they will exhibit ambient occlusion behaviour, for futher details on this.. look in maya_magic_shaders.h for the call to occlusion(). (Bug #2396)
- PRman11's deep shadows will now do motion blur. To enable it do the following, turn on motion blur (vertex blur is not yet supported). In the light's attributes node: turn on deep shadows and set Pixel Samples > 1, turn on the 'Motion Blur Shadows' toggle in the light's Ray Traced Shadow Attributes section. Note, dmap-auto-focus doesn't take motion into account so it should be disabled otherwise clipping artifacts may appear. (Bug #2397)
- Various glitches related to Air2.3's global illumination and ambient occlusion modes have been fixed. (Bug #2398)

#### MayaMan 1.1.5 - 17/Mar/2003

- PRMan11's trace/samplemotion and Air2.3's trace/motionblur attributes are now connected to the 'Motion Blur Shadows and Reflections' switch in the global motion blur options panel and can be overriden by material/model with the appropriate mayaman model/material attribute nodes. (Bug #2373)
- The PixelFilter controls for deepshadows that were introduced in 1.1.3 have been removed as they only have one useful setting. (Bug #2379)
- MayaMan now adds an extra attribute to FurDescription objects to control PRman11's dice/hair attribute. (Bug #2392)
- MayaManFur will now correctly computes the length of hair when the linear units setting is not centimeters. (Bug #2393)
- The MayaManGlobal->ScanLine Options panel now has controls for PRMan11's micro polygon cache. PRMan11's default behaviour is to use this cache but it seems to degrade performance in most cases so MayaMan defaults it to off. (Bug #2394)

#### MayaMan 1.1.4 - 7/Mar/2003

- Light Attributes have been added that allow control of PixelSamples and PixelFilter during deepshadow creation. (Bug #2379)

#### MayaMan 1.1.3 - 3/Mar/2003

- The shadow version of archives were not being created correctly. (Bug #2388)
- The vector product emulator now knows not to apply the normalization flag when the operation is 'dot-product' or 'point-matrix-product'. (Bug #2365)
- The primary visiblity and reflection visiblity flags were being muddled up when using a ray-tracing renderer to generate reflection maps. This problem would only manifest when objects were meant to be visible in reflections but not to the camera. (Bug #2366)
- MayaMan now correctly handles spotlight projections when the UV repeats are not equal to 1.0 and the penumbra has a value greater than 0. (Bug #2369)
- MayaMan no longer crashes when motion blur is enabled. (Bug #2375)
- EnvBall now observes the rotation of it's place3d input. (Bug #2380)
- MayaMan is now aware that Air can render RiBlobby objects. General cleanup of Air 2.3 issues. (Bug #2386)
- MayaMan will now select the correct UVset when a UVChoosers have more than one input surface. (Bug #2389)

#### MayaMan 1.1.2 - 18/Nov/2002

- Displacement on curves was broken in 1.1.1. Fixed. (Bug #2351)
- When using a shading network connected to a fur description via the MM-atts node it would be good if the shader had access to the UV information on the surface. This can now be accomplished with the 'Use Surface UV' checkbox that MayaMan will add to the fur description's 'Extra Attributes' section. (Bug #2353)
- A fur system will now be rendered when rendered selected is on if: the fur description is selected the fur feedback shape is selected the transform node connected to the fur feedback shape is selected (Bug #2354)
- It is now possible to have mayaman render the fur but not the surface it's attached to... previously the visiblity was coupled. To make the suface invisible turn of it's primary visibility. Then to make the fur visible turn on the 'ignore surface visibility' attribute that mayaman will add to the fur description's extra attributes section. (Bug #2355)
- Curves of degree 1 will now be converted to linear RiCurves without extra segments being added to the ends. (Bug #2357)
- Mesh objects with deleted UVsets and uvChoosers now work properly. (Bug #2359)

#### MayaMan 1.1.1 - 29/Oct/2002

- Place3dTexture emulation is now more robust, specifically, when a place3d node is in 'inherit transform' mode and the object is being sourced from an archive the textures would not stick properly. Fixed. (Bug #2076)
- When an SLCodeNode includes an external source file (either through the SLInclude or in the body of the code) MayaMan will now insert a comment into the SL file which indicates the time stamp of the included file, it will also insert time stamps for files that are included by the includes. The only caveat to this is that these files will only be found on paths listed in the SLIncludePath. The use of a comment with the date stamp rather than comparing date stamps between source and compiled shaders is one of robustness and correctness, date comparing would rely on the times being synchronized on the servers that contain both the source files and the compiled shaders and would not allow detection files that are different because they are older (which may occur when swapping two versions of a file by renaming). (Bug #2323)
- UNC paths with backslashes caused shaders to not be found properly. (Bug #2324)
- Degenerate polygon culling was messing up the vertex tables. Fixed. (Bug #2325)
- To a limited extent an Instancer node that is not associated with a particle shape can now be rendered. This is to support user nodes that feed instantiation information into an instancer without any help from a particle shape. (Bug #2326)
- The 'local' flag of the projection node is now supported. (Bug #2327)
- The use of both cube-face enviroment maps and an environment map connected to the reflected color input of a surface is now supported, the environment map is applied whenever the cube-face map's alpha is 0. A bug that caused cube-face maps to be computed twice has been fixed. A bug that caused renderers with arbitrary clipping plane support to fail to produce correct reflection maps has been fixed. (Bug #2329)
- During previews the interpretation of a Display Layer's displayType override was being handled incorrectly. Fixed. (Bug #2330)
- Tile renderings would not have shadow or reflection maps computed under most circumstances. Fixed. (Bug #2331)
- Texture sequences with names like 'map.tif.1' instead of 'map.tif.#' now work as expected when Use Frame Extension is on. (Bug #2333)
- The place3d node which controls an envsphere now correctly has it's translation component ignored. (Bug #2334)
- The Extra Output Channels dialog now has an option to control the default naming style of the output files. Previously the output name (when not explicitly controlled by the user) would be the simple concatenation of the the channel name and the regular output file name. When the new option is enabled the channel name is used as a subdirectory name instead, ie: .../N/foo.1.tif instead of .../fooN.1.tif. (Bug #2335)
- The mechanism for specifying an alternate shading network for use in indirect shading was broken. Fixed. (Bug #2336)
- The MayaMan Batch tool now supports flag for setting arbitrary attributes on the MayaManNugget (i.e. MayaMan's global settings). (Bug #2339)
- Fur equalizer maps now work much better. The previous code had a bias toward low density areas that resulted in it getting more hairs than it should. (Bug #2340)
- When fur is on a surface with 'flipped' fur normals the polar value was rotating the hairs the wrong way. Fixed. (Bug #2343)
- Baked fur maps are now easier to reuse. Rather than relying on the global texture reuse flag, MayaMan will now create an Extra Attribute on each Fur Description that will directly control reuse for that particular FD. (Bug #2344)

#### MayaMan 1.1.0 - 1/Oct/2002

- From this version on, MayaMan no longer supports Maya3.
- There is now a text field in 'Advanced Options'->'Misc' to send arbitrary command line arguments to the renderer. It should be noted that maya doesn't like it when the string starts with a '-' so be sure to put a space in front of it. (Bug #2182)
- The 'User Rib Statements' for models are now inserted into the rib slightly later. Previously they were in front of many things that mayaman would insert which would make those things impossible to override. (Bug #2297)
- There are now two entries for seed files, when the first one is not found the second one is used. See the global illumination documentation for why this is useful. (Bug #2298)
- Users of PRman10/11 can now choose the mitchel/blackman-harris/separable-catmull-rom pixel filters. (Bug #2299)
- Polygon mesh objects with multiple sparse uvsets would occasionally not get enough samples placed into the rib. Fixed. (Bug #2302)
- UNC search paths for shaders are now supported... provided that the command line argument parsing program that comes with the renderer supports it. It looks like the only ones that it won't work for are BMRT and Entropy. It works fine for Air and PRMan11. (Bug #2303)
- Envball now produces the correct result when it's normalCamera input is connected to a bump map. (Bug #2306)
- There is now a button in the Global Texture Options panel to allow skipping of texture conversion on tiff files.... some renderers allow direct use of tiff files and direct use of those files may save some disk space and time though in general texture files should be preferred. (Bug #2307)
- The licensing setup has been reviewed, and various licensing issues have been addressed. (Bug #2308)
- Fur equalizer maps for nurbs surfaces were not being applied properly. (Bug #2309)
- The 'Init' button on the Custom Shader dialogs would sometimes cause Maya to crash. Fixed. (Bug #2310)
- The batch files that mayaman creates will now check the exit status of shader compiles and the render invokations and will terminate if an error occurs. (Bug #2311)
- When 'Display Progress' (found in the Scanline Options panel) is off MayaMan will now pass the -silent option to Air. Older versions of Air don't like this so be sure the leave Display Progress on (the default state) until after you've moved to a version that supports this flag otherwise the render will fail. The batch form of MayaMan's now has a command line switch to enable/disable progress information from the renderer. (Bug #2312)
- Under certain circumstances trim curves would be handled incorrected. Fixed. (Bug #2313)
- Fur rendering in mayaman can be disabled in the same way as maya (through the enable fur flag in maya's fur globals). (Bug #2314)
- The basic Cs value of surfaces can now be controlled. Previously the maya material's color value would be used but when it is connected to a network maya always reports that the color is black which causes problems with GI implementations that want to use Cs as an approximation of the average surface color. Control over Cs is acheived through an extra attribute on the top level maya material... mayaman will automatically create this attribute on any material with a connected color. (Bug #2315)
- Air was unable to find shaders when ribdir is c:\temp. Fixed. (Bug #2316)
- The radiance and occlusion save files for air and entropy can now be written out periodically throughout a sequence render. See global illumination documentation for details. (Bug #2317)
- __Pref's data type is now declared inline which avoids accidental redeclaration by archives. (Bug #2319)
- The motion time values on particles is now correct, previously they were out of synch with the shutter open/close times which could cause geometry to disappear. (Bug #2320)
- The magic shaders are now more efficient when only opacity information is required, ie: shadow rays. (Bug #2321)
- Air's new ",a" extension on extra output channels can now be used. Just put ,a at the end of the output channel name (ie: __diffuse,a) and MayaMan will take care of the rest. (Bug #2322)

#### MayaMan 1.0.27 - 4/Sep/2002

- Modifying model attributes data in the MayaMan Global Pre-Frame Script is now supported properly, previously it did not work on transform nodes. (Bug #2242)
- Extra Output channels can now be individually enabled and disabled. The output file name for extra output channels can now be fully controlled. (Bug #2258)
- The magic shaders now create two additional potential extra output channels, __ambient and __incandescence. (Bug #2280)
- The Level Of Detail transition zones have been improved, previously the highest detail model would be given so much weight that the second hightest detail model would rarely get seen. (Bug #2281)
- Fixed shader code gen bug that would cause animated transparency to work properly during previews but not during sequence renders. (Bug #2282)
- The Shutter and Motion time values now reflect the frame numbers which allows shaders that depend on the 'time' variable to work. (Bug #2283)
- In an effort to reduce rib bloat, particles now only get rgbPP, opacityPP, age, ageNormalized and particleId and any channels required by particleSamplerInfo nodes are passed into the rib unless explicitly requested in a mayaman attributes node connected to the particle shape. If you have particleSampler nodes on materials attached to geometry that is instanced by the particle system you may need to add a mayaman attributes node to the particle shape and explicitly request that the required channels be exported. (Bug #2284)
- Light linking for fur (through the use of the Addition Light Set field in a MayaManAttributes node on the Fur Description) now works. Note that mayaman emulates mayaman's behaviour of illuminating fur with all lights that 'illuminate by default' so you'll probably need to turn that flag off for any lights that are to participate in any meaningful linking scenario. (Bug #2285)
- It is now possible to use SLCodeNode objects to create shader output variables which are useful in conjunction with extra output channels. Also, the GUI for SLCodeNode now includes a panel of 'qualifiers' which indicates which flags were set when the parameter was created, useful for when you later decide that an parameter should have been a primvar, needs to be varying, etc. The lists are just a space seperated list of names, clumsy editing can be harmful! Addition of a name to the outputs list won't cause declaration of the variable in the code as it would at creation time, likewise removal of a name from the list won't cause the declaration to be removed, you must take care of that yourself. (Bug #2286)
- It is now is possible to output extra channels to an UNC. (Bug #2287)
- Transformation nodes that don't have the "Inherits Transformation" attribute node turned on were being mishandled. Fixed. (Bug #2288)
- MayaMan can now export the surface normals to fur which is useful in custom shaders that implement an enhanced lighting model. This data can be received in the custom shader through a 'varying normal surfaceN = normal(0,1,0);' shader parameter. (Bug #2289)
- Support for age/ageNormalized was poor in particleSamplerInfo. Previously age would get the ageNormalized values and attempts to use ageNormalized would fail. (Bug #2290)
- Rather than just let blobs have no __Pref data (which makes 3d textures crawl around like crazy) some basic __Pref data has been created. The 'birthPosition' per-particle attribute is used if present... users may need to add this standard maya per-particle attribute and give it a creation expression. If the birthPosition is not present then pref data is created from particleId. (Bug #2291)
- Renders/Previews with 'Only Render Selected Objects' enabled is now more efficient. (Bug #2292)
- A subtlety regarding display driver selection was causing flat-mirror images to fail in Air. Fixed. (Bug #2293)
- Mapped fur params on irix no longer come out with wrong colors. (Bug #2294)
- The model attributes node now contains a pre-frame mel script window which is useful to avoid crowding in the global pre-frame mel script window. (Bug #2295)
- The wrap flag of projection nodes is now supported. (Bug #2296)

#### MayaMan 1.0.26 - 27/Aug/2002

- Shadow density is now scaled by the light's distance based attenuation factor just like Maya's renderer. (Bug #2102)
- The magic shaders now produce an output variable called '__reflect' which contains only the reflection information. (Bug #2169)
- Build 25 caused mapped fur channels to get screwed up. Fixed. (Bug #2270)
- Having a scale factor on a light (ie: to make the icon large) would cause auto-dmap-focus computation to fail. Fixed. (Bug #2271)
- Fur on polygonal surfaces with no reference shape works again (broken in build 25). (Bug #2272)
- Users of Air 2.0.13 reported that shadow maps were broken... it turned out to be an air problem which has since been corrected. (Bug #2273)
- Most of the check boxes in the clear cache panel have been defaulted to on. (Bug #2275)
- File nodes now correctly report that they are transparent (alpha=0) outside the valid sample range. Previously they would be opaque which would cause problems when projected into layered shaders. (Bug #2276)
- Major fur system overhaul, much more fur can now be produced because the data files have been reduced in size and reorganized such that they can be accessed on demand rather than loaded entirely into memory and sorted at run time. Other fur changes include: polar/inclination/roll work together better attractor influence is now applied a 'plugfactor' has been introduced, plugging is placement of many hairs from a single root, a factor of 5 means 5 hairs will be created from each hair and their initial directions will be randomly spread by an amount according to 'plugSpread'. this is a good way to reduce data file size but still get a large number of hairs in the final image (Bug #2277)
- The magic shaders have been modified so that samplerInfo's normalCamera is actually in camera space as expected, this allows shading networks to manipulate the normal and have it behave in the same way as maya. (Bug #2278)
- The Extra Output Channels dialog now shows up properly on linux. (Bug #2279)

#### MayaMan 1.0.25 - 19/Aug/2002

- Fur now observes the 'illuminates by default' flag of lights. (Bug #2240)
- Projected Textures are now working when used with Layered Shaders. (Bug #2244)
- The area light shaders were not being compiled correctly for Air which resulted in them not casting shadows properly. (Bug #2252)
- Fur was not being distributed evenly over some types of polygonal surfaces... in particular when there was a large number of tiny polygons. Fixed. When the uv-range of a polygonal surface was not 0<->1 then fur generation would fail, fixed. (Bug #2253)
- Fur now works when the rib directory has a space in it's name. (Bug #2255)
- The relative surfaces areas of the objects associated with a fur description are now taken into account when distributing hairs. (Bug #2256)
- The names of the extra output channels would all be the same when doing tiled renders, they now have the tile name rolled in. (Bug #2257)
- Maya's Blobby Threshold value is now put into the rib as "__threshold" so that PRman10's blobby threshold mechanism can be used. (Bug #2259)
- The 'Custom Shadow Map' field in the MayaManLightAttributes dialog, when enabled, can now be used as the target of shadow map output. If shadow deletion is enabled then this file will only be deleted if it was created by mayaman.... externally created shadow maps will still be safe. If the shadow map is to be different for each frame then the supplied value should have a # in it, something like this: c:/temp/my_shadow.#.shd (Bug #2261)
- Shaders will now compile when using prman11. (Bug #2262)
- Having a slash at the end of the rib directory setting no longer causes mayaman to produce ribs that can find their shaders or geometry files. (Bug #2263)
- When no renderable cameras are selected mayaman will now revert to the active viewport and issue a warning. In batch mode the persp view is still the fallback. Previously mayaman would silently use the persp view whether it was selected or not. (Bug #2264)
- For Air, it is now possible to turn off the global raytracing switches by setting the Max Ray Depth value in the mayaman global's Raytracing Options panel to 0. This can save significant time/memory when doing purely scanline rendering. (Bug #2265)
- Basic support for prman 11 has been added, to take advantage of prman 11 features though you'll have to download and install a seperate set of compatability shaders. Currently only ray traced shadows are supported, more to come soon. (Bug #2266)

#### MayaMan 1.0.24 - 14/Aug/2002

- Basic support for light intensity curves has been added. Pre/Post infinity settings of 'constant', 'linear' and 'cycle' are supported. When In/Out tangent of type 'linear' is set for both sides of a segment then linear interpolation occurs otherwise a smoothstep is performed. True spline blending is not yet supported (tricky because time samples may not be uniformly spaced). (Bug #1955)
- Changing scenes, when both outgoing and incoming scenes have image planes, would cause mayaman to crash. Fixed. (Bug #2241)
- Multiple UV sets are now also supported on MayaMan Subdivision Surfaces (Bug #2246)
- Extra Output Channels are now enabled for Air. (Bug #2250)

#### MayaMan 1.0.23 - 12/Aug/2002

- More work has been done to support multiple UV Sets on polygonal surfaces. MayaMan still uses colors to output the additional uv sets, and now put a sentinel value ("0") in the third color parameter if the uv set is not defined for the current vertex. (Bug #2246)
- MayaMan no longer tries to uniquify the names of "primvars". (Bug #2249)

#### MayaMan 1.0.22 - 3/Aug/2002

- Initial work on supporting multiple uv sets has been done. More support will be added shortly. Currently the first uv set will be output as s/t, and any following uv sets will be output as color triples with the name of the uv set. (Bug #2246)

#### MayaMan 1.0.21 - 19/Jul/2002

- Sometimes user rib statements would mysteriously get moved around from object to object. Fixed. (Bug #2237)
- Render-selected-only and having a particle system or instancer selected will no longer cause a crash. (Bug #2239)
- Several AE layout problems for the SLCodeNode have been corrected. (Bug #2221)
- The SLCode node's "include" file can now be a semi-colon seperated list of files to include. There is also an "includePath" field that is a semi-colon seperated list of directories to search for the include files in. (Bug #2222)
- Models with only one polygon will no longer confuse prman10. (Bug #2223)
- MayaMan will no longer introduce spaces into the names of files it creates in the tex_cache. (Bug #2224)
- There is a now a way to have mayaman estimate better displacement bounds which can be a big performance win in terms of both time and memory. 2d displacements have very accurate bounds computed, some manual tuning for 3d displacements may still be needed. (Bug #2225)
- PRman10 wasn't happy with a type clash in some shaders and would refuse to compile them... fixed. (Bug #2227)
- Binary ribs on linux/irix now work properly. (Bug #2228)
- The specularcolor for caustics when 'from material' is selected is now correctly fetched provided that the top level material has such a parameter (ie: it won't work if the top level is a layeredShader). MayaMan will now warn the user if the sum of specular and transmit color is > 1 which is not valid for caustic computation. When this happens you probably need to switch from 'from material' to explicit or disabled. (Bug #2230)
- Creation and use of archives from one scene in a project to another is now much easier. The ribs have been restructured such that shader and geometry file references are unique within a project and use of archives from the same project requires no modification of shader or archive search paths. The main mayaman menu now contains a option to import an archive. It will create a dummy box of the required size (provided that the archive was created with this version of mayaman) and take care of other minor bookkeeping chores related using an archive. (Bug #2231)
- When selecting a custom shader you only need to enter the short name of the shader (ie: wood) but only if the path to that shader is already on the search path. When you browse to a shader the shader search path with automatically be updated and the name shortened. (Bug #2232)
- Controls have been added to the Global Illumination dialog for Air specific indirect illumination options. There are also controls to set default values for Air's indirect illumination attributes and appropriate overrides in the model attributes node. (Bug #2233)
- When an object is instanced and the instances have fur with mapped parameters then the map baking was not happening properly. Fixed. (Bug #2234)
- Fur Direction Offset and Flip Fur Normals are now supported. (Bug #2235)
- File texture inputs to SLCodeNodes will now get converted. (Bug #2236)

#### MayaMan 1.0.20 - 8/Jul/2002

- Simple primvar support has been added. Attributes whose names start with "rman_" and are found on a shape node, transform node that is the immediate parent of a shape, or a mayaman model attributes node will be placed in the rib file as primitive data that can then be interpreted by the shader. This is sort of like switch-nodes-for-custom-shaders. Currently there is no support for array data. Non-color triples are output as points. This data is only output for nurbs and polygons as both curves and particles already have their own data output mechanisms already. (Bug #2087)
- The depth filter used for shadow map computation can now be set per-light. (Bug #2203)
- Image plane mapping got a bit worse in 1.0.18 due to some other work on general camera matching... this regression has been corrected for the cases reported. (Bug #2205)
- If the 'defaultFurGlobals.keepIntermediateFiles' attribute is off then the .wig and any per-frame textures are deleted at the end of rendering. This attribute is connected to the 'Keep Temp Files' switch in the Attribute Editor for the defaultFurGlobals. (Bug #2211)
- There is now a switch to disable/enable all the extra output channels during renders (just like there is for previews). They can also be turned on/off from a command line render. (Bug #2212)
- Particles now correctly inherit the transformation of the particle shape. (Bug #2213)
- the noise node now does better anti-aliasing, wave and wispy modes are still unsupported though... also, the look produced by the bump2d node now matches maya much better (Bug #2214)
- 3d textures used to handle the 'local' flag incorrectly, previous the sense was reversed. (Bug #2215)
- Fur now has an option to compute normals such that the normals are derived from the curvature so as to look like grass or ribbons. (Bug #2216)
- The files that the fur system creates won't have illegal characters in them. (Bug #2217)
- Shading networks with input-to-input linking (ie: the double sided example from highend) are now handled properly. (Bug #2218)
- MayaManAttributes nodes that are attached to FurDescriptions will now have their overrides placed into the rib... very handy for things like shadingrate which can have a big impact on the efficiency of fur renders. (Bug #2219)

#### MayaMan 1.0.19 - 1/Jul/2002

- Fur attractor local/global modes were reversed. (Bug #2200)
- Batch/script files no longer attempt to delete shadow maps that were avoided because they contained no shadow casting geometry. (Bug #2201)
- Subdivs that are being multi-segment motion blurred now get the correct texture coordinates. (Bug #2202)
- The Linux/Irix distribution bundle was missing a file that is required for light shaders to get created properly. (Bug #2204)
- The SLCodeNode utility node has been created. This node allows blending of SL code and maya shader networks. (Bug #2208)
- Handling of large amounts of instanced geometry is now much faster. Subdivision surfaces processing is now faster. Processing light connection information is now much faster when there are lots of lights. (Bug #2209)

#### MayaMan 1.0.18 - 18/Jun/2002

- MayaMan's camera now matches Maya's in many more cases. (Bug #2092)
- The light attributes node now has a User RIB section that gets inserted into shadow ribs just after the frame block is started. This is useful if you need to set options like bucket size. This is particularly useful when used in conjunction with the advanced 'Custom Display Driver' option for shadow runs. (Bug #2183)
- The 'Convert' button that appears with each string argument of a native renderman shader now will actually cause the conversion of the texture, currently there is no way to set the periodicity. (Bug #2185)
- Fur maps are now assumed to not vary over time though the user can change back to the old behaviour with the 'MapsVaryOverTime' attribute which mayaman will add to the fur description node. Fur maps now obey the global texture-reuse flag. (Bug #2187)
- A bug in the mayasdk which causes UV information on polygon meshes and subd surfaces to get scrambled has been coded around. (Bug #2190)
- Use of a reference object to stop hairs jumping around now works. The 'extra attributes' of a fur description will now get a raytraced reflection/shadow visibility flag. (Bug #2192)
- Voronoi based procedurals (like leather) no longer have an artifact when rendered with Air. (Bug #2193)
- Lights that are linked to nodes that are not transforms or shapes would cause a popup warning to appear that was spurious... fixed. (Bug #2194)
- Translucency now works better when using Entropy. Previously, when trying to transmit light through a box, the back side of the box would block the shadow ray. The magic shaders now cast a secondary probe ray if it looks like the inside of a surface is casting the shadow. (Bug #2196)

#### MayaMan 1.0.17 - 28/May/2002

- The environment variable MAYAMAN_RENDERER can be set to indicate the default renderer. The values are the same as shown in the dropdown list of the basic options panel, if not set correctly then a list of valid options will be output to the script editor. (Bug #2107)
- A precision change from prman3.9.x->prman10 causes problems with certain aspects of the ribs which would result in the entire image rendering black... fixed. (Bug #2173)
- The damage to SamplerInfo that was done in 1.0.16 has been fixed. (Bug #2174)
- The per-frame script is now called when the time is correct, previously it was called before mayaman moved maya's internal concept of time to the right value. (Bug #2175)
- Procedurals can now have a special token inserted into the argument field that will be expanded with a value that indicates if it is being called for a shadow run. There are also several other new things related to procedural argument handling.... doublequote (") symbols are now automatically have a backslash (\) prepended so that the rib parser doesn't get confused and there are also flags that will communicate motion blur settings. See documentation for details. (Bug #2176)
- For renderers that support user attributes MayaMan will now output a user attribute for particleId and age that shaders can use to individualize the look of instances (an extension on maya's capabilities). If you are using magic shaders then a 'particleSampler' node can be used in networks that are used anywhere on the instanced object and the values will automatically be applied, for custom renderman shaders user need to use attribute("user:particleId") or attribute("user:age") to access the values. (Bug #2177)
- Spotlight projection now happens inside the main cone and repeats in the penumbra, previously the mapping interval was across the whole penumbra. An Air problem with filterwidths in light shaders has been coded around. (Bug #2178)
- In an effort to match maya's DOF we now compute the renderman DOF parameters differently. If the scene's working units are centimeters then you won't notice a change from previous releases, if your working units are not centimeters and you are using DOF then you will need to review DOF parameters after upgrading. In particular, if you've adjusted fstop to get the right look out of mayaman then those adjustments may need to be undone. (Bug #2179)
- Batch mode now supports a '-referenceframe' switch that can be used to control the creation of constant rib/shadow maps when being run in a distributed context. Users of alfred or other queuing software should review their mayaman driver scripts and incorporate it's use. (Bug #2180)
- When mayaman discards degenerate polygons from a mesh and facevarying texture coordinates are being used the resulting number of texture values would be incorrect. The degenerate polygon culling code now correctly maintains the texture coordinate values. (Bug #2181)
- MayaMan's magic shaders now support the creation of an __indirect extra output channel that contains the output of any lights marked with the "indirect" category. You will need to modify and recompile indirect.sl to get this to work.... basically, this needs to be added to the parameter list: output string __category = "indirect"; (Bug #2184)

#### MayaMan 1.0.16 - 21/May/2002

- When a fur render is performed the FurDescription objects will have a pair of attributes added that can be used to control the decimation and scale factors used in shadow ribs. (Bug #2149)
- Material names with : in them are now converted into shader names properly. (Bug #2159)
- The 'Fix Texture Warp' flag on nurbs surfaces will now work properly when the degree of the nurbs surfaces is 1. (Bug #2160)
- The magic shader code generation now creates shaders that render more efficiently, the trade off is that shader parameter tweaking causes more shader recompiles (unless the parameter is keyed or driven by an expression). Users of the Air renderer will need to contact support@sitexgraphics.com for an updated shader compiler (mention preprocessor and mayaman). (Bug #2161)
- Preview 8 Bit now is applied only to previews as expected. (Bug #2162)
- MayaMan now has a mechanism to create normals for curves so that things like grass can be modeled. See documentation for details. (Bug #2164)
- When creating curves for hair MayaMan can now attach a 'hairId' parameter to each curve so that custom shaders can add strand-by-strand variation. See documentation for details and sample shader. (Bug #2165)
- Users can now add boolean attributes called 'doubleSided' and 'opposite' to volume primitives so that they sidedness and orientation. (Bug #2166)
- The filter size for sampling textures has been cut in half which produces a similar blur amount to maya. (Bug #2167)
- Improvements in texture coordinate interpolation have resulting in a greatly improved match between the maya and mayamanfur on polygonal objects. (Bug #2168)
- A mayaman gui license is no longer grabbed when a scene with mayaman data is loaded or is accessed from inside mayaman_batch. (Bug #2170)
- Basic field rendering is now supported, if the 'Field Options->Render' is set to anything other than 'Frames' then mayaman will render two images per frame... one for each field... the field dominance field is also observed but all other field oriented controls are ignored. Merging the result images is up to the user. (Bug #2171)

#### MayaMan 1.0.15 - 23/Apr/2002

- The 'Render Selected Objects Only' flag is now persistent, it's value is saved with the scene file. The setting also applies to command line renders, use '-all' to switch it off or '-selected' to turn it on. (Bug #2104)
- Previews now prefix all rib names with 'preview_' so that they don't interfere with existing renders.... the shader directory is not uniquified though so you can change maya shader parameters but not maya shader structure (ie: add/remove/reorganize connections). (Bug #2108)
- spriteScaleXPP, spriteScaleYPP, spriteTwistPP are now supported. (Bug #2142)
- Per particle data can now be selectively placed in the rib (ie: to control custom shaders). See particles section of mayaman manual for details. (Bug #2144)
- The CropToSelected menu item has been reworked into a general cropping mechanism. The menu item is now a simple crop enable/disable and the paremters for the crop are in the associated option box. (Bug #2147)
- MayaMan's LOD support no longer damages the lodGroup's threshold array. (Bug #2148)
- When doing sequence renders, files that already are rendered can be skipped by enabling the switch in the 'Render Sequence' option box. From the command line this can be controlled with the -skipIfRendered flag. (Bug #2150)
- MayaMan used to erroneously put two copies of each instanced object into the rib at each location which would blow out memory and render time. (Bug #2152)
- When using RenderSequence and more than one thread is requested and Linux/Irix is selected MayaMan would start more renderer instances than requested which would result in excess license/memory consumption and mass failures. (Bug #2155)
- Painted/mapped attributes of fur now work properly on linux... previously a byte ordering glitch would cause the values to be misinterpreted. (Bug #2157)

#### MayaMan 1.0.14 - 12/Apr/2002

- RiPoints (as created by a particleShape with RenderType set to Points or MultiPoints) will now have their size set by radiusPP... if radiusPP is not present then the regular screen space sizing that Maya does is performed. (Bug #2125)
- Particle systems with more than 16000 particles being rendered as RiPoints no longer causes maya/mayaman to crash. (Bug #2126)
- Whe a material has ray-traced reflections and the ray misses all scene objects the 'reflectedColor' is substituted. (Bug #2127)
- In addition to MayaMan #[0-9]f notation for frame number expansion the more familar Maya notation is now also supported. Note that the # must be preceeded by a . for it to be recognized, that is to say, foo####.rib will not work but foo.####.rib will. If only one # is used then as many columns as required will be used, if more than one # is used then the value will be zero padded. (Bug #2128)
- Different default texture filters can now be set for displacement and surface contexts... this is useful when you want radial-bspline filtering for displacement and gaussian for the other channels. (Bug #2134)
- Most 3d textures now honour the "local" flag. Previously behaviour was hard coded for either local or world space texture coordinates. (Bug #2136)
- 3D textures now support the "invert" flag (Bug #2137)
- As of prman-10 the prman executable on non-NT systems has changed. MayaMan now looks in a different location which is still consistent with prman 3.9 releases. (Bug #2138)
- Various issues related to the use of PRman 10 have been resolved, shaders now compile, shader arguments can now be discovered. (Bug #2139)
- File textures with maya's regular # notation for frame number replacement is now supported.... provided that the #s are between dots. File textures with images names that are relative to the project directory are now supported. (Bug #2140)
- Maya's Display Layer settings are applied for previews and the Render Layers settings are applied for render-single and render-sequence. The 'Passes' information on Render Layers are not observed. Layers can be rendered as RiMatte. (Bug #2141)

#### MayaMan 1.0.13 - 2/Apr/2002

- *** Bug 2094 has been marked as a duplicate of this bug. *** (Bug #2095)
- ImagePlane objects are no longer inserted into the rib when archive creation is being performed. (Bug #2105)
- All images planes for the camera being rendered are now placed into the rib. (Bug #2106)
- The ramp node now works when the place2d which feeds it has repeat values != 1. (Bug #2111)
- Particle systems renders as points now motion blur. (Bug #2112)
- The default values for switch nodes are now properly applied to surfaces that aren't mapped. (Bug #2113)
- Shaders create for textured imagePlanes (ie: with a ramp) now compile... previously there was an undefined transparency variable. (Bug #2114)
- Shape node level visibility flag is now observed. (Bug #2116)
- When a particle system is instancing geometry and the rotation, aimdir, aimpos inputs are all 'none' the particles are now correctly placed (Bug #2118)
- MayaMan's batch command is now compatible with alfred's persistent application mode. When '-server' is passed on the command line mayaman batch will wait for commands on stdin and will produce alfred commands to stdout. See batch mode documentation for more details. (Bug #2119)
- Batch mode now works on Linux and Irix, previously a subtle aspect of linking maya applications caused batch mode to either abort before it got going. (Bug #2120)
- Point and Blobby particle types now receive per-particle attributes. (Bug #2121)

#### MayaMan 1.0.12 - 20/Mar/2002

- Point lights that cast dmapped shadows will now cast shadows from objects that previously were being culled as being non-visible from the POV of the light's six viewing frustums. (Bug #2078)
- Polygon proxy objects for subdivision surfaces are now excluded from the render. (Bug #2079)
- Quantization panel now has convenience buttons to configure 8/16 bit modes. There is also a checkbox for forcing 8 bit previews... this is useful when you are using a display driver like 'file' or 'tiff' for 16 bit renders as mayaman will substitute the 'animal' driver for previews but unfortunately the animal display driver doesn't support 16 bit rendering. (Bug #2080)
- All fur descriptions are now rendered... not just the one currently active on the furfeedback shape. (Bug #2081)
- Data can now be attached to curves that controls the width, normals or any user supplied data. (Bug #2084)
- Material networks that contain links to extra attributes would sometimes cause shaders to fail to compile. Extra attribute handling is now much more robust. (Bug #2085)
- Fur improvements. The scale of the surface that carries fur no longer adversly effects the length of the fur. Both vertex and motion blur are now supported. Attributes node for fur now should be associated with fur description rather than surface. (Bug #2086)
- File textures mapped onto non-closed nurbs surfaces no longer have a fringe at the edge. (Bug #2089)
- Image plane placement has improved. (Bug #2090)
- The following entropy attributes are now supported directly through the GUI: maxscanlinecurvature, maxraytracingcurvature, keepcreases. (Bug #2091)
- Disconnecting an expression from an attributes node no longer results in the node being delete. (Bug #2093)
- CSH scripts generated on a windows platform now don't have a mix of windows and cshell style notation. (Bug #2098)
- All components required for 'rampLight' are now supported. (Bug #2099)
- When 'Verbose' is enabled in the MayaMan basic options Maya's Output Window will receive copious amounts of about regarding the translation. (Bug #2100)
- Multiple uvSets on polygonal models which are being handles as subdivision surfaces will no longer cause mayaman to crash. (Bug #2101)
- Shadow density is are now scaled by the light's intensity just like Maya's renderer. (Bug #2102)

#### MayaMan 1.0.11 - 5/Mar/2002

- Penumbra settings are now applied to barn doors. (Bug #2037)
- Particle systems that instance geometry will no longer fail in batch mode with the message: Cannot find procedure "getParticleInstancerShapes" (Bug #2038)
- Shaders generated for textures attached to an image plane now compile. Previously they would fail and the image plane would just be black. (Bug #2046)
- Shaders that require matrix inputs now get the correct values from the scene, previously they would be declared but would never get set to anything other than identity. (Bug #2047)
- Orthographic cameras are now supported. (Bug #2052)
- Fixed a bug causing MayaMan to create an additional MayaManNuggetDeleteScript everytime a scene was loaded. All existing MayaManNuggetDeleteScript# nodes can be deleted in existing scenes. (Bug #2055)
- The outTransparency attribute of the fileNode is now emulated by the mayaman shaders. (Bug #2056)
- For renderers that support caustic and indirect lighting the associated attributes are now always inserted into the rib even if the indirect or caustic lights are not enabled... this is because other shaders may be influenced by these parameters... in particular the indirect attributes should be used to control envlight. (Bug #2057)
- In some cases the bounding box was not computed correctly which would cause delayed read archive to not work properly. (Bug #2058)
- The baldness attribute for fur is now supported. (Bug #2059)
- Fur 'detail' parameters are now supported with the exception of the override-per-surface map assignments. (Bug #2060)
- Painted fur attributes are now supported. (Bug #2061)
- The 'invert' attribute of checker is now supported. (Bug #2063)
- The 'Fix Texture Warp' flag on nurbs surfaces is now partially supported. The CLP which is computed does not exactly line up with the one that Maya computes but that can be ameliorated by adding extra isoparms in the problem area. (Bug #2064)
- The File/Display flags for the Animal display driver did not work after renaming the display driver from soft to animal. The bug is fixed now. (Bug #2065)
- Subdivision surfaces will now vertex blur. (Bug #2066)
- The cycle options of particle instancers are now supported. (Bug #2067)
- Extra Output Channels now work with entropy provided that the main display driver is framebuffer or file. (Bug #2069)
- A bug was introduced in v1.0.10 which prevented the user from setting the display driver mode when "animal" was used (settings would revert to "display") has been fixed. (Bug #2070)
- Normal processing now happens on polygonal models differently. Previous there was a misguided attempt at interpretting maya's edge smoothing flags, we now just take the mesh normals as maya provides them. (Bug #2071)
- The mayaman.env file which configured the run time environment for MayaMan on linux/irix had a typo which caused maya to lose access to it's bitmaps. If you've copied the XBMLANGPATH setting from mayaman.en into your own user environment scripts then those changes need to be reviewed.... the value should end in %B (Bug #2072)
- On Linux/Irix the file browsers now close themselves properly and the labels at the bottom of the browse dialog are no longer messed up. (Bug #2073)
- The #f notionation for frame number expansion in strings is now applied to all occurences in a string, not just the first one. (Bug #2074)
- The default name that is computed for an archive of an object that has been imported with namespaces now is purged of ":" characters which would cause file creation to fail. The ":" is replaced with "_". (Bug #2075)

#### MayaMan 1.0.10 - 19/Feb/2002

- An error that caused textures to be 'wiggly' on subdivision surfaces has been fixed. This applies to both Maya's native subs and MayaMan's polygons-as-subd mechanism. (Bug #1793)
- Camera Lens Squeeze Ratio is now supported. (Bug #2018)
- MayaMan now notices when MayaManAttribute items are modified by a per-frame script. (Bug #2019)
- Textures used by objects in an archive are now converted at archive generation time. (Bug #2020)
- Users can now use IFL files (just text file with a filename on each row) to determine which RIB archive should be used on any particular frame. (Bug #2023)
- The MayaMan Globals->Shadow Options panel now contains a control to set a shading rate scale. When creating ribs MayaMan will multiply the global shading rate and shadow shading rate scale together to determine the actual shading rate used. (Bug #2024)
- Attribute "render" "integer motionrays" can be set/overriden in the MM Global Options, MM Material Attributes and MM Model Attribtues (in that order). Attribute "light" "integer motionrays" can be set in the MM Light Attributes. These options allows you to motion blur shadows/reflections and only shadows, respectively. (Bug #2033)
- Our display driver has been renamed from "soft" to "animal". (Bug #2034)
- MayaMan will now handle fur on polygonal surfaces. (Bug #2041)
- MayaMan's batch mode now loads it's helper mel scripts which fixes a problem with particle instancing whereby Maya would report that it could not find the getParticleInstancerShapes and getInstancerObjectIndices procedures. (Bug #2042)
- A bug which caused particle instantiation to fail has been fixed. The problem was seen when there were no live particles at the first frame rendered then MayaMan would think that it was instancing nothing. (Bug #2043)
- An ImagePlane that is in 'Image File' mode and has 'Use Frame Extension' turned on will now correctly convert and use the textures. (Bug #2048)
- Controls in the global illumination panel have been added to control the intensity of the 'indirect' and 'caustic' light sources. (Bug #2049)
- Entropy's occlusion seed/save file can now be set in the global illumination panel. (Bug #2050)
- Batch mode will now warn you if there is no brush in the scene... at least one brush much exist for dynamics to update properly... maya normally inserts a brush into a new scene so it's absense usually indicates over enthusiastic scene grooming. (Bug #2051)
- The 'SOFT_DSPY' environment variable has changed to 'ANIMAL_DISPLAY_DRIVER_MODE'. (Bug #2054)

#### MayaMan 1.0.9 - 22/Jan/2002

- MayaMan's fur support is now greatly improved. See the documentation for more information. Note that currently the procedural that implements the fur is currently only distributed for PRman and Entropy on windows. (Bug #1818)
- The uvChooser node is now supported. (Bug #1879)
- Support for Pre/Post Render/Frame MEL scripts have been added. MayaMan variables such as $PROJECTDIR, $RIBBASE etc will be expanded (Bug #1970)
- The inherited visibility problem introduced in version 1.0.8 has been corrected. (Bug #2011)
- Previously a point light's shadow maps would not be altered when adaptive angle/auto focus was requested. Now the translator will skip creation of maps in directions for which there are no shadow casting surfaces. (Bug #2012)
- A bug which caused the "soft" display to crash when too many buckets/pixels were displayed at the same time has been fixed. (Bug #2013)
- MayaMan now identifies more cases where geometry should be moving over time... in particular this fixes problems seen when animation has been applied to transform nodes that form part of a joint chain and when an IK-Handle is used to manipulate joints. (Bug #2015)
- Vertex colors can now be rendered. To do this attach a MayaManCustomShader to a polygonal model with vertex color information. Turn on the 'Cs from Vert Cols' checkbox and choose a RenderMan shader that uses Cs... most regular RenderMan shader do but a good choice to start with is 'matte'. (Bug #2016)

#### MayaMan 1.0.8 - 8/Jan/2002

- The display drivers have been organized into the $MAYAMAN/dspy/[platform] subdirectory. The soft display driver should now work for the supported renderers directly after installation (linux is still unsupported). (Bug #1898)
- A "Clear Cache" option has been added to the MayaMan Output Directories window. Make sure you read and understand the documentation before using this feature. (Bug #1960)
- Light shaders compilation is more robust... previously shading nodes might refer to global variables that were not being created for light shaders. (Bug #1998)
- MayaMan now projects textures from point lights in a spherical fashion rather than as six replicated faces. (Bug #1999)
- The '-f' flag on the NetRender Hosts panel is now remembered. (Bug #2000)
- Matrix values are now initialized in a way that BMRT is happy with. (Bug #2001)
- Conversion of nurbs surfaces with many trims when each trim is made of many short segments is now much faster. (Bug #2002)
- The soft display driver is no longer required to be copied into the $RMANTREE/etc subdirectory. Instead the [NT] installer will update the rendermn.ini file, telling PRMan to look in $MAYAMANROOT/dspy/nt. Irix users will have to update this file manually for now. (Bug #2004)
- The shader code created for the grid node will now produce bump on all renderers. (Bug #2005)
- Rib creation speed has significantly improved. (Bug #2006)
- A memory leak (through the maya api) has been identified and plugged. (Bug #2007)
- Maya 4's "receiveShadows" attribute is now observed. This only works for surfaces with magic-shaders. Custom renderman shaders will need to be modified to look for a float variable on the geometry called '__no_shadows', when set they should ask the light (via message passing) for an un-shadowed version of the light intensity. (Bug #2008)

#### MayaMan 1.0.7 - 20/Dec/2001

- Support has been added for the lightInfo Node. (Bug #1878)
- MayaMan will now correctly skip models which are texture reference objects for objects which have been deleted. (Bug #1980)
- MayaMan will now handle particle instancers that are creating groups. (Bug #1982)
- IK now loads an updates correctly in batch mode. (Bug #1983)
- The radiance seed and save file names are now placed in a per-frame rib rather than in the shared quality setting rib. These strings are now also checked for the #[0-9]f pattern which indicates that frame number substitution should be applied. These changes allow seed files for sequences to be built up. (Bug #1987)
- When generate rib only is enabled and a sequence render is invoked MayaMan will now only generate the ribs... the fix in the last build for alfred mode and sequences broke generate rib only for the non alfred case. (Bug #1991)
- mono-channel inputs to child-attributes of nodes like projection (ie: outAlpha of a checker connected to image.R of projection) now produce shaders that compile and execute correctly. (Bug #1994)
- Sometimes a light would cause an illegal rotation value to be placed into the rib which would result in that light being corrupt and misplaced. (Bug #1996)

#### MayaMan 1.0.6 - 14/Dec/2001

- MayaMan now handles file copy chores itself rather than relying on an external program (xcopy) which will avoid problems related to copy utilities prompting for manual confirmation. (Bug #1981, #1985)
- When using an alfred script and have multi-threaded rendering selected MayaMan no longer tries to run batch scripts (which don't exist). (Bug #1984)
- Transform nodes that import archives can now be illuminated by using the 'additional light set' mechanism in the MM-model-attributes. (Bug #1986)
- Custom shaders now have an extra checkbox associated with each string parameter. When enabled this will cause the provided string to be converted with to a texture compatible with the renderer. NB: we will add more controls to set periodicity soon. (Bug #1988)

#### MayaMan 1.0.5 - 12/Dec/2001

- The horizontal and vertical film offset settings of maya's cameras are now observed. (Bug #1971)
- You can now use $(SCENENAME) anywhere that $(PROJECTDIR) can. This variable will be expanded to be the name of the current scene and it now forms part of the default rib output directory which will avoid clashes between shaders of identical names. (Bug #1973)
- Polygons with holes are now supported. (Bug #1974)
- A mel-script problem has been corrected that caused the existance of multiple light-attribute objects to get confused when setting up shadow cheats or soft shadows. (Bug #1975)
- Texture files with names like 'foo.tif.100' now work again. (Bug #1976)
- Polygonal models now vertex-blur properly (even if being used as subdivs). (Bug #1977)
- Shaders that have extra attributes will now compile with the proviso that those extra attributes are only referenced by other attributes *in the same node*. Shaders with cycles (as reported by maya in it's script editor) may produce shaders that won't compile. (Bug #1978)
- Film offset values are now taken into account when setting up the RiScreenWindow. (Bug #1979)

#### MayaMan 1.0.4 - 3/Dec/2001

- MayaMan now supports object archiving, where the user can select to archive an individual object, a hierarchy of objects, or a group of objects. This feature goes hand in hand with the "Substitute RIB" feature. (Bug #1919)
- The magic shaders now produce a variable called __matteOpacity which can be used to extract (via the extra output channels) the a matte similar to the one that maya produces. Note that currently this is only partially implemented, only the basic surface shaders are handled, things like layeredShader are yet to be handled. (Bug #1969)
- everything except a custom display driver is now ship-shape on linux (Bug #1800)
- MayaMan Light Attributes can now be set to control the z-range over which shadow generation occurs. If the far distance is not enabled then the far clip is effectively infinite. (Bug #1836)
- outAlpha is hooked up for volumeNoise (Bug #1857)
- alphaGain and alphaOffset should now work with all supported nodes, even when alphaIsLuminance is enabled. (Bug #1932)
- Geometry to form a framework for the volume primitives is now put into the rib, the shading needs more work though. (Bug #1937)
- Nodes that do not have the alphaIsLuminance flag (stencil, projection, cloth, ramp, marble, wood) are now handled the same way in MayaMan as in Maya, ie either always on or always off. (Bug #1946)
- MayaMan now treats the "file" node the same way as Maya, ie it will revert to using alphaIsLuminance if it can't find any alpha channels in the texture file. (Bug #1947)
- The grid node now responds the same way to alphaIsLuminance, colorGain etc in both Maya's render and through MayaMan. (Bug #1948)
- The number of threads to use for an entropy render is now passed through to the alfred script.... this value is set using the 'Number Of CPUs' setting in the advanced options panel. (Bug #1949)
- The 'Advanced Options' panel now contains controls to create tiled ribs. Tiled ribs may be useful for breaking up expensive frames across many CPUs. (Bug #1951)
- The reflection/refraction blur/samples attributes in the MayaManMaterialAttributes node now apply to map sampling too. Previously they were only used for raytracing. (Bug #1952)
- The reflection map override controls in the MayaManModelAttributes dialog are now connected. (Bug #1953)
- The MayaManMaterialAttributes node now has a way to scale the filterwidth used by the magic shaders during indirect illumination calculation. It can also attach a whole seperate sub-shading network that will only be evaluated when an indirect ray is being evaluated. The connection-creation checker box will create a surface shader and make all the require connections.... if possible you should try to get away with just making the surface shader return a constant color or something really simple. The filterscale will be applied to the code run for the indirect sub-shader. It is OK to share nodes in the indirect and normal shading branches (ie: you might pipe just the file based main color of a complex shading network into the indirect surface shader and let the blur fuzz it out, the place2d and file node would therefore be shared between both branches resulting in smaller shaders). (Bug #1954)
- Place3dTexture transformations now have an impact on envSphere (Bug #1956)
- MayaMan now checks the "Render->Test Resolution" setting, if it's in 50,25,10% mode then a preview will have that scaling factor applied to it's resolution. (Bug #1957)
- File shading nodes with 'Use Frame Extension' and images named in the foo.#.ext form are now handled correctly. (Bug #1958)
- The visibility flags are now handled the same way as maya. (Bug #1959)
- If a model appears frozen over time it may be that MayaMan's constant-geometry detection has been thwarted by the use of expressions to move the verts around. In this case you can defeat MayaMan's decision by turning on the 'Force Per Frame Shape Sample' attribute in the mayaman per model attribute. (Bug #1963)
- The per-model shading rate override is now interpreted as a shading rate scale, this makes it possible to dial the shading rate on all objects up and down in a uniform manner with a single control rather than having to visit all objects with an override. (Bug #1964)
- The "distanceBetween" node is now partially supported, but the matrices aren't hooked up yet. (Bug #1966)
- Objects that have their "primary visibility" flag disabled and "casts shadows" enabled, will now render shadows. (Bug #1967)
- The magic shaders now produce a variable called '__shadow' that can be used as an extra output channel to produce shadow mattes. Note that this output variable is a color not a float as shadows can be coloured. (Bug #1968)

#### MayaMan 1.0.3 - 14/Nov/2001

- The Granite texture node will no longer crash when cellSize is 0 (Bug #1928)
- The MayaManModel attributes object can now be used to create named coordinate systems. Attach the attribute node to an object, turn on the checkbox and fill in a name.... the rib will then contain a named coordinate system that represents the world->object transformation for the model. (Bug #1927)
- When a material's 'reflection limit' is exceeded the shaders now return black (like maya) rather than the 'reflected color'. (Bug #1945)
- The implementation of setRange has been recoded and is now working properly. (Bug #1929)
- alphaOut, alphaGain, alphaOffset and alphaIsLuminance are now enabled for all 3d textures. (Bug #1932)
- Projections onto displaced surfaces now operate in the correct coordinate system. (Bug #1933)
- The scripts/batch files that are created to drive the renderer now use a standalone program called 'manstat' to do date stamp checking. This program is located in the bin directory of the distribution. This makes it easier to provide this functionality across a wide variety of platforms. (Bug #1934)
- totex now uses entropy's version of mkmip when converting textures rather than looking for bmrt's version of mkmip (Bug #1936)
- Maya4's 'Emit Diffuse' and 'Emit Specular' light attributes are now observed. (Bug #1939)
- Files with instanced particles will no longer cause mayaman to crash when it tries to create ribs. Instanced objects will now have the correct material applied. (Bug #1940)
- Problems with texture orientation in the envSphere node have been fixed. (Bug #1941)
- The MayaMan Material Attributes are now handled in the same way as Model and Light attributes, ie as part of a separate attributes node instead of having each attribute attached directly on the materials. Note that this means that reflection- and refraction blur/samples, Cube Face Env, and Flat Mirror attributes in old scenes will have to be re-applied the new way to be recognized by MayaMan. (Bug #1944)

#### MayaMan 1.0.2 - 7/Nov/2001

- GapBias, SoftShadowShape and SoftShadowLocation parameters are now connected. (Bug #1925)
- A place3dtexture node that is in 'inheritsTransform' mode and is parented to a transform will now produce the correct transformation. (Bug #1926)

#### MayaMan 1.0.1 - 5/Nov/2001

- Partial support has been added for layeredTexture. All blendModes, except for difference/lighten/darken, are working. Currently the node will only work when alphaIsLuminance is turned off.
- Partial support has been added for "simple" envFog. This is the status on some parameters: colour: ok, colour based transparency: assumed to be off, saturation distance: ok, use layer: assumed to be off, use height: ok, min height: ok, max height: ok, blend range: not treated yet, clipping planes: ok (but Maya's renderer doesn't seem to use these) (Bug #1871)
- layered shader/layered texture shaders that have been manipulated with drag&drop will no longer cause mayaman to produce shaders that won't compile. This fix only applies to Maya4, the problem can not be solved in Maya3. (Bug #1897)
- MayaMan now looks for extra attributes on materials to control blur for raytraced reflections and refractions. The reflective materials (blinn, phong, phonge, anisotropic) can have an integer called 'MayaManReflectionSamples' and a float called 'MayaManReflectionBlur' which default to 1 and 0 respectively and are passed through to the "samples" and "blur" arguments of the environment() call which is used to trace the reflection. All the materials (lambert, blinn, phong, phonge, anisotropic) can have 'MayaManRefractionSamples' and 'MayaManRefractionBlur' which work like the reflection ones but control how sampling of refractions occurs. (Bug #1899)
- The number of photons is no longer limited to just over 30000. (Bug #1900)
- All strings entered in the Output Directories dialog will now formatted to not contain any '\' charachters, no matter if the "Unix RIB Output" checkbox is enabled or not. (Bug #1901)
- MayaManAttributes can now be used to associate a light set with curves. (Bug #1902)
- MayaMan will now display the busy cursor while it works and can be cancelled by pressing 'ESC'. Currently the shader generation/compilation stage can't be interrupted. (Bug #1903)
- Projection now produces a valid 'outAlpha' which is required in many common shading contexts not the least of which is bumping. (Bug #1906)
- MayaMan no longer crashes when trying to render unsupported geometry as MayaMan Subdivs. (Bug #1908)
- The 'refractions' tick box in a maya material's raytrace options section will now cause simple opacity to be used when disabled, when enabled raytracing will be used as before. (Bug #1909)
- MayaMan now selects an IOR for the computation of refraction direction the same way as maya... by looking at the current raydepth instead of checking the orientation of the normal and the view vector. (Bug #1910)
- Reflections are now are simply added rather than blended in. (Bug #1911)
- Support for translucence has been added but the focus parameter is not well matched. (Bug #1912)
- A bug causing inverted displacement on backfacing surfaces has been fixed. (Bug #1914)
- Partial support has been added for layeredTexture. All blendModes, except for difference/lighten/darken, are working. Currently the node will only work when alphaIsLuminance is turned off. (Bug #1915)
- Degenerate polygons with UV data no longer causes MayaMan to crash related to the handling of W data. (Bug #1916)
- Connecting an alpha channel to a red/green/blue sub-channel of a colour input could result in shaders that won't compile. (Bug #1917)
- User defined per-model rib chunks are now inserted when flat rib mode is enabled (Bug #1918)
- A bug where mayaman_batch_m3 would attempt to load MayaMan_m4, instead of MayaMan_m3, has been fixed. (Bug #1920)
- The bug where $(PROJECTDIR) reverted to the default Maya project directory has been worked around. The mayaman_batch tool now takes an additional argument, "-projectdir", which allows you to manually set the path to $(PROJECTDIR) when rendering from the command line. (Bug #1921)
- Curves of degree 1 are now exported as linear curves. (Bug #1923)
- Shader argument handling is now more robust which corrects a problem seen when entropy is used. The result is that the shaders would be applied with all default values. (Bug #1924)

#### MayaMan 1.0 - 16/Oct/2001

- The image plane display modes are now supported. If mode is set to none then no image plane object is placed in the rib. The modes only apply to the simple image map case, shading networks have their result placed onto the image plane literally (which matches what maya does). (Bug #1884)
- Previously, if you had the MayaMan globals window open, and performed a 'New Scene' in Maya, the MayaMan globals window would become disfunctional. This window is now automatically closed when you create a new scene in Maya. (Bug #1886)
- MayaMan will now handle assignments of different materials to instances. (Bug #1889)
- Cameras which are scaled were not having the near/far clip values computed correctly which would result in large quantities of geometry disappearing. (Bug #1890)
- MayaMan no longer gets confused if a scene references two images with the same name (ie: foo.jpg and 3dPaintTextures/paint_over_file/foo.jpg). See the Tips section of the user manual for notes about using 3d paint with mayaman. (Bug #1891)
- Directional lights will now observe the 'use light location', 'use dmap auto focus' and 'dmap focus width' parameters during shadow map gen and application. (Bug #1892)
- The problem where sequence renders would fail after the first frame, has been fixed. (Bug #1893)
- Unloading the MayaMan plugin (from an empty scene) should no longer cause Maya to crash. (Bug #1894)
- Materials with 'Matte Opacity Mode' set to 'Black Hole' will now be interpreted by MayaMan as a request for an RiMatte object. (Bug #1895)
- A bug that caused caustics to not render properly when using more than approximately 30000 photons has been fixed (Bug #1896)

#### MayaMan 0.8.9 - 11/Oct/2001

- MayaMan will no longer insert red entries into a Ramp. This problem has only been corrected for Maya4, it is not possible to fix it for Maya3. (Bug #1699)
- The soft/fake shadow helpers can now be connected in the AE. Pressing the checker-board will create an appropriately configured light and attach it or the user can type the name of an existing light into the text box, if the user or a script attempts to make an inappropriate connection an error will occur. This change also applies to the selection of helper lights for geometric based area lights. Drag and drop is not supported. (Bug #1840)
- MayaMan now includes a stand-alone batch render command, so you can render with MayaMan without opening the Maya interface. When invoked in this way, MayaMan will render the scene using the settings saved therein, but you can override some of the settings with command line arguments to the tool. (Bug #1844)
- Objects which are being handled with the 'Render As Primitive' flag enabled now has the local pivot and axis information taken into account. (Bug #1852)
- The use of environment variables in any paths (RIB directory, texture cache directory etc) is now allowed, eg $(myProject)/myRIBs/ where $(myProject) is an environment variable that could be set to eg "c:/temp". (Bug #1855)
- We have introduced a MayaMan specific variable, $(PROJDIR), which stores the location of the current Maya project. This variable can easily be used in the different MayaMan paths, such as RIB Directory, Texture Cache, and Image Output Directory by any user who prefers to store the MayaMan output relative to the Maya project directory. Note that this is a specialization of bug 1855, which allows use of any environment variable in the MayaMan paths. (Bug #1856)
- Support has been added for the volumeNoise node. Most of the parameters are supported, and the Perlin and Volume Wave functions have been implemented. Partial support for Billow exists, and the remaining noise functions will revert to using Perlin noise. (Bug #1857)
- Nodes with long path names no longer cause mayaman to abort during rib-gen. Names used by mayaman in the rib are now the tail end of the path with an underscore and 8 hex digits appended. When you see a render time error and the object at fault has a name like 'foo_01ab3f00' the object to look for in your scene is really just called 'foo'. (Bug #1858)
- motion blur that is driven by secondary systems (like bones) is now detected and handled correctly (Bug #1859)
- The frame step value in the Maya render globals was being ignored my MayaMan. Fixed. (Bug #1861)
- MaxMan and MayaMan both have model attributes that can turn off a model's indirect visibility. At the moment only air supports this and the attribute name is subject to change... expecting it soon in entropy. (Bug #1863)
- MaxMan and MayaMan now require that the user supply spatial and temporal quality values rather than pixel samples. (Bug #1864)
- MaxMan and MayaMan now have a control to enable automatic setting of small objects to be invisible to indirect probe rays. The value supplied is a world space distance, objects whose bounding sphere radius is less than this value will not be seen by indirect rays which can improve render time and reduce noise. (Bug #1865)
- The PathMap dialog in MayaMan now features entries for both ENTROPYHOME and AIRHOME environment variables/registry settings, in addition to the old ones. (Bug #1866)
- When there is no displacement material on the curve it is illogical to ask for cylindrical displacement instead of cylindrical bumping because cylindrical displacement only bends the normal along which displacement will happen... if there is going to be no displacement then the normal bend is the equivalent of bump mapping. To protect the user against this error without incurring the expense of carrying a 'do-nothing' displacement shader the request is now automatically converted into cyl-bumping when there is no displacement shader. (Bug #1868)
- File node image sequence handling improved to allow specification of the texture name as 'name.N' rather than just 'name' (Bug #1882)
- Image sequences are now correctly handled when used on the camera's image plane (Bug #1883)
- Ray traced reflections are now supported. Use Maya's Render Globals to turn on raytracing (only the checkbox is used, the reflection/refraction/shadow traced depth and bias values are not connected yet, use MayaMan's BMRT Options panel to set these instead). The material's 'reflectionLimit' value will be observed. Use of the MayaManCubeFaceEnv or MayaManFlatMirror attributes on a surface or material will override raytracing. (Bug #1887)

#### MayaMan 0.8.7 - 2/Oct/2001

- totex (the texture conversion utility that wraps the details of texture conversion for the supported renderers) has been beefed up so that it can handle tiff files of any orientation or photometric (Bug #1847)

#### MayaMan 0.8.6 - 24/Sep/2001

- As many samplerinfo outputs as can easily be handled are now supported, note that rayDirection and normalCamera are presently passed in renderman's 'current' coordinate system rather than the 'camera' coordinate system like they should be, this make the values compatible with the way that the rest of the magic shader code works. Similarly the pointCamera value is reversed along the z-axis. (Bug #1841)
- The replace-image feature now works again. (Bug #1851)

#### MayaMan 0.8.5 - 14/Sep/2001

- MayaMan now uses Maya's global settings for the output image name format, start/end/step and sequence name padding. Also, if the image name format is not one with a sequence number in it, then MayaMan will only render a single frame (the same behaviour as a Maya batch render) (Bug #1812)
- MayaMan now has the option for choosing the rendered image output location. In Basic Options you can select between the RIB output directory, the Maya project's images directory, or a separate user-specified directory as the destination location for MayaMan rendered images. (Bug #1813)
- Ambient lights no longer create speculars or participate in diffuse lighting. (Bug #1816)
- Shader results were not being correctly multiplied by the transparency channel, giving incorrect results for transparent surfaces. Corrected. (Bug #1819)
- Per-particle opacity attributes were being ignored for sprite particles. Fixed. (Bug #1823)
- When generating ribs for alfred the output images have to have a full path name so when the requested output image name has no directory component the rib base name is prepended. An implementational error resulted in the base directory name always be prepended which resulted in a double directory name in the rib. (Bug #1824)
- MayaMan will now use the pixel aspect ratio as specified in the Maya render globals. (Bug #1827)
- The MayaMan model/light attributes have been overhauled. Instead of using a separate dialog and going through the steps of getting/putting attributes to models, you now select 'Add Model Attributes' from the MayaMan menu, which creates a new MayaManAttributes node, and links it to your model. Then you use the Maya Attribute Editor to modify the attributes. Much simpler! (Bug #1833)
- The magic shaders now support ray traced and cube face environment mapped refractions. The MayaManCubeFaceEnv attribute influences the technique used, see it's documentation for more details. (Bug #1834)
- Basic particle geometry instancing now supported. Further work required for all the geometry orientation parameters. (Bug #1838)
- Custom shaders nodes now can nominate an ambient lighting method... maya style (in which case the shader needs to use code from maya_magic_shaders.h) or renderman style (in which case it just uses ambient() and diffuse()). (Bug #1839)

#### MayaMan 0.8 - 20/Aug/2001

- Some of the file/directory browse buttons in the MayaMan dialogs were broken. Fixed now. (Bug #1794)
- Maya's own model attribute for motion blur inclusion/exclusion is now used rather than our own. A MayaMan model attribute for vertex blur is still in the model atts dialog though. (Bug #1801)
- If an alfred script is being created and generate-rib-only mode is on the script is just written... it is no longer automatically sent to alfred. (Bug #1806)
- Removed the global smooth shading attribute, and also the one from the MayaMan model atts dialog. Maya's own per-model smooth shading attribute now used. (Bug #1810)
- Level of Detail now implemented. The transition points between the detail levels are not precisely the same as Maya's, but reasonably close in most cases. Inserts smooth transitions between the levels to take advantage of RenderMan's LOD interpolation. (Bug #1817)

#### MayaMan 0.7.5 (beta) - 30/Jul/2001

- Motion Blur of sprite particles corrected
- Reflection maps now have the ribbase name rolled in so that renders which share the same rib directory don't destroy each other's maps.
- Maya's own area lights now supported (as well as geometry through the model attributes dialog) when rendering with BMRT.
- Depth of Field now supported
- Substitute RIB problems corrected
- Rendering multiple-selected only fixed
- Online Help documentation now provided. Help menus in major dialogs for context-sensitive help.
- Adaptive angle shadow map creation now much improved. Shadow map renders will only be for the smalles FOV containing the shadowing objects, even if they are not centered around the light axis.

#### MayaMan 0.7 (beta) - 12/Jul/2001

- support for switch nodes
- sprite particles now supported
- particle motion blur corrected
- subdiv optimisations
- BMRT support improved (inc area lights)
- native geometry (RiSphere, RiTorus, etc)
- decay/dropoff for lights
- shading node improvements
- lots of other stuff

#### MayaMan 0.6 - 0.6.6 (beta) - 19/Apr/2001 to 7/Jun/2001

- Maya's light linking is now respected.
- Per-polygon shading group assignments have been fixed.
- Added BMRT model attributes to the MayaMan Model Attributes dialog. Also cleaned this dialog up a bit, and enabled the collapsed state of each frame to be persistent, so if you're just working on one set of attributes (e.g. bmrt ones) then keep that open and the others collapsed, and each time you open the dialog it will remain this way.
- MayaMan installer fixed to support 'Network' install mode. Using this mode, you can point the installer at an existing network visible MayaMan install, and this will set up any local settings and install system dlls, etc in order to be able to use that existing remote copy.
- The $bound parameter in the argument string to a dynamic RunProgram/dll in the MM_Model Modifier now gets expanded and is replaced with a string containing the extents of the bounding box (xmin, xmax, ymin, ymax, zmin, zmax)
- Displacement will now happen in BMRT for maya materials. Previously only native renderman shaders would get the proper displacement enabling attribute placed in the rib.
- Disabled (as in non-visible) lights were incorrectly creating shadow maps and contributing to illumination. Fixed (Bug #1741)
- preliminary support for subdiv vert/edge sharpening, accessible from the MayaMan menu for polygonal objects. If you're wanting to use this leave a message on the list and I'll give a rough outline of how to use it, but it is fairly easy. Improvements and documentation to come.

#### MayaMan 0.5 (beta) - 30/Mar/2001

- Custom RenderMan Light Shader attachment now working. Use the Light Attributes dialog to hook up an existing light with a new MayaManCustomLight node. (Bug #1708)
- Fixed Custom Shader parameter handling. This was broken for shaders which were not already located in the default shader search paths. Selecting a custom shader will now add that shader's location to the shader search paths. (Bug #1720)
- Previously when using a Custom Shader node if you initialised from one shader, then selected another, the new shader parameter attributes would be added to the node, but the old ones would also remain. Fixed, so now the attributes shown are only those pertinent to the currently used shader. (Bug #1732)
- Added controls to PRMan options for flatness and motion factor. (Bug #1728)
- Added 'Clear Data' buttons to model/light attribute editor dialogs, so you can strip all the MayaMan data off an object if necessary. Also removed the transform/shape selection radio button in model atts to simplify the dialog. If you need to apply atts to a shape node (i.e to affect all instances of a shape with one attribute) then select that shape node using the hypergraph or something before using the model atts 'apply to selected'. (Bug #1710)
- The attribute names assigned by the MayaMan Model/Light Attributes dialogs to objects have had mmma_/mmla_ prepended to them, to avoid clashes with other general attributes, and also to facilitate easy removal of all MayaMan data from an object. THIS BREAKS BACKWARDS COMPATABILITY FOR MODEL/LIGHT ATTRIBUTES. In order to have your MayaMan model/light attributes from previous scenes function correctly, you will need to rename the attributes, prepending "mmma_" for model attributes, or "mmla_" for light attributes. Alternatively, just reapply new attributes using the model/light dialogs, as the existing attributes shouldn't cause any harm in hanging around at this stage.

#### MayaMan 0.4 (beta) - 20/Mar/2001

- the 'rotateUV' attribute of place2Dtexture is now supported (this was causing flipped textures).
- matte objects that are also shadow casters will now work correctly in mapped shadows, previously they were marked as matte objects in the shadow file which caused them to not cast shadows
- GUI improvements, including reworking of the MayaMan menu, and all global dialogs are now functioning properly except for 'Extra Output Channels'. Model Attributes functionality improved also.
- reflection maps can now have the resolution set per-object, the model attributes dialog contains a toggle and a width/height value to override the map resolution setting from the global reflection options dialog
- the PRMan options dialog now contains controls for zthreshold/othreshold, the zthreshold value can also be used with RDC, please refer to the renderer documentation for information about where/when this would be useful. Also, users should be aware that when using Z-Thresh that depth filtering must be manually disabled
- particle system improvements for Animal Logic Golden Harvest job.
- sometimes totex would get called with the -B flag (which indicates BMRT mode) jammed right up against the previous flag

#### MayaMan 0.3 (beta) - 02/Mar/2001

- The canceller program from SoftMan now included. MayaMan attempts to run it from MAYAMANROOT/bin/canceller.exe when executing a sequence render. This pops up a small window with a 'Cancel' button, and pressing this will stop MayaMan from continuing after the current frame.
- Projected Textures: several modes are hooked up but not camera projection isn't quite finished though, user feedback is required to direct what features/modes to work on next
- Basic support for Subdivs available though the 'Render as Subdiv' checkbox in the MayaMan Model Attributes dialog. This turns on/off subdiv rendering of polygon meshes. There is currently no support for per vertex/edge sharpness values or other subdiv tweaking options.
- Point type particles now output as RiPoints. Also supported are multipoint, sphere and streak type particles.
- Maya NURBS curves output as RenderMan Ricurve primitives. Visibility and curve width are controlled through parameters in Model Attributes. You need to override the material in model atts too, as you can't assign a material to a curve in Maya. In that field, put the name of an existing shading group, e.g. initialShadingGroup or blinn1SG.
- The ImagePlane is now supported. The positioning attributes are not fully supported, they can be attached as required but note that any limitations can be worked around by using the place2dtexture inputs in the material attached to the 'Texture' input... of course for that to work you have to be using 'Texture' mode. Both 'Texture' and 'Image File' modes are supported. Users should note that the geometry extends out beyond the unit square being textured (so that DOF doesn't do crazy things at the edges) so the behaviour of the material outside that square is important. For example, a 'File' texture will need it's 'Default Color' attribute set to black so that you don't get a grey stripe at the top/bottom of the image.
- Fixed Motion Blur direction. Previously: backwards: resulted in center, center: resulted in forward and forward: resulted in forward.
- GUI fixes and further work (e.g. hooking up browse buttons, paths dialogs now working). Any dialog which is not working has "(this dialog not yet functional)" at the top, so any problem with dialogs other than these should be reported.

earlier beta releases of MayaMan were undocumented

MayaMan Help Contents