1.2.x

1.2.19

Additions

Bugs Fixed/Changes

  • fixed an issue where new strands added when the surface was deformed would “pop” into an incorrect space on update.

1.2.18

Additions

  • added “removeDuplicate” option to pgYetiCommand which takes a distance parameter, this will remove any duplicate strands within that distance threshold.

Bugs Fixed/Changes

  • improved strand frame alignment for deforming derivatives.
  • fixed a bug that caused displaced elements to incorrectly deform.

1.2.17

Additions

  • added two new parameters to the Grow node. Segment Creation Style and Segment Count. This allows the user to explicitly dictate how many segments are created per fibre regardless of it’s length OR define a segment length as previously (default). This makes animated growth more stable when motion blur is involved.
  • added Force Uncorrected Length parameter to the Convert node to set the length attribute on the resulting fibres to the original Groom vs. any interpolated Groom lengths. This can also be referenced in the Grow node as length_uncorrected.
  • length attribute can now be referenced in the Scatter node to control the density.

Bugs Fixed/Changes

  • fixed bug which caused Instance node to segfault if the node directly connected to the second input was an input and missing geometry.
  • fixed a bug in pgYetiPrmanGenPTC due to core updates not being propagated.
  • updated OBJ export to only export the first selected object and use the file name passed vs. adding in the shape name.
  • fixed a bug in the Instance node which prevented All instancing to work.
  • instanced objects now inherit the name of the instance node used to create them to avoid name clashing when recursion is used.
  • Width node correctly recreates the width attribute vs. inheriting already existing attributes to avoid cases where instances are sharing a width attribute resulting in uniform width values.
  • reverted Arnold procedural transform handling.

1.2.16

Additions

  • added texture coordinates and vertex normals to Wavefront OBJ export. Two new boolean options to control whether texture coordinates and normals should be exported have been added.

Bugs Fixed/Changes

  • reverted TBB scheduler changes.
  • fixed bug where Arnold procedural was assigning/inheriting the incorrect shading group ( or NULL ).
  • input order of Maya objects is correctly maintained when different object names used ( ie. id based, not hash based ).
  • adding missing Mirror tool button update in AEpgYetiGroomTemplate.mel.
  • updated pgYetiCreate and pgYetiCreateGroomOnMesh to avoid name clashing issues with similarly named nodes in the scene.
  • node names are now more visible than node types in the graph.
  • only object sets are listed in the Guide Set input dialog.
  • fixed rendering DSO threading/TBB assertion issues.

1.2.15

Additions

  • added custom colors for nodes in the graph editor, this includes a Helpers menu with the option of setting colors for selected nodes and reseting selected nodes to their default color.

Bugs Fixed

  • updated how shading groups were being assigned/handled for MtoA and Arnold which resolved an issue with AOVs not working.
  • correctly set Groom bounding box ( to input geometry ) if no strands were present.
  • reverted change which caused the graph geometry to not retain it’s canvas position.

1.2.14

Additions

  • added checks for missing parameters in Arnold DSO.
  • updated to MtoA 0.24.0 and Arnold 4.0.15.1

Bugs Fixed

  • fixed a bug that resulting in a graph being generated with no context when rendering via the command line.
  • fixed a bug where corrective grooms with a weight of 0 would cause an error to be incorrectly reported.
  • updated Group to use world space P vs. local P when a Texture Reference object was attached.
  • VRay DSO now correctly exports instance attributes.
  • Arnold DSO now allows referencing the same cache multiple times.
  • re-introduced Arnold DSO transforms.
  • updated dynamics engine to correctly handle varying time steps more accurately.
  • updated call to checkAssetPath for VRay DSO to avoid issues with VRay 3.0.
  • graph connections will now fail if there is potential for a loopback condition.
  • the Groom to Curve conversion process produces cleaner results.

1.2.13

Additions

  • support for Maya 2014
  • built w/ MtoA 0.23.1 and Arnold 4.0.14
  • built w/ VRay 2.30 from nightlies for Maya 2013, 2013.5 and 2014
  • built w/ 3Delight 10.0.139
  • added Parting, artists can create attributes prefixed with the part key ie. part_region01 which is used to define parting regions. A new Part Randomness parameter has been also added to the Groom node and it’s possible to paint part_randomness to control this on a per strand basis.
  • added yeti_partingExample.ma example file.
  • threaded transform derivation in core Mesh data structure.
  • threaded Strand System geometry position derivation.
  • added support for VRay’s VRAY_ASSETS_PATH when looking for .fur files to improve DR support.
  • added hotkey M to increase brush strength while grooming.
  • Non-deformed instances now use ginstance nodes for more efficient rendering with Arnold and shared GeomStaticMesh instances in VRay.
  • VRay dso relies on renderer to generate time samples which improves single VRScene support.

Bugs Fixed

  • fixed double transform introduced in Arnold DSO.
  • fixed hotkey event handler issues where hotkeys wouldn’t work when in grooming context.
  • fixed issues where Alt and Shift in the graph editor were causing the GE and Inspector to lose focus.
  • removed small memory leaks in VRay DSO during refactor.
  • scatter generates same results when the seed is the same.
  • changing the seed produces correctly varying results ( vs. needing very high numbers ). ( Be aware this will change graph results )
  • objects use more predictable object id’s, these are based on the order that objects are attached to the graph and stored in the objectId attribute.
  • instance node uses objectId for expressions.
  • fixed bug that causes similar reference nodes to not co-exist in the same merge.
  • fixed issue with surface derivative calculation which caused strands to flip at times.
  • fixed issue that caused interpolated time samples to be de-allocated too early while rendering with VRay.

1.2.12

Additions

  • removed explicit .dso/.dll from Rib output for PRMan/3delight to avoid cross platform rendering issues.
  • added imageSearchPath parameter to rendering DSO’s, this is used to set the search path for textures. Originally baked into the graph/cache itself this means it can be updated/changed without re-caching.
  • texture cache is owned by the Maya instance of Yeti vs. the graph, this means that caches using textures should only read the texture once and be re-used across frames. The cache will still check time stamps for textures that are dirty.
  • optimizations to internal mesh structures.

Bugs Fixed

  • swapped colours for Display as Heat Map.

1.2.11

Additions

  • added Obey Face Set to the Distribution tab of Scatter node to force relaxed points to stay within the bounds a defined face set vs. diffusing the “border”.
  • added internal cache file format versioning.
  • internal instance geometry types.
  • added Generate As to Instance nodes to tell Yeti to try and use the renderers internal instancing for more optimized instance rendering.
  • support for PRMan and 3delight Object Instancing, including per instance attribute propagation ( for Uniform attributes ) via ObjectInstanceV in PRMan ( currently not supported in 3delight - please correct us if it is and in what version? ). Please refer to the PRMan 17.0 Application Note on object instancing to fully understand shading changes needed if using per instance attributes.
  • Yeti now clamps painted attributes that are used to control sims ( except for mass ) to avoid overdriving the simulation results ( ie. sim_stiffness painted at 10 causes the strands to collapse on themselves ).

Bugs Fixed

  • fixed long standing bug where grooms with no strands would cause a crash when exporting/rendering.
  • fixed issue where groom strands won’t update when input geometry moved when not connected to a Yeti node.
  • fixed issue where grooms weren’t bring projected onto the input geometry correctly ( introduced in 1.2.10 )
  • fixed issue when Conform New Strands was using with Add & Fill.
  • fixed sculpt/comb issue that caused strands to pop to the surface when being pulled “off” the surface.
  • strands won’t smooth below the input surface.

1.2.10

Additions

  • added Scale brush to Groom.
  • updated Licensing documentation with TIMEOUT options parameter.
  • added -licenseAvailable and -numberOfLicensesAvailable to pgYetiCommand, see scripting documentation for more information.

Bugs Fixed

  • fixed a bug introduced in 1.2.9 when instancing to particles/points.
  • fixed a bug in scatter introduced in 1.2.9 which caused relax steps to create stray points.
  • fixed issues reading textures using UDIM names.
  • reduced memory consumption introduced in 1.2.9 Scatter node.
  • fixed a bug that caused fill to not work when Initial Strands was selected as Affects mode.
  • fixed bug in Arnold translator that assumed single faced geo with a single attribute was of FACE detail type vs. CONSTANT.

1.2.9

Additions

  • built against MtoA 0.22.1
  • added memory usage reporting in the node info, this represents the amount of memory allocated by graph on execution completion.
  • Scatter, Grow refactored and heavily optimized/threaded
  • Relax threaded for massive speed improvements
  • Internal Closest Point code re-engineered to be a few magnitudes quicker
  • added Point Selection to Instance node allowing control over which points in an element are instanced too.
  • added Element Point Index attributes to Instance node which can be used to define which point in an element is used for an instance.
  • added Local Variables, nodes can now define/expose node specific variables for expressions. eg. Instance node has $instanceCount, $instanceNum, $vertexNum and $vertexCount
  • added Instance Element Index control example.

Bugs Fixed

  • improved Yeti nodes selection in Maya viewport, the selection is much more accurate and ghost selection doesn’t occur.
  • fixed constant attribute type outputs in Arnold for use with aiUserFloat/aiUserVector etc.
  • fixed arnold light linking.
  • fixed pgYetiVRayMaya missing symbol issue on Linux.
  • fixed issue which could cause intermittent id changes on fibres which would throw their order off.
  • strandu attribute correctly matches u value of curve ( it was slightly truncated ).
  • Int and Color variables for expressions are now supported ( so $numInstances could be used, etc. ).

1.2.8

Additions

  • If mapping on in Attribute node Yeti now assume you want to map the newly created attribute. If not mapping name is given Yeti will assume it’s the name of the attribute to map.

Bugs Fixed

  • VRay rendering correctly obeys layer membership of parent transform.
  • fixed numerical rounding error in Scraggle that would cause the scraggle effect to be reduced as fibre count increased.
  • improved strand re-alignment stability which resolves an issue with overly blurred results in edge cases.

1.2.7

Additions

  • added Scraggle Frequency and Scraggle Offset to Scraggle node to control the look/motion of the Scraggle effect.
  • removed redundant Scraggle Scale from Scraggle node.
  • renamed Bake Root Positions and Save Rest Position to Save Strand Shape and Save Rest Pose for clarity.
  • added support for 3delights dirmap and path searching, you can use the “resource” category to set search paths for .fur files.

Bugs Fixed

  • orientation attribute correctly passed to Arnold.
  • Save Strand Shape checks for groom selection prior to dialog confirmation.
  • fixed a long standing orientation bug that was due to bad derivative calculations which cause misaligned strands when animated. If required ( likely not ) the old method can be forced by adding a boolean attribute to the mesh shape called yetiOldDeriv and toggle it on ( you will need to refresh the viewport ).

1.2.6

Additions

  • added Gravity Direction attribute to Dynamics World Properties on Grooms.
  • updated how Yeti handles the simulation start frame, it behaves like Maya now where rewinding to the start frame will reset the simulation ( not one before ).
  • added the ability to turn simulation on/off on a per strand basis using the sim_simulate attribute. If found any strands with a value below 0.5 will be static.
  • removed legacy scraggle.
  • texture will warn if trying to set “width” as a new attribute name as it’s reserved.
  • Grooms to Guides can be applied to multiple grooms at once and/or with the Grooms transform selected for convenience.

Bugs Fixed

  • fixed conversion from guide set to groom node, please note the parameters for the command has been updated to pgYetiConvertGuideSetToGroom( string $guide_set, string $mesh_object ) - please see the scripting documentation for more information.
  • fixed issues with strand mirroring.
  • fixed the behavior of strand hovering, if in isolate strands mode “hidden” strands won’t be drawn.
  • fixed bug in Instance node that caused deformed instances to flip if they extended past fibres origin plane.
  • fixed issues with scraggle node when applied to a converted guide strand.
  • fixed Groom to Nurbs Curve conversion.
  • removed double output to Yeti console when in batch mode.
  • fixed offset issue with deforming instances.

1.2.5

Additions

  • added console feedback when caching
  • updated logging to provide consistent output to Maya console and shell

Bugs Fixed

  • fixed renderman procedural parse error with negative frame offsets for samples
  • fixed clump issue caused by zero length input fibres
  • fixed linkage to resolve symbol clashes when rendering with MtoA

1.2.4

Additions

  • initial implementation of deformable instances.

Bugs Fixed

  • a fix to the 3delight output where in some instances the flush command is being passed a node other than a Yeti node.

1.2.3

Additions

Bugs Fixed

  • fixed u/v coordinate issues when referencing textures via <UDIM> tag.

1.2.2

Additions

  • added Length Handling parameter to Clumping, if set to Conform If Longer then the fibres will scale to never be longer than the input clumping fibres.
  • added a Maintain Length parameter to Clumping, the default is on which matches the historical look.
  • added -sampleTimes argument to pgYetiCommand -writeCache which can be used to provide explicit sample offsets for caching, see scripting reference more more details.
  • added -fileName argument to pgYetiRenderCommand -preRenderCache which can be used to provide an eplicit filename vs. using Yeti’s
  • added more documentation for pgYetiRenderCommand in Scripting Reference.
  • added -returnLicense argument to pgYetiCommand which forces Yeti to return the license it currently has checked out, be aware that if someone tries to check out a license while it’s returned you may be without a license next time you need to work.
  • optimized Instance node by removing all thread locking.
  • Texture Cache system is fully thread safe.
  • added initial support for <UDIM> tags in texture names.
  • added Display As Heat Map to Groom node to display paint values as a heat map.
  • instances correctly inherit PRMan subdivision tags and will render as Subdivision surfaces in PRMan.
  • added Minimum Width parameter to Width node, default is 0.00001f.
  • added Collision Friction to input collision mesh shapes in a Yeti Attributes section.

Bugs Fixed

  • fixed bug that caused Scatter node to ignore user attributes
  • removed rand reference from documentation
  • updated dynamics engine to make sure over sampled constraints were applied corrcetly
  • fixed prman chunked rib output which caused the first frame of every chuck to sample at -0.125
  • Scatter Multiplier now evaluated on a per fibre basis
  • fixed issue where the graph was being re-evaluated too often when the Graph Editor was opened/re-opened

1.2.1

Additions

  • updated documentation to include correct PATH settings for Windows
  • all cache writing and groom export commands resolve environment variables
  • added inherit attributes parameter to the Instance node which is a list of attributes to inherit from the source points/elements

Bugs Fixed

  • VRay instances inherit incoming user attributes
  • Group node would abort early due to thread unsafe kdTree bug which has been fixed
  • clumping correctly references Pref vs P which was affecting clumping around guide curves
  • bake root positions can be used on the Groom transform as well as the Groom shape

1.2 Final

Additions

  • VRay output prints number of fibres and meshes created when verbosity is > 1
  • Arnold output prints number of fibres and meshes created when verbosity is > 1
  • added Varying attribute support in Attribute node
  • added in app Help in both the Graph Editor window ( in the Help menu ) and on a per node basis. By default this will take the user to the on-line documentation unless YETI_DOCS is set to the docs directory of the local Yeti installation.
  • built against MtoA 0.21.0 and Arnold 4.0.11

Bugs Fixed

  • VRay DSO correctly defines UVW when outputing converted strands
  • fixed an issue with normal indicies not being defined correctly in the Arnold DSO
  • properly catch errors when setting sets for render layers
  • fixed a bug that caused surface propogation to be evaluated too many times
  • fixed a bug that caused a crash when a strands relationship to a surface couldn’t be determined

1.2 Beta 7

Additions

  • moved Relax Steps into a new Distribution tab for Scatter node
  • added Corrective Groom Handling parameter in Yeti Node->Corrective Grooming to control whether corrective grooming is applied or not

Bugs Fixed

  • fixed typo in Grow node which caused fur_id attribute to emit as fur_Id
  • Yeti won’t crash Maya if pgYetiCommand -writeCache is used when a non-Yeti node is selected
  • cache and groom file names now correctly expand environment variables
  • set length correctly interpolates very small lengths correctly
  • fixed crash bug when switching between two scenes and maya stays in the Yeti groom context
  • Yeti nodes correctly obey render layers in VRay and Mental Ray
  • fixed weighting for Guides when there are fewer guides than requested
  • fixed batch mode renderer confirmation
  • Yeti checks for invalid reference objects more aggressively
  • now using full path name for temporary output cache hash value
  • RPATH is correctly set to $ORIGIN on Linux
  • fixed issue where instance node would cause a crash if there wasn’t an object present in the second input

1.2 Beta 6

Additions

  • Yeti will check to make sure directories exist before attempting to write a cache and error out if not
  • removed Display Grooms and Display Guides from Yeti node

Bugs Fixed

  • refactored and improved mesh collision and closest point to improve accuracy
  • fixed issue which caused cache files to grow when GRM’s referenced
  • removed overly verbose feedback from ImageIO
  • guide curve rest position correctly integrated into 1.2.0

1.2 Beta 5

Additions

  • added Sample mode to Groom painting to be able to sample the attribute value
  • all node string parameters now resolve environment variables if defined with ${VAR} syntax
  • texture system resolves environment variables if defined with ${VAR} syntax in input names
  • added search path support to Image IO library, PG_IMAGE_PATH environment variable can be used to define a global search path. Multiple paths can be defined by using : on Unix ( and OSX ) and ; on Windows
  • added Image Search Path attribute to pgYetiMaya node which can be used to set the paths used to search for images ( textures ) when evaluating the graph, search paths defined by PG_IMAGE_PATH environment variable will take precedence over these
  • added -listTextures argument to pgYetiCommand which will list all textures used in a graph ( though it doesn’t check if they exist and/or the node actually fires )
  • inlined many strand system functions for compile time optimizations
  • added Maya 2013.5 build
  • upgraded to MtoA 0.20.0 and Arnold 4.10.2 ( Darwin users be aware that you need to export ass + kick vs. in maya previews at this time ), MTOA_EXTENSIONS should be used instead of MTOA_EXTENSIONS_PATH as there is a bug in MtoA 0.20.0 paths

Bugs Fixed

  • scatter automatically flips textures when used to control the density so they more appropriatly match mayas u/vs
  • arnold render correctly obeys Yeti world transforms
  • fixed bug causing a crash when a Yeti context hasn’t been removed correctly
  • fixed a significant bug where threads parameter wasn’t initialized nor making it into the vrscene file causing intermitent behavoir
  • refactored graph updates to help avoid threading race issues
  • fixed issue caused by mismatched sample counts between Yeti world matrices and local matrices for Arnold
  • fixed issue which caused strands to inadvertently change direction when increasing their length
  • fixed issue where sculpt mode direction was inverted when zoomed in close to a surface
  • YETI_INTERACTIVE_LICENSE variable works again on Windows
  • instance doesn’t crash when instancing to mesh points now
  • ImageIO EXR reader doesn’t crash with cropped images ( data window different than display window )
  • fixed multiple pgYetiInit sourcing in Yeti initialization which was causing scriptJobs and updateAE callbacks to live as zombie procs

1.2 Beta 4

Additions

Bugs Fixed

  • made sure missing icons were included with distribution

1.2 Beta 3

Additions

Bugs Fixed

  • the look was still different between 1.1.8 and 1.2.0 which has now been correctly fixed

1.2 Beta 2

Additions

  • initial Mental Ray implementation ( only fur at the moment )
  • reverted weighting scheme back to 1.1.8 style
  • optimized mesh GL drawing
  • optimized the use of face sets in Scatter node
  • added support for user attributes in VRay
  • temporary files and cache files that already exist are overwritten vs. appended by default
  • added affects strand parameter to groom which controls whether the affect from the stroke is applied to only the strands under the brush when combing starts ( default ) or through the whole stroke
  • arnold output now produces unique names in the Ass scene for duplicate Yeti nodes
  • textures can now be added before a scatter node on Imported geometry, if the Attribute in the Texture node matches the Groom/Texture Attribute in the scatter node the texture will control the density of the scatter

Bugs Fixed

  • fixed a bug that caused Yeti to crash in some instances when input geometry wasn’t found
  • graph IO nodes don’t try and autoconnect
  • tbb .so.2 libraries included in distribution
  • fixed vray export bug which was causing a recusion on graph evaluation, this little nasty hidden bug should hopefully stabilize threaded viewport issues
  • out of range samples handled within VRay correctly
  • fixed temp file output random value generation
  • fixed bug which caused extranious samples when fur cache generated from maya batch/py/command line
  • fixed Display Groom refresh in pgYetiMaya node

1.2 Beta 1

Additions

  • optimized KD tree search
  • updated weighting scheme for grooms to smooth out interpolation
  • Pixar dependencies are now PRMan 17 and RMS 4.0 ( though it’s likely backwards compatible )

Bugs Fixed

  • fixed crash in Arnold DSO when matrix parameter is missing.
  • fixed a bug which was causing corrective grooms to be applied multiple times during sub frame output.
  • resolved a fairly major memory leak introduced in the thread based DataBlocks
  • reimplemented drawing to avoid thread update issues
  • fixed bug that caused Comb not to work correctly on particles

1.2 Alpha 3

Additions

  • added mirror strands tool to Groom, if no strands selected all will be mirrored otherwise just selected strands will be mirrored
  • added Tiff support ( 8 and 32 bit ) for texture reading
  • renamed Save Rest Position to Bake Root Positions
  • moved Save Rest Position and Bake Root Positions to Yeti menu from Groom AE
  • added new Save Rest Position which bakes the current shape of the Groom into the base shape of the Groom ( ie. bake dynamic positions )
  • added support for Arnolds subdivision surface settings for instanced meshes ( inherited from mesh input )
  • nodes will automatically connect themselves to the first selected node when created
  • nodes will automatically be selected when created
  • added face index option to geometry attributes in Attribute node
  • improved brush dynamics for Sculpt mode
  • improved brush softness dynamics for all groom modes
  • input mesh will inherit 3delight geometric attribute PolyAsSubd on the Shape node ( not Attribute nodes )
  • added -updateViewport command line for -writeCache which can be used to control whether or not the viewport redraws when caching.
  • added Update Viewport option to I/O palette for caching

Bugs Fixed

  • texture node will complain if an unsupported image format vs. crashing
  • locked threaded evaluation to prevent redrawing issues
  • fixed bug causing Yeti to crash when turning IO mode to none after sourcing a cache file
  • Yeti node global transforms correctly applied to generated objects in Arnold DSO
  • bounding box is correctly evaluated when generating ribs/ass/vrscene files from the command line

1.2 Alpha 2

Additions

  • added detail type to attribute node
  • added displacement node
  • integrated OpenEXR
  • added texturing and texture caching framework
  • added texture node
  • added tabbed ui to node inspector
  • added evaluation mode to nodes to control evaluation for Always, display and render
  • added twist and twist variation to instance node
  • renderman dso outputs fibres in chunks to optimize memory usage with the size of chunks controllable, defaults to 2048 fibres
  • corrective grooming now supports blending of user attributes with the option to toggle between all, position and user attributes
  • added ability to paint corrective weights by adding a corrective_weight float attribute to a groom which modulates the overall weight
  • added number of samples control to pgYeti AE template
  • updated cache framework for automatic cache updates with texture changes
  • added flush texture cache command and Yeti menu item to forcefully flush the cache of the current selected Yeti node(s)
  • added reference node which allows the user to select a cache file to reference into the current graph
  • added geometric attribute creation on attribute node
  • added root p and ability to map attributes without needed to create an attribute
  • added tangent to the geometric attributes in Attribute node
  • added -convertToCurves command to convert Grooms to Nurbs Curves
  • added Convert To Curves menu item
  • added curve basis control to Attribute node
  • renamed pgYetiArnoldMaya to pgYetiArnoldMtoa to avoid confusion

Bugs Fixed

  • fixed issue causing the move tool to improperly update new abosolute position
  • smoothed node icon drawing in node view
  • removed file dialog filter
  • Exporting Groom now appends .grm when no extension is provided
  • changed Cache file dialog to type 0 to allow non existant cache file names to be typed in

1.2 Alpha 1

Additions

  • added thread safe random number generator
  • new custom timer
  • new thread based node evaluation architecture
  • threaded attribute, bend, blend, clumping, comb, direction, group, grow, guide, instance, scatter, scraggle, shader, transform, width
  • threaded simulation
  • instanced objects now inherit id from source point
  • threaded relax steps and refactored algorithm to converge on optimal result with less steps
  • added view menu to graph editor
  • added Display As Heat Map to color the evaluated nodes based on their execution time

Bugs Fixed

  • ignore works correctly when a node is expecting more than one input
  • direction correctly normalized when expression evaluated