SOPs
Attempting to fix a crash related to when you get "stuck" in selection mode in the sop-level edit tool and can't right-click to finish the selection. This fix won't prevent you from getting stuck, but it will hopefully fix the crash.
This page lists changes to Houdini since version 6.5.
You can view all changes in the Houdini journal at sidefx.com.
Attempting to fix a crash related to when you get "stuck" in selection mode in the sop-level edit tool and can't right-click to finish the selection. This fix won't prevent you from getting stuck, but it will hopefully fix the crash.
New example for the UV Transform SOP demonstrating how to use it to animate a soft transformation of the texture coordinates.
When mantra generates a deep shadow map, the surface shaders are now treated as if they were being called from shadow shaders. That is, the VEX function isshadowray() will return true.
IMG_DeepShadow can now be used to read the raw opacity data from a deep shadow file in addition to the existing write functionality.
Loading helpcards on certain Linux distributions no longer prints an error about loading the stylesheet.
New example for the Layer SOP demonstrating how to use it for multi-texturing.
The Group SOP will no longer leak memory when it bounds points by metaballs.
The RBD Point Object no longer crashes Houdini on Linux builds. The problem was with the ifs() expression not handling empty results, so this crash could have manifested itself outside of DOPs.
Can no longer select nodes in the light linker source and target trees which cannot be linked.
The RBD Point Object will now generate reasonable object names when you override the point instance attribute rather than creating no-named objects.
A primitive sphere textured using polar coordinates will no longer generate NANs as texture coordinates, but instead use default values: (0, 0.5, 0).
The Point Position DOP now has an option of whether you want to orient to the normal or not. Further, when it is set to orient to the normal, it matches the behaviour of the Copy SOP by preferring normals over velocities.
Can no longer select nodes in the light linker target tree when the source selection is empty.
Improved the behaviour of the Compositing option 'Reduce Cache Size when Inactive'. Now it waits a short period of time after a COP cooks before beginning to gradually reduce the COP cook cache to its Inactive size. Previously, it would clear the cache as soon as the cook was done. This tended to cause a lot of recooking, which made COPs feel pretty slow. This change will make COPs in Houdini feel much faster since cache hits will improve significantly.
Fixed a couple of small bugs with outputing images outside the valid frame range. First, if the user selects 'black' as the extend condition, then render black frames when outside the range - don't bail out of the render. Second, if the user renders a range of frames for a single still image, render the same image for all the frames - don't just render frame 1.
Made the VEX noise() function threadsafe, so it can be used correctly in multithreaded VEX COPs. This was also used by such VOPs as aanoise.
Mantra is a little more graceful in handling input stream errors. For example, if an ASCII geometry stream contains a NAN, the stream will typically throw an error. Mantra will attempt to recover from this error (displaying an appropriate warning message).
There is a new run-time optimizer for VEX available. This optimizer is turned on by setting the environment variable HOUDINI_VEX_OPTIMIZER to 1 (it must be 1 exactly, not 2 and 5 is right out). The new optimizer handles uber shaders much more efficiently than the existing optimizer. Scenes which make heavy use of uber shaders will render much more efficiently now (with less time spent in loading VEX code). The new optimizer also fixes several bugs, including, but not limited to: 5054 - error optimizing functions with multiple return points 9261 - Optimization of do/while loops 11151 - Extra read variables 11871 - Uniform/Varying issue 18876 - shimport() over-optimization 18855 - error optimizing functions with multiple return points 18749 - poor optimization w.r.t. getcomp() along with several uncovered bugs. After sufficient testing, this new optimizer will most likely be made the default.
Deep raster generation in mantra has been fixed when using primary ray tracing (mantra -r).
Fixed a bug that would cause the Bound SOP to crash if the group specified was empty or couldn't be cooked.
When copying and pasting keys in the dopesheet using option r (Replace), the effective range is now set to the larger of the selected range and the copied range.
Changing the trunc() expression and vex functions so they properly round toward 0. Previously, they had the same behaviour as the floor() function.
Added an option to the Main Preferences Miscellaneous page to control whether or not invisible parameters are affected by the Revert to Defaults operation.
The Color SOP will disable the color and seed parameters in the expected fashion.
The clip sop is more robust when faced with bridged polygons. It was possible for the clipping of a bridged polygon to lead to accessing deleted memory, and hence intermittant crashes.
New example for UVProject SOP demonstrating the various projection types.
Adding motion factor support to mantra. The motion factor is controlled by the ray_motionfactor <float> command which currently must be placed in the camera's pre-include. Motion factor adaptively adjusts the shading quality based on the amount of blurring of objects in the scene. A motion factor of 1 will decrease the shading rate by a factor of b/16 where b is the number of pixels of blurring. Motion factor cannot increase shading quality and it defaults to 0.
It is now easier to select the purple translate box at the center of handles instead of selecting the white axis translate arrows.
When copying and pasting in the dopesheet using option v (Paste), the selection range now snaps to the copy range.
Fixed a bug that can cause incorrect connection oredering when trying to replace a connection in VOPs.
Fixed a bug where mask parameters would not update exclusion tokens (those starting with '^') when nodes were renamed.
Fixed bug that would prevent bundles with Light filters that contain light HDAs from perperly rendering in the Active Lights field of certain ROPs.
Area light sampling has been modified to always use the number of samples specified, and never to undersample.
Fixed bug in the dopesheet. Stretch pasting now works properly.
Fixed bug in the Capture and CaptureProximity SOPs' Traverse Subnets parameter. When enabled, it would only traverse to the first object subnet and inside. If there are additional nodes as output of the first subnet, they are now no longer ignored.
Major speed improvements have been made to the Capture SOP.
Changed the range on the Roll parameter slider on objects to go from -360 to 360, and the Auto-Bank factor slider to go from -1 to 1.
Made a couple of changes to the Spare Parameter UI: - A confirmation dialog pops up when you delete it with the X button beside the spare parameter, to avoid accidental deletions. Hopefully this is a temporary measure until the X button can be replaced with a 'Remove Parameter' entry in the parameter menu. - Channel names are no longer forced to be lowercase (which is a Side Effects convention).
Fixed a bug which could cause the wrong Vopnet Mask to be used on VOPs that were defined in more than one installed OTL.
Cloth/particle collisions now work when the particle object is merged into the simulation before the cloth object.
Fixed HUD slider handles on Linux; they can now be used locked or unlocked.
Fixed bug that would prevent the Group SOP from performing boolean operations on empty groups.
Fixed some memory leaks that can occur when performing otload commands on the otl file multiple times in a row.
When converting point geometry to image3d files using i3dconvert, the point lattice resolution now correctly matches the resulting data resolution of the i3d file.
Added an environment variable, HOUDINI_ENABLE_OLD_PRESETS, which exposes the older 'Load from .preset file' and 'Save to .preset file' functions in the parameter dialog's preset menu.
Enabling "Delete Channels" on the RMB-menu for toggle and menu parameters.
The RBD Point Object now has the correct expression "points" rather than "chpoints", allowing it to work with animated geometry.
Added a Generate Scalar Noise toggle to the Noise Field DOP. This parameter forces the Noise Field to generate a single noise value rather than a separate noise value for each dimension.
Renamed the type of the Triangulate2D node, and renamed a few less-used channels (of them, the most important are: "remove outside edges" and "no new points on constraint"). Any existing files using this SOP will need to be updated to use the new node.
Fixed a bug in the Composite ROP which caused certain expressions entered into the Output Picture field to fail. Any expression which didn't have .formatextension as the last part of the string would fail.
Parm dialogs now allow the input/parm editors to have all the rest of the available space, instead of inserting blank space in between.
The "Collapse Outputs" operator menu entry no longer also collapses the node in question.
Fixed a crash with spare parameters that could occur if an obsolete parameter with the same name existed, and a channel was added to that spare parameter. Adding spare parameters or channels with the same name as an obsolete parameter is now not allowed. Also added some checks to prevent existing hip files that might have this situation from crashing.
Fixed a bug where the Create Digital Asset operation would sometimes display an error dialog even when the operation was successful.
The embedded spreadsheet in the light linker now has a helpful prompt message telling users how to select multiple cells.
In the object viewport's Edit Capture Regions tool, reselecting a bone no longer causes the underlying Capture SOP of the character to recook.
Installed new compositing example files for: - corner pin - color curve - geokey - geometry - hue curve - rotoshape (2) - sharpen - streak blur (3) - switch - tile - time warp
Fixed bugs with the embedded popnet dialog in the pop view state when the popnet in question was actually a Popnet SOP.
Disabling expiry warnings for HDK licenses.
Fixed a bug in the Display Data parameter of DOP Network nodes. Patterns that used "^" to exclude certain data from the display were not working properly.
Major revision of the Triangulate2D SOP's refinement algorithm. It should do a better job of enforcing angle and area constraints, particularly when there are small angles present in the input, and it should meet the requirements with less primitives/points added.
Fixed a bug that would cause Houdini to crash if the node being created was deleted by its creation script.
Added Degrees Of Freedom example to the RBD Constraint help card.
Added Simple Rotational Constraint example to the RBD Rotational Constraint help card.
Added Paddle Wheel example to the RBD Solver help card.
The addition of barycenter ghost points to polygons is only done when the polygons are planar and convex. This avoids the addition of points outside of the actual original geometry.
An example showing how to use the Turn POP to do simple collision avoidance.
Fixed bug where copy/pasting keys in the playbar's dopesheet did not maintain a consistent ordering.
Fixed a bug where the display of polygons in the viewport could end up using an obsolete tesselation for degenerate polygons.
Fixed the Edit Capture Weights tool where it would not work.
In the Capture SOP, loading capture override (.ocapt) with DOS style line endings is now accepted.
Fixed crash that could happen when pasting keys in the dopesheet.
Added a help card example file for demostrating the use of the Active Value DOP.
Added a help card example file for demostrating the use of the Affector DOP.
An example showing how to choreograph RBD breakup has been added to the help card for the RBD Glue Object.
Added help card example for the Cloth Solver in DOPs that demonstrates RBD and Cloth objects interacting with each other.
Houdini is now more robust when loading invalid desktop files.
The parent operation will no longer cause the network to jump to the selected parent node.
Quality of motion blur and depth of field has been improved in mantra.
The "nearest" and "nearestdist" attributes in POPs now default to -1 instead of 0. This is more consistent with other particle attributes and also with what the proximity pop sets when there is no nearest particle. In the case of the "nearest" attribute, the new default value also makes it possible to tell when the attribute has not been set even when the proximity POP is set to use point numbers instead of ids.
Fixed crash when playing back a sequence of simulation files using a File DOP with no other DOPs in the network.
Anywhere that a SOP node can be specified, it is now possible to specify DOP Geometry data. This now includes the Geometry ROP and all POPs that references SOPs. In all cases, a DOP Object can be specified (without specifying the path to the data on the object), and the Geometry data of that object will be used.
Using 'opparm -c ROP execute' in hscript will now render the ROP dependency network as it does in Houdini.
Added a simple example for the vertexsplit SOP.
Added a menu entry and a hotkey to clear the selection to the light linker spreadsheet. We now also distinguish the volatile select hotkey in this gadget from the one in the parameter spreadsheet.
Fixing a problem where the help browser could not communicate with Houdini when running in stand-alone mode.
Fixed bug where UVs and other point attributes were not correctly interpolated by Triangulate2D SOP.
Fixed bug that would cause bad triangle shapes and crashes in the Triangulate2D SOP when the "maximum area" parameter was used.
Made exported dialogs more robust when dealing with embedded switchers and when exporting parameters without exporting the containing switchers.
The hscript command viewls no longer includes inactive viewers unless the option -A is specified. Splitting panes now creates a pane of the same type as the pane being split from. Previously, split panes would be set to the default Networks Editor type.
Fixed a small bug with the building of the switchers in dialogs of the various export levels which was evident in the tool dialog for the fuse SOP.
Caching of expression results for display in the graph editor is now available through preferences / animation / enable channel cache. This is most useful when using expressions that reference SOPs that require the SOP to cook during expression evaluation.
The Pose Library now uses $POSE as its default home folder. Also, users can now use variables when specifying a folder path to jump to (i.e. $HOME/houdini8.0/poselib, $POSE/clips, $POSE/poses, etc.).
When performing Keep Position When Parenting in an object due to its input changing, we now follow channel references if we're inside a synchronized digital asset for the transform parameters.
The preference for "Use Collapsible Pixel Operations" has been corrected for spelling. Be aware that this has the side effect of losing the old setting for this preference.
Fixed crash that could cause VEX operators (eg. SOP) to crash when referencing geometry via the op: syntax.
Removed all the Frame Rate parms from generator COPs. Overriding the frame rate from the global was not working reliably anymore, and could lead to deadlocks.
Fixed bug where if the Trail SOP is told to calculate velocity and an error occurs in its input, the error won't clear again even if the problem in the input is fixed.
Adding support for user-contributed notes on the documentation pages.
Speeding up the addition of nodes via the opadd command.
Changing the icon on HDAs will now always work as expected. Previously, changing the icon from a vector type to an image would not reflect the change as the old vector icon section was not deleted.
Added a new cloth/volume collision model. The old models are still present, but are now called Fine and Foam; the new model is called Coarse. The Coarse model is faster than the Fine model, but less accurate, and doesn't deal well with pinching.
Fixed an occasional deadlock between mplay and Houdini if mplay was closed while a flipbook was still loading.
When trying to change the parameters on a camera that is locked in the viewport, Houdini will now make sure that the full transform can be written to before setting any of the parameters.
Fixed handles not being draggable immediately upon selection.
IPR state is now saved out to the .hip file with the ROP node it belongs to. This allows an IPR session to be extended across multiple invocations of Houdini. To allow temporary cache files to be retained across sessions, a new parameter "Destroy temporary cache files on exit" has been added to the mantra ROP to disable the automatic deletion of cache files.
Fixed a occasional rare crash when scaling or transforming images with a box filter.
The subdivision scheme for RenderMan can now be overridden by using the detail string attribute 'ri_subdivscheme'. If absent, this defaults to 'catmull-clark' as usual.
When calculate center of mass is turned on the object will not inherit the linear velocity from the implied change in pivot. Instead, its linear velocity will be left unchanged by the center of mass change.
Fixed bug where backtick expressions in the while command would not get expanded.
The Paint SOPs visualization should properly update when Reset All Changes is hit.
Merging a SOP containing a hand-built pCapt attribute with one containing a pCapt attribute built by the capturing process will no longer cause a crash.
Fixed bug where changes to the global frame range took effect immediately without requiring an Apply.
Fixed problem with child objects of subnets that might become time dependent even though their parent subnets were not.
Fixed a bug preventing the dragging of parameters from the tree in the parameter spreadsheet onto a take.
Mouse wheel events are now only sent to the window under the mouse. This was only an issue for Windows users.
Apprentice hides support for Abekas file format which requires a minimum resolution greater than supported by apprentice.
Rendering from apprentice correctly applies the watermark to each file format (including PNG).
Fixed cloth self-collision crashing bug that was introduced in 8.0.327.
Renamed the "Override Filename" save preferences to "Overwrite File".
Fixed a bug with the automatic promotion of still images to animated sequences when composited or merged with an animated sequence. The still image should be promoted to an animation of the global animation range, and then compared to the other animations. It was instead setting the output range of the COP to the global animation range, which was wrong if the other animated sequence went outside the global animation range.
Fixed minor bug where the display options dialog did not reflect changes in the Color Scheme set by the viewdisplay command.
Fixed bug that would prevent the RSL Vector Cast VOP from allowing casts from Color to Vector.
Fixed crash when editting CHOP channel data and modifying the tolerance.
Fixed pathological chop recooking during bundle parameter updates when adding or renaming lights as well, not just when deleting them.
Fixed problem with toNDC() function in VEX SOPs where using multi-thread cooking would cause it to return improper values.
The 'viewdisplay' command now has four more options to control the display of the viewport name, state name, camera name and camera mask. These settings will now also be saved with the hip file.
Exposing VOPNET_Node and VEX_VexResolver in the HDK. VOPNET_Node exposes VOP networks and VEX_VexResolver allows shader code to be resolved.
Fixed performance problems when deleting lights for specific networks which could cause CHOPs to recook multiple times.
Mantra procedurals have been changed to manage memory more efficiently when they are rendered with micropolygon rendering. User-defined procedurals should now make sure that the VRAY_Procedural::render method can be called multiple times throughout the duration of a render to recreate the geometry if necessary.
The Pixel Aspect Ratio is now correctly factored into the image size when using fragment shaders in mplay/COPs.
A ShapeMatching DOP has been added. This data, when applied to a particle object and given a rest shape geometry, will adjust the velocities of the particle system to try and achieve that rest shape. This allows the creation of simple softbody like effects.
Fixed bug that attempted to close an undo block when none was created after using the Paint SOP.
The space character is no longer a directory-separating character in HOUDINI_PATH and other places that we define path search strings. This allows one to specify directories with spaces in them.
Fixed a bug where we would clear the current scope when jumping from sops to objects or diving into an object subnet with the auto scoping of selected objects enabled. We now auto scope the channels of the currently selected objects in these situations.
Fixed bug where brushing geometry in the Edit or Morph tools would unnecessarily highlight the geometry in yellow.
Cells in the geomtry spreadsheet will now display newlines and tabs in string attributes the same way that input fields do.
Fixed bug where jumping between objects at the SOP level jumped to the OBJ level.
Fixed a bug where the opwire command would generate unnecessary dependencies between nodes.
Fixed two problems with the Render COP: 1) The data format wasn't being respected on the C and A planes 2) The automatic update function wasn't working.
Fixed a large number of problems in the irradiance cache causing inefficient or low-quality renders when the irradiance cache is turned on. Added a new option to the ray_irradiance IFD command to set the maximum screen-space distance between irradiance samples (-d), with a default value of 50 pixels.
Fixed bug where using the alias command for ctrl/shift/alt-function keys would not work.
When converting polygons to hulls, the first polygon will be used to set the primitive attributes of the new hull rather than leaving the attributes at the default values.
Fixed a bug where the "Polygon Overlapping" radio buttons in the Select pane menu of the viewer were tied to the wrong value.
Fixed a bug where the custom panel builder would not properly resize gadgets in the preview when either horizontal or vertical stretch was turned off.
Added support for the SELECT_{CTRL,ALT,SHIFT} environment variables so
that custom scripts can query the state of the modifier keys just like
object select scripts.
The commands set and setenv output a list that now includes the variables F, FF, T, FPS, NFRAMES, TEND, TLENGTH, TSTART, FSTART, FEND, RFSTART, RFEND, UNITLENGTH and UNITMASS at the beginning of the list.
Added ability to display multiple plane geometries for the SOP control and Null object. The 'Orientation' menu parameter will not function correctly for Null objects that have been created since build 275. A script has been created to upgrade these Null objects.
Fixed a crash when attempting to paste a gadget in the custom panel builder.
OPcustomize now allows aliasing an internal OP to a digital asset. This allows the removal of an internal OP and replacing it with a digital asset.
Entering an empty string in a float or int parm now returns the prior value.
Fixed bugs where handles were not properly hiding certain parts in the back, bottom, and left orthographics viewports.
In view-aligned mode and in ortho viewports when there is no rotation, scale and rotate handles no longer draw parts that would obscure the translator.
Turned on 'Xray' flag by default for the Null object. Also added a point to the origin making it easier to snap the Null object onto another object.
Added new 'Shaded Mode' parameter to the Null Object and SOP Control which allows toggling between wireframe mode and shaded mode for each op.
Changing a node's type will now preserve any take data for that node if "Keep Parameters" is specified. Parameter data can only be preserved if the parameter name, vector size and type match.
The Render COP now renders Deep Rasters from mantra properly. Previously, they were not rendered at all.
Bound the Ctrl+u hotkey to 'Enable LUT'.
Fixed bug where the polyknit state would generate two undo blocks instead of a single one.
Guide geometry memory usage is now considered when calculating the current memory usage of a DOP simulation. This more accurately reflects the actual amount of memory used by a simulation.
Fixed a precision problem that could cause the expression "$FF % 20 == 1" to return zero on frame 101 when used in DOPs. The $FF variable now always returns three decmial places of accuracy instead of five.
Fixed crash that could occur when removing an OTL if it contained operator types which had an explicitly set (but invalid) preferred library.
Doing a Change Type operation on an unlocked digital asset now works properly.
Fixed crash that could occur when doing a Change Type operation if the source node was deleted before hitting Accept.
Fixed the dopsave command so that it works properly from within hscript.
Greatly sped up load time for hip files containing VOP Networks with many Parameter VOP nodes.
When changing the name of a Parameter VOP, the parm ordering set up in the owner VOP Network is no longer lost.
Fixed problem with docked textport pane duplicating keyboard events. EG. pressing Alt-n caused two confirm dialogs on a modified hip file.
Fixed a bug in the SSE implementation of the screen compositing operation. This could be seen as tiling artifacts when using the screen operation.
Fixing a problem where Houdini would crash when sending large amounts of data back from openport to hcommand or back to the browser with RunHCommand().
Fixed problem with UVProject's Intialize button on cylindrical and toroidal projections.
Fixed bug in Pose Library where multiple parameters with no set keys were not being saved into a pose.
Updating the pane's menu bar after switching from the Parameters pane to any other pane.
Fixing the opchangetype command to report an error and exit if the node being changed contains a VOP Network that defines an operator type used outside the node being changed.
Using vertex or primitive index attributes as local variables in string field will no longer cause crashes.
When interactively selecting vertices for operations such as uvproject, uvfuse or uvtransform, we now support collapsing the selection string to an empty string when all the vertices are selected.
Re-enabled and improved group selection undo/redo in the channel editor.
Removed 1024 character limit on variables in hscript.
Fixed a crash when bypassing a ChannelCopy COP.
Removed the message that showed up in the console window while you typed a search query with unbalanced parentheses, unbalanced quotes, or other parsing problems.
Fixed some bugs with the uvproject's handles when working with a cylindrical projection. The UV Range Manipulator would incorrectly map the domain onto the cylinder. Moreover, both the UV Range and the UV Project Manipulators would generate warnings which would sometimes get picked up by the sop.
Fixing a problem with the hscript command inside tcl where it didn't handle commands with dollar signs in them.
The opparm command no longer allows the specification of a channel not belonging to that specific component as a value.
Fixed bug in Fractal SOP incorrectly handling point attributes whose default values were non-zero. Old hip files which were using the Fractal SOP with such point attributes will now have different results.
Fixed a bug with the Merge COP when scoping was used on the first input, which could cause some output planes to become corrupt if planes in the middle of the first input's list were scoped out.
COP handles now snap to the current COP's closest frame when fractional frames are used. This makes the handles more representative of the animation being performed, as COPs are inherently frame-based.
Added a new VEX shadowmap() function that samples a shadow map in a user specified sampling rectangle defined by 4 vectors.
Adding a new API to Houdini for generating deep shadow map files. The new API is found in the header IMG_DeepShadow.h. Also adds an example standalone program to the HDK for generating deep shadow maps from an I3D volume (i3ddsmgen).
Fixed a bug with collapsable pixel operations when a node in the middle has the Effect parm (Mask tab) set to something other than 1, and the operation doesn't fold the effect into the pixel equation (such as an Invert COP). Now, this will break the chain and force quantization at that node, making the chain evaluate correctly.
The RBD Object DOP now provides some simple default geometry to simplify the set up of start RBD simulations.
The remove shared edges toggle of the divide SOP no longer attempts to fuse points while considering edges shared. Edges are only shared if they share point numbers. The previous behaviour in the presence of shared point positions was to leave the boundary polygons intact, a uniformally undesirable result.
Fixed a crash with the Switch COP when a pending keyframe was added to a single key channel. The channel was not treated as time-dependent in this case, as it needed to be.
The mwrite hscript command has a new -n option. When given, it will not change the current session's hip file name to the path just written to.
The DOP list view now has the correct flags available.
The Shift Range VOP now properly has a four dimmensional value parameter for initializing the defaults.
The AttribCreate's menu parameters are once again integers due to backwards compatability problems with OTLs.
Revised the Vortex Force to support a general curve.
Cooking the InverseKin CHOP no longer invalidates the object transform cache for IK bone chains which contain non-bone objects.
The AttribCreate's menu parameters now use strings, as one expects, rather than integers.
The speed attribute is now updated after collisions.
Do not light the textured background images in the viewports.
Errors will now be reported on SHOPs if there are errors when evaluating parameters.
Now finding longest matching path when switching between subnets.
Cooking the InverseKin CHOP no longer invalidates the object transform cache for normal IK bone chains.
Fixed two bugs, one minor and one major, with saving/loading hip files in the master take. The minor bug is that the master take was not properly updated when saving to reflect any changes made to any values it tracked since the last time it had stored them. This was only a minor problem since the nodes saved to the hip file still contained the most recent values. The major bug, however, was that when a hip file was loaded in the master (hip) take, it would not correctly flag the active parameters and flags and would not record any changes to the master take until the user had switched to another take and switched back.
The HOUDINI_DSO_ERROR environment variable is now respected in Windows. This means that unless it is set, you will no longer get pop ups when the dsos fail to load.
Adding character picker and a pose/clib library tools. You can access the character picker by right-clicking on an asset. You can access the pose library from the Go menu in the help browser.
Fixed a bug where specifying the current take in the takeset command would clear the take inclusion state of nodes, flags and parameters.
takels -l no longer prints the memory usage. There is a new -m option to specify this.
The angvel expression will now return the angular velocity in degrees per second rather than radians per second.
The Angular Velocity of objects in DOPs is now specified in Degrees Per Second rather than Radians Per Second. To convert from radians to degrees, use the deg() expression.
The AttribComposite SOP can now composite point positions P and Pw.
Fixed problem with transforming object subnets via the Global Transform Handle when they are nested inside other object subnets.
Fixed incorrect determination of time dependency status on object subnets if their transform parameters were channel references.
Fixed bug where channels that had 2 keys but didn't animate would be incorrectly marked as time dependent, thus causing overcooking.
- Fixed bug that would prevent users from loading hip files with HDAs whose parameters were changed from integers to toggles. - Added the ability to save the locked state of string, menu and toggle paramaeters.
Fixed problem with IK bone chains might cause false infinite recursion in character rigs.
In the object-level Capture Geometry tool, we no longer set the selection to include the skin object as that makes it highlighted, hiding the weighting colouring.
Fixed crash which could occur when undoing the work of the object-level Mirror tool while it was still active.
The Fetch Object puts up a warning flag if the specified path cannot be found.
The light linker now follows channel references when changing masks.
Improved performance when attempting to follow channel references in parameters which do not contain a channel reference.
Tornado Force renamed to Vortex Force
The Join SOP no longer crashed when it is asked to join degenerate polygons.
The Skin SOP again works properly with MxN networks of NURBs curves.
Fixed an assert that would be triggered by multiparms if we first removed and then added instances.
The HDK star example has been updated to match changes to Houdini 8's help system. The sample code provides examples of how to provide either embedded or external help.
The Capture Metaball and Deform Metaball SOPs have been removed, because they aren't yet ready for use.
PolyExtrude's performance has been improved in general, and in particular when outputting side groups.
Fixed a bug where the target tree in the light linker would not properly update to reflect the new state of a node that is channel referencing a mask that has just been changed by the linker.
The oplocate and nbsize commands now perform boundary checks to make sure that a script doesn't attempt to set a node or network box location too far outside the safe zone of a network.
Added a Tornado Force.
The rgbtohsv VOP no longer has a missing trailing semicolon in the ctransform command.
The license manager will validate file permissions correctly if the "keys" directory does not exist, but it will be able to create it.
When accessing the last argument within an hscript script after using the shift command, it is now the empty string instead of accessing the variable in the parent script.
In the network editor for objects, the Xray and Origin flags are no longer shown for object subnets as they don't do anything.
Backtick expressions involving functions which require a channel or channel segment will now return 0 instead of a random number.
The Mirror tool in the Object Viewer now automatically uses the Create Mirror Null option if the Read-Only Pretransform preference is enabled. This is required for correct operation of the tool.
Implementation of ThinPlate/ThinPlate Collider is complete.
Fixed crash that could happen when quitting Houdini if a loaded .OTL file was externally modified.
Added new environment() function to vex that takes 4 vector arguments defining a sampling rectangle rather than a single vector. This function allows the environment map to be sampled without implicit derivative computation.
Adding new functions to vex to handle point and normal transformations. The new ptransform function transforms a point by a 4x4 matrix including translations. The ntransform function is added to complete the set: vtransform, ptransform, ntransform.
The IK handle on bones is now able to hide locked handle parts for the individual bone rotate handles.
The RBD solver will work better with objects whose orientation is fully constrained.
Fixed bug which had prevented "help -k" and "exhelp -k" from working with search patterns that contained uppercase letters. Note that the search is always case-insensitive.
Fixing a problem where -l in sesinetd.options wasn't working on linux.
Fixed an annoying bug where the operator tree control would detect that a node has been set as current in the network and also flag it as picked for good measure.
Added new 'urm' command to hscript. 'urm' unlinks a file on disk. It cannot remove directories.
Doing a better job of deciding whether the help browser's navigation controls should go on the left or on the bottom.
Fixed a bug where the uvproject SOP would also try to wrap the V coordinate if "Fix Boundary Seams" was on.
Some bug fixes for mutually affecting Cloth/RBD objects. For the moment, when merging cloth and RBD objects to set up mutual affectors, the RBD inputs must be left of the cloth inputs.
Fixed bug where primitive spheres, tubes and circles would not use the point or vertex alpha attributes when drawing.
Removed some spacing from the "All|Selected" and "Points|...|Detail" menus in the geometry spreadsheet. This fixes a bug where moving the mouse along the entries would cause the entry selection to jump temporarily.
Added new 'uls' and 'umkdir' commands to hscript. 'uls' lists the contents of a directory on disk. 'umkdir' creates a new directory on disk.
Improved performance in the geometry spreadsheet when limiting the view to selected points or primitives.
Loading .cmd files on the command line when the directory has a space in it now works.
The "opscript -b" hscript command will now show parameters in its opparm output if there are channel differences as opposed to juse value differences. This makes its output more consistent.
A crash in the generation of SDFs has been removed.
Fixed overcooking of operators in particular networks involving Switch SOPs that had channel references that were the same as an uncooked input.
A Popnet SOP which is wired into a Null will no longer recook from frame 0 every frame. It now properly only needs to cook the net-new frames.
A serious bug was fixed when ray-tracing sub-division surfaces which were displaced (or shaded) using vertex attributes.
You can now have an arbitrary number of layers with the Layer SOP. Previously, when one had over 16 layers with textures, there was the risk of crashes when displaying the geometry.
Hitting Apply or Accept in the Desktop... manager will now save the changes to disk regardless of the Desktop Autosave option. This matches the old default behaviour, allowing it to be used in the same fashion as before despite Desktop Autosave now defaulting to off.
The Read Basis button on the Basis SOP now works even if the Basis SOP is redflagged with an error.
The Edit SOP can now have the recompute normal option turned off and be saved in the .hip file.
Fixed crash that could occur when using the otcollapse hscript command on operators which belonged to bundles.
Fixed crash when opening a geometry spreadsheet with no geometry (introduced yesterday).
Convert SOP run on trimmed nurbs curves will now properly delete the original curves.
Fixed some substantial stability issues with the cloth simulator.
The stamp() expression function's first parameter now acts like a "scope" where it is an operator path to obtain the parameter value from. When a stamping operator (eg. Copy SOP) sets a param value, it sets it into itself and all parents.
Fixed the case where parameters changed through opparm reference following would not be correctly saved into an undo block.
Ctrl+MMB reverts parameter(s) to default in the scoped parameter list. In the name column the operation is performed on displayed channels if the parameter clicked on is displayed; otherwise, just the parameter clicked on is reverted. In the value column the operation is performed on the value selection if the parameter value clicked on is selected; otherwise, just the parameter clicked on is reverted.
Fixed crash that could occur when using the otversion version on COP OTLs.
Fixed a bug where it was possible for the geometry spreadsheet to access the wrong data when displaying the pCapt attribute if the viewer added an internal normal attribute after the spreadsheet had initialized.
Options winXY, winsize and winroll are taken into account in the function getNDCValues in OP_VexFunction.C
The refract() function was modified slightly. When total internal reflection occurs, the reflection ray is returned instead of a zero vector.
Fixed bug where the PreTransform CHOP would not inherit its input's sample rate and always use the global animation frame rate.
Fixed bug that could cause Houdini to crash when excluding a parameter for a take that has not yet been modified.
Added new Pose Library interface. The pose library allows users to capture and load character poses (using channel information) for the "current" node. Users can access the Pose Library by opening up hbrowser and then selecting "Pose Library" from the Go menu.
Fixed a small bug with tree views that could cause the first tree node to auto scroll out of the window when the vertical scroll bar was not necessary.
Greatly improved performance when opening or closing a geometry spreadsheet. For example, one test with 384047 points went from roughly 4.5 minutes to 0.04 seconds.
Added new Character Picker interface. The Character Picker allows users to create custom pick buttons for their digital assets. The pick buttons allow for easy selection on objects. Users can access the Character Picker by RMB-clicking on their digital asset in the network editor and selecting "Character Picker..." from the pop-up menu. Added new 'otcplayout' command to hscript. This command saves and loads the Character Picker layout for a digital asset.
Fixed bug where executing a line consisting entirely of a single backslash would never clear the "? " prompt in the textport.
Fixed a bug where it was possible for the modal state of the "Choose Operator:" dialog to be confused when the plus icon beside the "Representative" field in the "Operator Type Properties" dialog was pressed when the "Choose Operator:" dialog was already open as a non-modal dialog.
In the AttribComposite SOP, integer attributes are now correctly processed for all compositing operators and not just the mean operator. Also, a zero result is now returned when the mean operator is selected and the sum of the weights equals zero.
DOP nodes now display the input label when you middle click on the input button. For nodes that create data, this input label also lists all the expected subdata nodes that can be attached according to the dopdatahint commands in the dophints.cmd file.
DOP nodes for creating data now only provide as many data (green) inputs as are allowed based on the dopdatahint commands in the dophints.cmd file.
The Bones From Curve tool is now able to properly genrate bones on a Line SOP. The size of the capture regions is correctly set to be proportional to the bone length.
Fixed a bug where the popup help in spreadsheets would interfere with popup menus associated with that cell. In addition, fixed a small bug where the popup help would appear even in empty sections of the spreadsheet.
Adding a -q option to chls to suppress extra information with using the -a and -A options.
Channel group selection scopes channels in those groups. Keyboard navigation of groups, select all/none commands now work as well.
Added toggle button to channel editor and channel list panes for synchronizing group selection from scoped channels.
VEX operators with particularly long names will no longer crash Houdini when they are placed from the tab menu under Windows.
The IsoOffset SOP no longer crashes with Implicit SDFs and the build tetra mesh options.
Glancing collisions with high friction and bounce were causing the object to bounce back along the tangent. One would expect the effect of friction at the contact point would be nothing more than required to bring the object to a stand still there.
Fixing a problem where hscript wouldn't clean up the terminal settings when you pressed Ctrl+D on bash.
No extra CHOP operators are created when adding or removing curve kinematic solver to the bones in the Bones From Curve. If the number of bones increases, the existing CHOP is reused (instead of creating many new CHOPs). If the solver is removed from the bones, then the existing CHOP is automatically deleted.
Changed behaviour of cloth/volume collisions. Collisions now include the surface of the cloth triangles, not just the cloth points. The "volume offset" parameter should not be needed as often now.
Fixed bug where channel references would be not be preserved for menu and toggle parameters when users would change the parameter values through the parameter pane.
Fixed a bug in the parameter spreadsheet and parameter list where some of the RMB menu pasting options did not properly affect the selection. Specifically, the expression, reference, relative reference and channel pasting options did not work.
Fixed some bugs when pasting copied channels through the parameter dialog. Namely, it would not paste the channel into other selected nodes and it did not work properly with the take auto mode.
Fixed a bug that could cause Houdini to crash when using recursive inline functions.
Now sending a varchange when the FPS is changed via the Global Animation Options dialog, so that OPs recook.
Add support for vertex attributes in SOP_BrushBase::brushOpCallback() for HDK users.
Adding channels to a scoped or pinned group will scope or pin the added channels as well.
Fixed crash when selecting an object in the viewport that contained "oprm /obj/$OS" in its selection script.
Fixed a crash with expression syntax highlighting that could sometimes occur with heavily parenthesized expressions and functions.
Fixed a bug with channel referencing a spare parm, where deleting another spare parameter which causes it to move in the parm list would crash Houdini.
Improved handling of synchronized object assets in the Object Viewer's Mirror tool.
Fixed a bug in Transform, TransformAxis and SoftTransform SOPs where using
$GC{XYZ} variables wouldn't always be updated when the input changed.
Fixed extraneous cooking that could occur when an operator contains channel references to parameters within itself.
Fixed a recently introduced bug where most attribute labels in the geometry spreadsheet would contain garbage.
Added the ability to visualize metaball capture weights to the Capture Metaball SOP. Points are coloured based on their overall capture weight only; no per-metaball group weighting is done.
The parameter spreadsheet now adjusts the current selection whenever the contents are changed.
The RBD Solver now properly takes the constraint degrees of freedom from the goal anchor. This means the RBDConstraint OTL will work as intended.
Metaballs now return outward facing normals when intersectRay is used.
The scoped parameter list now provides independent selection of parameter values. Use Ctrl to toggle individual entries, Shift to range select, or press and hold Ctrl to paint select. Editing a value that is part of the selection, using the value RMB menu on such a value, or dragging and dropping onto a selected value will operate on all selected values. Ctrl-RMB menu options for selecting all (a or Ctrl-a) and select none have also been added.
The IsoOffset SOP has an option to write the intermediary SDF to disk, or to use a file on disk rather than regenerating the SDF. By using the extension .simdata, this is the same format which DOPs caches its SDFs, so one can inspect or create DOP SDFs from the SOP world.
Depth of field artifacts have been eliminated for Houdini8.
Fixed a bug with extend conditions (hold, cycle, mirror) not working on image sequences in mplay.
Fixed hanging problem when deleting channels which contained spline() or *match*() expression functions.
A change was made to the convexing algorithm used in the divide SOP. The divide SOP now behaves as mantra and OpenGL do when handling non-planar polygons. As well, some pathological cases for convexing are handled a little better.
Fixed problem with the DynamicBlend SOP erroring out when there was less inputs than blend parameters. This broke old hip files so we now warn instead.
opbop will now expand bundles when they are prefixed with @ (as already worked for groups)
Add the Capture Metaball and Deform Metaball SOPs. The Capture Metaball SOP captures the points in its first input to the groups of metaballs in its subsequent inputs. Per-point, it weights the groups according to the density of the point position with regard to metaballs within those groups. Which groups of metaballs are used for capture can be specified by the user. The Deform Metaball SOP currently takes as input the output of the Capture Metaball SOP; its subsequent inputs must be the same as the Capture Metaball SOP's subsequent inputs. For each point, the weighted transformations of the metaballs that point is captured to are used to transform it. Changing the weight of groups will allow one group to provide more influence than others, but per-metaball weight isn't user-specifiable.
The dihedral vex function now normalizes its input vectors before finding the dihedral matrix, to be consistent with the dihedral expression.
Background images now work in the IPR viewer.
Added -S option to opfind. As with -s, if -S is set, then only the current network (or the one network specified with the -p option) is searched. Unlike with -s, with -S the full path is output.
Fixed documentation bug in the Particle Shockwave Effects example where the clamp expression had an extra trailing close parenthesis which has been removed.
Fixing a bug in the origin() function to make sure the rotate translate, and scale values it returns will always give back the original matrix. Before, calling origin(identity matrix scaled by -1) would give t=[0 0 0], r=[-180 -180 0], s=[-1 -1 -1], instead of the proper t=[0 0 0], r=[0 0 0], s=[-1 -1 -1]. You can get the old behaviour by setting HOUDINI7_COMPATIBILITY.
Fixed bug where changing values in the parameter dialog would not change all selected nodes if some of them were hidden.
It is no longer possible to open the Type Properties dialog on certain operators where it is not applicable (such as "/obj"). Hitting Accept on this dialog could cause Houdini to crash in these cases.
Fixed consistency of the handling of missing frames in MPLAY especially for out of range frames.
RIBs generated with motion blur will now output the Basis call before the motion block.
The RBD solver now mixes the two bounce values of two objects by multiplying them. This has the effect that a bounce value of 1 means that the other object will control the bounciness. The old behaviour was minimum. This means the old default of 0.3 on each object will produce less bounciness than it used to. To get about the same amount of bounciness, change it to 0.55. The new default in RBD Object is 0.5.
Select mode in the scoped parameter list has been hidden and disabled. Users should use display mode exclusively, to manipulate multiple parameter values in the parameter list the value column will provide an independent selection (not yet available).
Null object can now display different geometries instead of just the traditional cross geometry. It contains a Control SOP instead of a File SOP.
'Save Operator Type' will no longer ignore the 'Save Defaults as Initial Parameters' option set on the operator.
Added new Control SOP. This SOP displays a selection between simple primitives (i.e. cross, box, circles, etc.).
The RBD Object now exposes the parameters to control the surface representation. This includes things like whether to triangulate the incoming geometry. The default density has also been changed to 1000 to match that of water in MKS units.
Houdini will now respect padding in numbers when using the "Increment Filename" saving options.
Fixed bug in the spline() expression function where we would not evaluate correctly on a pending channel.
Fixed a bug where loading a hip file saved in the non-master take would not properly update the take contents tree.
The parameter spreadsheet can now be populated by dragging a take from the take tree onto it.
Opacity culling has been improved. The quality should be significantly better than previous versions of mantra. As well, there should be performance improvements in general with deep layers of transparency.
Channels and groups may be dragged into the scoped parameters list to be appened to the scope. Note, the parameter value fields have their own drop context so the group/channel must be dragged somewhere else to have it scope (eg. name or pin column, or empty space).
Fixed a bug where the master take data was not saved for a locked OTL node when saving a hip file in another take. This bug was introduced when takes were modified to allow changing the contents of locked assets.
The Resample SOP and Convert Meta SOPs no longer have minimum stepsizes of 0.001.
The Basis SOP's Read Basis buttons once again work.
Fixed bug in the BlendShapes SOP that prevented the first input from being locked when difference mode was turned and the parameter for the first input's weight was deleted.
Fixed bug where the 2nd input in multi-input SOP was lost when its 1st input was re-connected and the 2nd input was a sub-network input. Also fixed a crash when reselecting the parent for a node in a subnet.
Fixed a small bug in the parmsheet tree view where turning off the filtered based culling could leave some tree nodes incorrectly selected.
Fixed problem where multi-input SOPs which share an Edit SOP as a common ancestor would fail to cook.
Fixed bug where we would unnecessarily recook SOPs that were downstream of locked subnets that had different render and display child SOPs.
Making glued RBD Objects will no longer crash on frame 2. This bug was introduced in 8.0.267.
Small optimization to querying miscellaneous colors.
Fixed a crash in mplay when 'Adapt Frame Range' was pressed while viewing a missing black frame.
Fixed a bug when applying display LUTs to images, when the LUT's domain/range was something other than 0,1.
Added support for the auto take mode to the following commands: chadd, chlock, chrm, chkey, chkeymv, chkeyrm, chrefit, chround, chstretch, chreverse
Fixed problem with cooking IK bone chains that have other intervening objects in between the bones.
PolyExtrude now supports local primitives variables.
Fixed bugs with not maintaining bundle memberships when extracting or collapsing subnets.
Fixed a crash with the auto take mode and the opparm command when following channel references.
The Edge Detect COP now produces proxy resolution results that are more similar to the full resolution results.
Fixed bug where CHOPs inside of synchronized HDAs exporting to a node within would not recook on reloading the hip file if the exports were changed via a top-level parameter.
Added new linker command to allow saving the light linker state to hip files and desktops.
Fixed a bug that would cause redit to crash when opening or saving a ramp file.
Fixed a small bug where the bundlelist command was generating a -t option but wouldn't recognize it.
The AttribCreate SOP once again allows you to refer to the new variable mapping inside the value field. This was broken in 8.0.218.
The "Mask Lights" object state now has subnet support when linking reflection masks.
Fixed a bug that prevented exported handles in Object-level OTLs from following along when their parameters are animated.
Fixed a bug with rendering ROP subnets as single nodes -- they would previously continue to render all of their inputs.
Implemented the Initial State parameter on DOP Networks. This is the name of a file that is loaded at the first timestep of a simulation. When this file is specified, the DOP Network is not processed on the first timestep.
Added the dopsave command to save the state of a DOP Network simulation to a file. Added a RMB menu option to the root of the Simulation Details View to do this as well.
The light linker target tree is no longer in readonly mode by default. In addition, the icon for this option has been changed to a more familiar lock.
The light linker now supports for subnets of reflection objects when linking reflection masks.
The viewcamera command now correctly outputs the full path of a camera. As a result, saving hip files with viewports pointing to cameras not located in /obj will now load correctly.
Fixed a series of bugs with Save Preview. The most serious was a crash, but gamma & LUTs didn't work, nor did fragment shaders when rendering offscreen. Save Preview now works as advertised again.
The $CH local variable now also works in non-animatable parameters.
Fixed a bug that was introduced with the fix for bug 16394 where non-subnet networks specified in a mask field with a light filter (example: lightmask) would automatically include their contents if there were 1024 or fewer lights in the scene.
String attributes are now fully qualified with the "string" type when output to the RIB stream.
The Apply button in the Global Animation Options dialog will now update the global frame range even if the range is only shifted (rather than shrunk or stretched), and will send a varchange so that COPs recook when the range changes.
Two new modes have been added to the minmax pixel filter: The ocover mode will determine which object has the greatest coverage in a pixel and box filter only its samples. This can be used for deep raster filtering to get the "most important" channel information. The "edge" mode will act as a box filter, except at geometric edges. At edges, only samples which hit an object will be filtered to produce the result. With both of these filters, anti-aliasing effectiveness is sacrificed for selective filtering.
Fixed a bug where dragging multiple nodes onto a take in the take tree would only include one of the nodes flags. Moreover, dropping an object node onto a take no longer includes the bypass or render flag.
New instances of PolyExtrude will have the Orient Edges option turned on, using a creation script. Files saved with earlier versions of Houdini will have this option turned off by default to maintain backwards compatibility. Future versions of Houdini may have this option turned on by default.
The scoped parameters list is now split into two sections. The first section includes all channels scoped because they are in a selected group. The second section includes any other channels that are not in a selected group.
Added two small improvements to the Scale COP. 1) When connecting or disconnecting a 2nd input, the scale mode is changed from its single input mode to its corresponding two input mode (ie, Scale Fraction -> Scale to Fraction of 2nd Input). 2) Split the Filter parm into two parms - Upscale filter and Downscale filter. This is mostly to set better default values for the filters.
Fixed a memory leak with uncached image sequences when software emulation was used.
Toolbar changes to make the Desk and Take menus behave consistently. Both now consist of a label with an adjacent popdown menu and are separate from the other normal menu items. Finally, the take menu replaces the old current take indicator in the toolbar and a new "Auto Take" button replaces the old color change of that indicator. I also changed the color of the Always|Changes|Never and Update buttons to match the new gadgets.
The Group SOP can now take a point group in the Edges method from which to grow a selection based on edge distance.
Fixed two issues with the COP viewport layout. First, maximizing a viewport with multiple viewports was not removing the other viewports. Second, sometimes viewports were not being added when more than one COP was shift+clicked to be displayed.
Channel groups in the channel editor group tree show pending key status. If all channels in a group have pending changes the key icon turns a bright orange, if only some channels in a group have pending changes the icon is a darker orange. Also, the key icon is now only used to add keys. Keys may also be set on the selected scoped channels through the context menu for the scoped parameters list or the associated shortcut key Ctrl-k.
Some small ui changes to the light linker pane, including a move of two buttons from the main toolbar into the toolbar of the relevant tree.
The "Mask Lights" state now renders any target nodes linked to the currently selected source nodes with a dotted wireframe highlight to aid the user.
The math behind computing crop regions in mantra was improved so that registration should be guaranteed between two images with abutting crop regions.
Fixed bug in the light linker where it was still possible to brush select in the target tree even when the selection was flagged as readonly.
The mantra ROP now has a parameter for choosing the main plane's quantization levels.
Added menu option to the light linker pane to control whether the target tree is automatically expanded to show linked nodes when the selection in the source tree changes.
Fixed a bug that prevented Houdini from generating the correct number of uniform attributes for RenderMan on RiCurve primitives.
Fixed a bug that would cause the Edge Depth option on the Group SOP to select points on primitives that are not of the specified type.
Added Pre-Frame and Pre-World include parameters to RenderMan ROP. Their contents are output before FrameBegin and WorldBegin respectively in the RIB stream.
hscript will now understand the colorswatch command and won't give an error when loading in hip files that contain this command.
Display column in Channel Editor's scoped parameter list changed to parameter pinning column. Display mode is default mode for the parameter list. Added parameter display toggle shortcut. Parameter operations that worked on selected parameters now also work on displayed parameters in display mode. Menus in channel editor change based on parameter list mode to correctly indicate operation scope (eg. works on dislpayed or selected).
Renamed "Link Editor" to "Light Linker" in the interface.
The "Mask Lights" state now supports subnets when modifying a mask.
The IFD commands for specifying deep rasters have changed. The new set of commands allow for arbitrary properties to be set on each deep raster plane. In other words, each plane can now have an individual - Pixel filter - Sample filter - Dithering level - Quantization target - White point - Gamma value These parameters are now exposed in the mantra output driver. The sample filter is a new concept. This specifies how samples are composited before being passed to the pixel filter. Currently, samples may be composited using Of (i.e. standard compositing) or only the closest surface may be chosen (previous method for compositing deep rasters). A new pixel filter is also introduced. The "minmax" filter will scan all samples within the pixel, extracting either the sample which is nearest or farthest from the camera. Only the single nearest or farthest pixel value is used. At the current time, there is no capability present to mimic the previous "maximum coverage area" sample filtering (i.e. taking the surface which covers most of the pixel and use that value only). Per-plane format overrides have been removed. In addition, the number of deep planes is now a multi-lister (meaning that the hard coded limit of 20 deep rasters has been removed).
The link editor now also supports selecting of subnets in the source tree when the mask belongs to the target nodes.
Enabling threaded UI in Linux. This means that, when Houdini is computing something, a dialog will no longer pop up asking you if you want to interrupt Houdini. Instead, you can press escape in the main Houdini window, and the main window will display the progress and show an hourglass. This change is especially important for dops, because each frame of the simulation often popped up an interrupt dialog and many window managers steal the input focus when a window pops up, annoying you if you're trying work on something else while generating a simulation. Unfortunately, wacom tablet support is not compatible with threaded UI. So, to use a wacom tablet on Linux you now have to set the HOUDINI_ENABLE_TABLET environment variable to 1. Enabling wacom tablet support will disable threaded UI. For now, HOUDINI_ENABLE_TABLET's default value will be 1 so we can do more testing on different machines.
Update geometry inside bones to use a single new BoneLink SOP. This saves considerable memory for production character rigs. It's also slightly faster now to create long bone chains in the Bones tool. In order to have only 2 SOPs (BoneLink + CaptureRegion) inside a Bone object, and to support turning on/off of their rendering, we now have a Renderable parameter in Bone objects which says whether the bone will be rendered (to mantra/prman/etc).
Added an object level "Mask Lights" state. Does not yet support subnets.
Fixed a small bug that was triggering an assert when attempting to do a box pick at the object level with one of the dimensions being zero.
Rendering Aux variables sent to deepraster images will now correctly maintain their order as specified in the ROP.
VEX can now handle integer parameters with values larger than 1 million (1e6) properly.
Added some sample code to the OBJ_Shake.C HDK example for how to hide existing parameters.
Changed the Merge DOP to have a menu for choosing what sort of affector relationship to set up between input objects. This now makes it possible to use a Merge DOP to create a mutual affector relationship between all input objects.
The DOP SOP Solver has changed considerably. The DOP Solver SOP is no longer required in the SOP network. Instead, stamp and stamps expressions should be used in the SOP Network to fetch the appropriate geometry from DOPs using an Object Merge SOP.
DOP Constraints have been revised considerably. Rather than Pin, Nail, Stitch, and Glue constraints, the main constraints are now RBD Constraint, Cloth Constraint, Cloth Stitch Constraint, and Wire Glue Constraint. By customizing each constraint to the type of object it is meant to work with, the constraints have been simplified somewhat. RBD and Cloth constraints now have handles associated with them.
In addition to the stamp expression, a new stamps expression has been added which behaves just like stamp except it is used to retrieve stamped string parameters. Currently only the SOP Solver DOP and Copy Data DOP can create stamped string parameters.
Added two new expressions, pointpattern and seampoints. The former returns
a string containing all the points represented by the input pattern which
can include numeric ranges ("1-10") and point group names. The seampoints
expression returns a string of all points with cloth seam attributes,
ordered to allow the current points to be stitched to the goal points.
Fixed the InverseKin CHOP's ability to control bone chains which contained non-bone objects within.
Minimizing/Maximizing network boxes will now hold the top right corner in place.
The imdisplay program has been extended to allow reading of deep raster data. The interface to write deep raster images is covered in $HFS/support/public/tomdisplay/README.html
Fixed a bug where being in the non-master take would corrupt the code generated from VOP networks.
Channel groups will scope when selected in the channel editor. Undo/redo support for channel group selection was also added. Currently group scoping applies to all scoped channels, this will be changed with RFE 18381.
In the RenderMan ROP, we now output AttributeBegin/AttributeEnd pairs
in the RIB stream around shading groups which have a matching RIB hack.
The format is:
AttributeBegin # { <attrib_name> <attrib_value>
AttributeEnd # } <attrib_name> <attrib_value>
Note that if <attrib_value> contains spaces, then it will be appropriately
double quoted and escaped as necessary.
This has two advantages:
1. If the RIB hack outputs attribute values such as motionfactor, they
will only affect the shading group around which the RIB hack was
executed.
2. This allows easy RIB filtering to discard specific shading groups.
The Visibility SOP now has the option to set visibility in all viewports at once. The selector toolbox also has three new options to quickly hide or expose selections in all viewports.
The Link Editor can now export the current node in the source tree as the view camera to any linked viewers.
The previously removed optimization for renaming nodes has been reinstated without breaking the Joint handle.
Rather than doing collision dectection internally, RBD Solver now expects an external Collider.
Previous optimization to renaming nodes accidentally broke the updating of bones in the joint handle. The optimization has now been removed.
Fixed bug with updating assets when the new operator definition has parameter defaults that are now expressions.
Reworked channel editor group and channel list RMB and CTRL+RMB menus. Specifically: clarity in menu labels, improved context of menu items, and working with channel list selections.
By default, the take auto mode no longer allows changing the contents of locked assets. There is a new preference to change this behaviour.
Added option to UVEdit SOP to "Sew Vertices with Shared Points" which will sew vertex UV's for vertices that share the same point in a set of selected edges.
Fixed a bug that would cause point light handles to orient the point light to face the invisible target handle.
Restricting the maxarea parameter to be >= 0.0001 in the Triangulate2D sop.
Added a pane menu entry to the Parameter Spreadsheet to load the current scope.
Added a third input to Channel Copy, so that it is easier to copy 3 channels from different inputs to a single color.
Added Levels COP. This COP is inspired by the Adjust Levels feature of image manipulation packages. Although similar to a gamma COP surrounded by colormap COPs, the way it allows combining global and component adjustments produces a different effect. The Levels COP adds sliders to the histogram view. The top row of sliders control the input black point, mid point (gamma) and white point, while the bottom row control the output black and white points.
Fixed a bug and a minor memory leak in the chopscope command. Previously, we would fail to reuse a viewer for multiple chops in the same network if the viewer was either a newly opened floating pane or one that was previously viewing another chop network.
Fixed a bug in the parameter spreadsheet and parameter list gadgets where attempting to scope the selected parameters would only scope the current parameter.
Added pane menus to the parameter spreadsheet.
Fixed bugs where tearing off a Bundle List or Link Editor pane would result in a blank and disabled path gadget with grey navigator controls.
The merge SOP will now display a warning if the inputs have mis-matched attributes. This gives a hint that some attributes may have un-expected values. For example, if one input has point normals, and a second input doesn't have point normals, the warning will be a hint that the normals of the second input might not be correct.
Adding $HFS/toolkit/bin to the path on unix in houdini_setup and houdini_setup_bash to make it easier to use the HDK.
Fixed a bug that could cause RSL VOP to generate incorrect code when creating OTLs with uniform parameters.
Added Reflection Mask support to the Link Editor.
Added a working but *incomplete* version of Tornado force.
Fixed bug where if the chop unexport dialog pops up during the running of hscript commands via a "java -w" applet, then it would cause Houdini to go into a permanent exclusive state.
Renamed some of the nail and pin constraint's parameters related to "two-state" and "degrees of freedom" parameters. Existing hip files using those options may need to be updated.
Fixing a problem where the license administrator wouldn't let you log in to retrieve licenses.
Added initial support for RenderMan 12.5. The Geometry objects have several new parameters in their Shader/RIB tab which allows fine grain control over the visibility attributes introduced in RenderMan 12.5. As a result, the ri_photonmask and ri_reflectmask parameters, which previously controlled the objects visible to ray tracing/photons, have been removed from the RenderMan ROP.
Added menu item "Unscope Selected" to channel editor parameter pane's ctrl+rmb menu which unscopes parameters that are selected but not pinned.
Added context sensitive popup help to the textport. This will popup help tags for command completion, path/channel completion and simple command help (like which options the command has). You can select the completion to auto-complete the word. If the tip is showing 'Help: opparm ...', clicking the tip will bring up the help browser with the command's help.
Fixed a small bug in concentric ramps that would sometimes cause the corner pixels to begin repeating the next cycle of the ramp. This made them look like stray pixels.
When rendering with mantra to mplay, there is now an option to specify the tile rendering order. The order can be specified as: middle - Default (start in middle and allow interactive rendering) top - Tiles are rendered from top to bottom bottom - Tiles are rendered from bottom to top In some cases, it's desirable to render tiles in the same order they will be rendered to disk. This option allows this behaviour. See the format options for "ip" in the output driver.
Added helpcard documentation for Magnet Force. Updated the naming convention in Drag Force helpcard.
Made the PreTransform CHOP smarter so that it no longer recooks if the source pretransform has not changed.
Dragging operator nodes onto a group or bundle tree node in the Link Editor will now add those operator nodes to that group or bundle. In addition, group and bundle tree nodes now have an icon.
Added Magnet Force. Fixed a naming convention.
Dragging a node from a contained subnetwork onto a group no longer brings up a menu for adding the node to the group. (nodes cannot be added to a group from another network)
The channel editor properties "Show Display Flags" and "Select Mode" are both now on by default.
The PolyExtrude SOP's viewport handle now works again.
The menu option "select / select entire subnet" is now off by default. The preferences file ~/houdini8.0/houdini.pref contains an overriding setting.
Implemented the selection toolbars in the Link Editor. Also added a label to the toolbars. Specifying a mask of "@bundle1" will match the contents of bundle1. To match the bundle itself, a mask of "@@bundle1" must be used.
Added make planar option to SOP Facet to make selected primitives planar. The primitives are processed in the order provided, and are not allowed to previously processed primitives when transformed.
The options on the POP Solver and Cloth Solver to feedback to RBD object has been removed. Instead, to get feedback, make the RBD and POP/Cloth objects mutual affectors.
Impact information on DOP objects is now stored only in data named Impacts or Feedback. This simplifies things a great deal as it means extracting impact information does not require figuring out the right path to the impact data, which used to vary from solver to solver.
Keyboard selection of points preserves selection order.
Operator tree choosers that are launched from a parameter's '+' button (e.g. bundle chooser or operator chooser) now respect the hidden state of operators.
When entering string parameters via the Parameter Pane, we longer have a 8192 character limitation.
Adding an objpretransform() function to complement the objpretransform command.
Added option for oriented bounding box in Box SOP when used as bounding box for input geometry.
Added Shear parameter in the following SOPs: Edit, Transform, SoftTransform, UVEdit, UVTransform, Primitive, Duplicate, and Copy. This allows non-uniform scaling about rotated axes.
The Stitch Constraint has been revised. The data input on the constraint can now be used to attach another constraint. The parameters for object name, goal object name, and goal object geometry have been removed, but the same effect can be achieved by modifying the attached constraint.
Fixed bug in edge lopp hotkeys for UV Pelt SOP which prevented users from accessing the features from the RMB menu.
The opparm command can now be used in OTL On Loaded event scripts.
The arrow bundle menu in the Parameter Spreadsheet pane now displays "No bundles defined" if there are no bundles.
Fixed a small bug where a non-default foreground colour for a tree node would afterwards use black as the default foreground colour instead of restoring the previous foreground colour.
Added undo support to the Link Editor.
3D LUTs no longer corrupt the alpha on normal RGBA images in software mode.
The Data is Temporary parameter has been removed from all Data DOPs. Instead, if the Activation parameter goes to zero, the data associated with the DOP is removed.
Several DOP object creation assets (such as RBD Object, Cloth Object, and others) no longer have a data input on them.
The foam solver has been removed from the RBD solver DOP.
Fixed bug that caused UV Edit's Ignore UV Connectivity toggle to not behave as expected.
Added LUTs and gamma to the Render state. This is done using fragment shaders, if the video card supports them, otherwise they are applied by the CPU. Both the LUT and gamma have their own parm in the state toolbox. They can also be set globally via the 'Color->Settings' dialog (Correction tab).
Added UT_FileMonitor to monitor any change to a file on the disk. Extra flags have been added to geocache to allow monitoring.
LUTs are now applied to the same planes as gamma, as defined by the Display Options 'Color Correct Planes' (previously 'Gamma Correct Planes'). By default, only C (color) is corrected.
The link editor now attempts to simplify the mask string after modifying it.
Shock Propogation is now spelled properly: Shock Propagation. This means the channel name is now "shockpropagation" so if custom values have been set they need to be set again.
Improved performance of setting up the light-geometry associations in the viewer.
The GroupCopy and GroupTransfer SOPs now preserve group orderedness.
The raytrace() VOP had a bad default value for the maximum contribution. The default was changed from 0.005 to 1.
Clicking on the current node will no longer trigger an inplace edit of the operator name in the link editor pane.
The trees in the link editor pane no longer contain non-empty groups or bundles whose contents are entirely filtered out.
Fixed bug with chkeymv when moving ranges that included all the keys of the channel.
The link editor pane now has separate "Link Type" and "Mode" menus rather than a single menu. In addition, we're now more explicit in the "Link Type" menu by referring to the Light or Shadow Mask.
Fixing a problem where Houdini is unable to connect to hserver when the system's hostname is not resolvable in DNS. This should make it easier to set up Houdini to work on a machine configured with DHCP.
The "No Filtering" entry is now always the first entry in the bundle filter menu.
Fixed instability in cloth stretch/shear damping forces (only affects the "optimal" damping model used by the "optimal" force model)
Implemented some missing operations in the Link Editor for shadow linking.
The Link Editor uses shorter node paths where appropriate.
Fixed the infinite recursion cook problem when Export CHOP and Edit SOP were intermixed.
Mplay and the COPs viewer now have an info button in the bar above the viewer. This displays the OP info in COPs, and information about the image sequence in Mplay.
- Fixed the laggy pan/zoom which occurred when a heavy fragment shader was used. - Gamma and LUTs are only applied in unpremultiplied space when transparency is on.
Added new support for RenderMan RiCurve primitives. There are now three new detail attributes that can be set to control the output of open polys to RenderMan: "ri_curveinterpolation", "ri_curvebasis" and "ri_curvestep". "ri_curveinterpolation" should be set to either "linear" or "cubic". "ri_curvebasis" can be set to any standard RenderMan basis or a custom basis matrix. When "ri_curvestep" is omitted, the value in "ri_curvebasis" is used to determine the correct step size if possible. The RiCurve Basis parameter (renamed RiCurve Interpolation) in the RenderMan ROP is obsolete and may be removed from future versions. The environment variables HOUDINI_RMAN_CURVE_STEP and HOUDINI_RMAN_CURVE_BASIS are also obsolete and may be removed from future versions.
Panning and zooming in mplay with fragment shaders enabled no longer causes the image to lag behind the mouse. Only the latest mouse position is used, resulting in much snappier panning and zooming.
The POP Solver in DOPs is now ready for use. To use this solver, just feed a POP Object into a POP Setup, and point the POP Setup node to a POP Node or POP Network.
The Bounce and Friction values read by the RBD Solver are now clamped from below at 0. This prevents meaningless values causing the simulation to explode.
Fixed bug where nested if statements inside a false branch would have their backquoted expressions in the conditional be evaluated.
The SphereTree and SphereEdgeTree representations of RBD objects now have parameters. These allow one to specify that objects should be polygonized or that the barycenters of faces should be included in the point/edge cloud. These options are on by default, meaning that primitives spheres and default boxes should now behave more like one would expect.
Renaming an operator is now faster than before.
Adding a -L option to the opparm command to list the user-friendly name of a parameter.
RBD objects now behave properly when pinned to other currently solving RBD objects.
Fixed problem with Edit SOP not recomputing normals in Sculpt mode. Instead of two separate parameters for doing this in the Transform and Peak parameter pages, we now have a single one for all possible modes.
The Align SOP will no longer crash in some cases when the auxillary input was used and guide geometry was turned on.
Added texture/fragment shader capability to mplay. It improves performance by doing gamma, LUTs, brightness and component selection using fragment shaders. This is automatically detected, but you may wish to delete your mplay.prefs and compdisplay.prefs to so that all the hardware features are enabled.
AttribCreate SOP now reads the local variable values from the incoming geometry, not its own geometry. Normalizing vectors in place can now be performed.
Added dopallfields expression function to list all the field names that can be passed to the dopfield expression.
DOP subnet digital assets can now use object-specific local variables. The value of these variables is evaluated by the node that is referencing the subnet parameter.
Added a new "Link Editor" pane for viewing and manipulating light and shadow masks. This is a work in progress.
Fixed a bug that prevented nodes with separators and labels in their parameters from having their parms correctly recreated by the Type Properties dialog when they are dropped in it.
The -m -F options in opglob will now disallow invalid filter types. The documentation has also been corrected for the list of valid filter types.
Setting up a recursive glue hierarchy no longer crashes. Instead, the hierarchy is broken so as to keep it a DAG.
The RBD Object now has the SDF building parameters promoted to its Volume tab.
Folders in OTLs can now be done with either the tradional tabs or with a single menu, containing all the folders as items. A menu folder is more efficient for large numbers of folders, or long folder names. The look can be changed by changing the 'Folder Look' to 'Menu' in the Folder parameter settings in the Type Properties->Parameter page.
Fixed a bug with the Parm Expression popup tips positioning themselves in the lower left corner of the Houdini window if triggered when a helptip was already shown.
When adding to the bundle the operators that are selected in the tree (in the bundle pane), and some of the selected operators are not visible in the tree (i.e., their parents are not expanded), then we display a warning about this situation.
Fixed bug that would prevent the user from writing a node into the first input of an Export CHOP when an input already exists.
Fixed ASCII .lut file reading, which was always failing.
Fixed the Add Spare Parm menu, which was always adding float parms, regardless of the type actually picked.
Corrected HDK examples in $HFS/toolkit/bin/sample/GR so that they compile again.
Fixed bug that could prevent PolyExtrude from correctly computing local spaces on small geometry.
Fixed crash when rbd object is wired into a cloth solver.
Fixed bug with cloth simulator and position information where the position information affected the cloth Geometry, but not constraints using the InputGeometry.
Fixed a bug with the Expression Editor where if the user closes the window without using the Close button, old references will be re-used.
Fixed bug in point loop selector where undoing would loose the direction of point loops.
Minor improvements to memory usage when loading operators.
Changed the label for the filter menu to "Op Filter" in the parameter spreadsheet.
Fixing crash that could occur when deleting nodes (SOPs, Objects, etc) that were being referenced by a DOP Network.
Fixing home operation when viewing inside a DOP Network.
The DOP Affector Matrix display now has Object Names on by default. It also does a better job of preserving column widths and scroll positions when changing the current time.
The 'Set Valid Frame Range' parameter in ROPs has been changed from a toggle to a menu, to be a little more descriptive of what it is actually doing. The menu items for 'Valid Frame Range' are 'Render any Frame', 'Render Frame Range', and 'Render Frame Range Only (strict)'. The difference between the two Frame Range items is that the first will allow frames to be rendered outside its frame range, whereas the second strictly enforces the range, and does not (useful for texture loops and other cycles). The Render Control dialog also has a toggle to disable all the overrides, and a reset button to clear them all. The override parameters are also more clearly marked as overrides, to avoid any confusion with the node parameters.
The Merge COP now has a scope parm for each input, which allows planes to be selectively picked from each plane.
The operator mask field in the parameter spreadsheet no longer automatically includes subnet contents.
Polished off the Parm Dialog titlebar a little more. The Presets icon has been replaced by a Presets drop down menu, since I couldn't find an icon that would adequately describe the term. The Presets menu has been rearranged a little bit, and the 'Save as Permanent Defaults' item added. The |< and >| 'step to key' buttons also highlight when the mouse is over them.
Fixed a small bug in the parameter spreadsheet where it was attempting to access a bit array out of bounds while modifying multiple selected parameters.
Fixed bug that was causing scripted OP parms without menus to write out menus.
Many DOP nodes were renamed, as well as many parameters. Existing hip files are likely to experience problems due to these changes.
Renamed the Geometry Spreadsheet pane to Details View to better reflect its new multiple purposes (geometry spreadsheet and simulation tree view).
The Details View for DOP simulations has a new branch labelled Affector Matrix. Selecting this branch displays a grid with all objects along both axes. If one object affects another, the cell at the intersection of these two objects is colored blue.
Added a Delete DOP for deleting simulation objects or data from objects.
The Affector DOP now builds implicit groups if the affector or affected group parameters don't specify simple group names. So values such as "*" now work as expected in these fields.
Added a few new DOP expression functions for getting affector information. removed some dop expression functions for accessing object information that is now available using the dopoption expression on an object. Added the angvel expression which calculates an angular velocity value required to move from one orientation to another in a given time.
Added the RBD Keyframe Active HDA which makes it easy to animate the active/passive state of an RBD object, and to keyframe its position when it is passive.
DOP nodes now present proper error messages when an output is connected to an input of the wrong type (object input vs. data input).
Making Help->Contents display in a popup window again but displaying the contents side bar in the popup.
Light and Camera handles now have a Gimbal mode similar to other transform handles.
The Renderman ROP will now correctly refrain from producing an extra ring of polygon primitives around the edge when the boundry interpolation is enable (via an detail or primitive attribute interpolateboundary).
Fixed a rare generator masking bug with certain COPs (Font, Shape, RotoShape, Geometry) when replacing an input image with a newly generated image, and the effect parm wasn't 1.
oparm now has a "-i" option to replace the commit values useage of "-c". The "-c" option in opparm is now only for triggering callbacks. Also fixed the documentation to reflect these changes.
Fixed a problem with automatic promotion from a single image to an animation if the sample rate wasn't 30fps. When using 24fps, the resultant sequence was a bit shorter than it should have been.
Fixed bug where when sourcing another script from hscript that used the exit command, it could cause hscript to go into a bad state that then disallowed any further execution of loops.
Restored the ability to clear the dopesheet selection on the playbar by clicking on the empty margin area underneath it.
Added the ability to specify RenderMan or Mantra ROPs as representative ROPs to custom HDAs.
Fixed small bug where keyboard events would not work in the parameter spreadsheet tree view.
The bundle pane now has a menu bar with menu items that provides all the functionality of the toolbar buttons and list menus.
Geometry attached to a simulation object with any name other than "Geometry" is no longer transformed by the Position of the object.
Added three new dop expression functions: doptransform to extract transforms, dopvelatpos to get velocity information, and dopnodeobjs to get a list of simulation objects processed by a given DOP Node.
Added a new Active Value DOP which can be used to make any simulation object active or passive (and the value is animatable). A passive object is not processed by the solver attached to it, but still acts as an affector for all its mutually affecting objects.
The SOP Solver now has options to transform the object geometry before passing it to the SOPs for processing. It can apply the position and/or the geometry transformation.
Enhanced the DOP Transform SOP to allow it to apply any combination of the Position and Geometry transforms to the input geometry (it used to always apply both). It now can also apply the inverse transform, and can add a point velocity attribute to all incoming points based on the velocity of the simulation object.
Combined the operation of the Switch Data and Switch Objects node into a new Switch node. Combined Merge Objects and Merge Data into a single Merge node. Moved Apply Data To Data functionality into Apply Data node. And renamed dynamicstate node to rbdstate. Old hip files should still work properly because of new entries in the OPcustomize file.
Fixed bug where expressions that cooked other operators (eg. centroid) would sometimes leave them cooked with a value of 0.
opcollapse is a new command that can be used to collapse nodes into a subnetwork.
Ambient lights no longer disappear from Irma re-renders. Added shadebuffer file options: writetodisk and filename, to the parameter list. Added re-rendering mode menu to the parameter list. Polygon re-rendering seems to work fine now and levels of transparency greater than 1 no longer seems to incorrectly brighten the re-renders.
- Dissolve SOP Tolerance parameter now allows values greater than 1. - Partition SOP is slightly more efficient.
Allowing DOPs to run in Houdini Master (i.e. without an Experimental license).
Fixed a potential crash in the parameter spreadsheet when attempting to generate popup help for a node without an associated operator type.
Made some enhancements to the Channel Copy COP. First, all planes in the first and second inputs now appear as plane targets. If a plane in the second input is chosen as a target, it is created in the output. Second, a new destination item, 'New Plane' has been added, to allow the creation of any of the standard planes (C,A,M,L,P,N,Pz,V,B). Also fixed a bug with fp16 vector->scalar conversions.
Added context-sensitive popup help to parm fields. This provides help when editing expressions and paths. For incomplete functions or paths, a list of possible completions is displayed. For complete functions, the function signature is displayed. The items in the completion list popup can also be selected, which inserts them directly into the parm field.
Point loop selection is now possible using the same techniques and shortcut keys as the edge loop selectors.
Fixed stamping in the Copy SOP.
Fixed a problem with multiparms fields not properly setting the number of instances. The newly typed number was ignored.
The AttributeTransfer SOP can now transfer point positions.
The Point SOP now will interrupt faster when computing normals on large geometry.
Resampling a polygon with 0 vertices by edges no longer crashes. Instead, the resulting degenerate polygon is deleted.
Changes to SOPs, Objects, etc. outside a DOP Network now cause the DOP Network to be flagged as requiring a resimulation (just as when a DOP Node is changed).
Fixed a bug with chops not overriding parameters correctly.
Added ability to maintain a readonly selection to SI_Tree.
Implemented the Field Force in DOPs.
Changed the logic for displaying geometry attached to DOP simulation objects. Now only the data with the name "Geometry" is displayed. Other geometry can be displayed by attaching a Rendering Parameters data to the geometry.
Created some default DOP toolbars.
Added dopoption and dopoptions expression functions, which are very similar to the dopfield and dopfields functions except with two of the arguments hard coded to the most common values.
Added sample rate parameter to the Object CHOP.
The RBD Object, RBD Glue Object, and RBD Fractured Object no longer have the initial velocity split into Speed and Direction components. There is now a single Velocity. A new Velocity handle allows this to be interactively adjusted in the same way the speed/direction could be.
Fixed bug where the object viewer's "Capture Geometry" tool and the bonealigncapture hscript command would not work with bones inside locked digital assets even if the appropriate parameters were promoted.
Added new options for the opglob hscript command to expand operator mask patterns. Please see "help opglob" in hscript for more info.
The takescript command now generates the commands in blocks of equal priority in order to group the takeinclude and the various opset/opparm commands. This is important for things such as the display flag in sops where we need to generate takeinclude commands both for the flag being turned off and the one being turned on before generating the commands to actually set the flags. Moreover, we no longer generate commands to turn off display and render flags in sops or render flags in cops. Instead we rely on the fact that the commands which turn on these flags will also turn them off on the appropriate nodes. This is an unfortunate hack but is currently necessary.
The split bars on the Houdini desktop now have 2 small arrows beside the swap pane button in the middle which allow either pane to be minimized. Clicking the bar while the pane is minimized will restore the pane. The bar will move to the edge that the arrow button points to, effectively minimizing that pane. Swapping panes can still be done when minimized by clicking the swap button in the middle of the split bar. The minimized pane & maximized pane will be swapped.
Replaced the takels -c option with the new takescript command. Unlike the takels -c command, the new command generates the appropriate takeinclude commands, supports channels, and outputs the commands in the correct order to work better with multiparms.
Labels and headings parm types now evaluate their vector component labels, so that expressions can be used in the label, and the result will be shown, rather than the expressions. The main label (what would be the 'Label' in all other parm types) does not evaluate expressions, but it can be hidden if only 1 label with an expression is required.
Loading images at different sizes now uses filters more appropriate to enlarging or reducing. Reducing, in particular, no longer produces blurry images.
Gravity DOP now defaults to 9.80665 m/s^2 instead of 9.81.
Fixed a bug which occurred when a flipbook was attempted while Houdini was playing, which resulted in Houdini locking up in a permanent playback loop.
The Parameter type 'Alphastring' now allows non-alphanumeric characters to be entered into it, which allows for expressions. Any non-alphanumeric characters left in the string after evaluation will be changed to underscores.
Fixed a bug where the sprite POP would not allow specifying a generic surface shop.
The slope handle size preference in the Channel Editor now properly scales the slope handles.
The Type Properties dialog no longer allows the '/' character in folder names. In VOPs/VEX, this character is reserved for nesting folders.
The oporder command now accepts absolute and relative node paths. Previously, it only worked on nodes in the current network.
Spare parameters now appear in there own tab in the node dialog. This tab will not be visible unless at least one spare parameter exists. The 'Add Spare Parm' button has moved to the control bar containing all Jump-to-key and Presets button, which is now permanently open.
Parms in VEX and OTLs can now be optionally have hard locked ranges. In addition to setting the UI range of a slider, a hard range clamps the parm value at the range value. The hard lock is specified on each range value, so they may be set separately. In the Type Properties dialog, hard ranges are set using the two lock buttons beside the Range fields. For VEX, use the vex '#pragma range' and append a ! character to the range value to make it a hard range value. (ie, '#pragma range gamma 0! 10'). This also works for .ds files ( 'range 0! 10' ).
Removed some inconsistency in the order of traversal of tree nodes when clearing or setting the selection of a subtree by always using a forwards traversal. This should have no impact on the current behaviour of any trees.
Corrected the implementation of the OpenGL material shader. Previously the specular component was calculated using Phong lighting (reflection vector dot view vector). Now we use half vector between light and view dotted with normal, the way the OpenGL does it.
The projected textures in a 3D viewport should now appear very close to the actual Mantra rendering (if it uses using opengl material shader). The light intensity should also be the same as when the projected texture spot light option is turned off in the display options.
Added takeautomode command to allow toggling the auto include mode from hscript.
Fixed a bug that would prevent the UI from resizing correctly when the take status box is displayed.
Improved Edit SOP performance when transforming points on geometry consisting of a large number of NURBS primitives.
Fixed .pic.gz loading so that all the deep raster information is recognized, not just RGBA.
Fixed bug that would prevent the user from using the Render Control dialog to override both the output and the resolution.
Houdini Escape with Render Plus will now display the hip file name in the title bar.
Added syntax highlighting and paren/quote matching to the textport. The syntax highlighting recognizes hscript commands and variables, and can highlight errors in variables or option usage. Additionally, the same support has been added to the hscript editors in Type Properties, for editing menu scripts and on-event scripts.
Added the ability to rotate the poly-loop selection arrow in the opposite direction.
Fixed a bug in both the parameter list and the parameter spreadsheet where executing a drag-n-drop operation on a selected field would apply any successive changes to all of the selected fields.
Added much better error reporting to DOPs. Nodes properly flag errors if there is recursion, if the wrong data type is input, and if an input node is flagged with an error.
Added a Copy Data DOP which attaches its input data any number of times to its output location. The copy number can be accessed in the input data DOPs using a stamp expression on the value CY.
The Switch Solver now has a Default Switch Value parameter which is used to choose a solver for objects with no Switch Value data attached. Previously objects with no Switch Value would have no solver applied.
The Transform SOP and TransformAxis SOP now have an option to Invert their Transform. When toggled, they will apply the inverse of their transformation. This allows one to move geometry between spaces without having to manually figure out the correct procedure to invert a transformation.
Fixed problem with loading certain files that would cause Houdini to hang.
Fixed crash that could occur when evaluating recursive expressions.
Polygon loop selection is now possible using the same techniques and shortcut keys as the edge loop selectors.
Added a new method for specifying orientations for use with Orientation anchor. A point's orientation can now be specified using a vector attribute containing Euler angles.
The list of CHOPs for Houdini Escape is now a list of CHOPs disallowed rather than a list of CHOPs allowed. This means that HDK custom CHOPs will now work in Houdini Escape.
The Composite ROP should now error out when the network it refers to errors out. The Geometry ROP should now be more consistent about erroring out.
The sopcache -c command used to have problems with long chains of instancing SOPs (null, switch, object merge, etc) which would require multiple sopcache -c calls to fully unload the chain. It is now more effective at unloading entire chains in a single invocation.
The SDF DOP now has an option for inverting the sign of the distance field. This allows one to easily make a hollow container to hold other objects.
Added option A to chls to list all parameters ignoring whether or not they are animatable.
Added Syntax Highlighting, Parenthesis matching and Quote matching
to Parameter fields. These features are only active when the
expression is being edited. They can be individually enabled or disabled
in the Main Preferences, General UI page.
The syntax highlighting can catch simple errors, such as non-existent
variables and functions, or using an hscript function in an expression
outside a backquote.
Paren/Quote matching automatically highlights the corresponding
parenthesis ([{}]) or quote "'`. You can jump to the match by pressing
Ctrl+m (default hotkey).
Using the intersect() vex function will now return proper uv values when intersecting with tube geometry primitives.
COP and MPlay viewers now have a button for the display LUT on the control bar (by the brightness/gamma controls). This button pops up a menu that allows the LUT to be chosen through a file browser, and a toggle to enable or disable the LUT. Each viewport now has its own LUT. Previously, there was only 1 display LUT for all viewers and viewports, in the Display Options. Changing the display LUT in the display options will still cause all viewports to change to that LUT, but the LUT button provides finer viewport control.
Fixed a crash that could result from doing a File->New when a COP image viewer was shown.
Help -> Contents now opens a help panel at the right instead of a floating window. This help panel shows the navigation controls, unlike the floating window that was opened.
Fixed crash when dragging parameters from a viewer tool's parameter dialog into the viewer.
The IsoOffset SOP now has an Invert Sign option. This inverses the inside/outside calculation for computing the SDF.
The default exponent for the Gaussian filter was changed. This will alter the output of a large number of functions and tools in Houdini from COPs to mantra to VEX filtering.
Houdini Escape users can now use the File, Gamma, Bright and Contrast COPs, for simple file loading & color correction.
Fixed a bug with the Shift COP's 'Shift End to Shift Value' menu item, which wasn't saved correctly.
Reduced the peak memory usage when saving OTL files.
Primitive, degenerate, spheres no longer cause a crash if they are converted to polygons.
The Group SOPs Point Number field in the Edges tab is now properly enabled when other grouping methods are turned on. Previously it would only be enabled if Edges was the only grouping method, which was too strict.
The Copy SOP now generates warnings if you have duplicate stamping parameters.
The Group SOP's Combine tab now accepts ad hoc groups on which to perform boolean operations.
The DOP Transform SOP has a new option to allow it to transform the whole input geometry based on the position information from a single simulation objects (rather than the default mode of transforming primitive groups based on matching simulation object names).
Made several improvements and fixes for the File DOP. This includes better performance for files with large numbers of objects, proper loading of group information, and better handling of creator node information which will make it easier to use File DOPs within HDAs.
Solver DOPs no longer have an activation field. They are always active. They also no longer have a second input (which was used for attaching data to all objects piped into the solver). Now there is just the object input, and any number of data inputs which are attached as subdata to the solver. The Unique Data Name parameter is now off by default for all Solver nodes, making it easier to use Apply Data nodes to associate a solver with an object.
Added several new DOP expression functions for getting information about simulation object groups, and for relating simulation time to global Houdini time.
The Partition DOP now behaves more like the Partition SOP, by placing each simulation object into one or more groups based on an expression. The old behavior of the Partition DOP has been moved to a new DOP called Split.
The Group DOP now uses dynamic parameters to allow the creation of any number of groups using a single DOP.
Adding an Affector DOP to create arbitrary affector relationships between groups of objects.
Fixed bug that could cause conversion from curved surfaces with profiles to polygons to crash.
Fixed bug that could cause the PolyBevel SOP to crash when using point bevels.
Added command line option to enable Diff mode when starting mplay.
Some fixes to reduce the number of events generated by changes to operator groups.
The OP_GROUPS_CHANGED event has been replaced by OP_GROUP_CHANGED and OP_GROUPLIST_CHANGED events.
Some minor cleanup of op event handling. This should have no functional impact.
Fixed some LUT/gamma ordering bugs in the UI color swatches & sliders. Some of the gadgets had the order backwards, resulting in an incorrect color. The correct ordering is 1) LUT, 2) gamma.
Added a LUT parameter to the Composite ROP. RGB images are run through the LUT before they are written to disk.
Made the imgview... family of hscript commands available in mplay. These commands allow scripts to change the MPlay Viewer UI.
Fixed operator path dependencies for the Export, Fetch, and Image CHOPs. Previously, if a relative operator path was used, the parameter would not change if the referenced node was renamed.
Fixed bug where typing in expressions involving local variables would not properly evaluate until the hip file was reloaded.
Fixed bug that would break the UI for a VOP-based operator if the default value of a string parameter was set to something like "/obj/*".
Fixed bug that would cause badly formatted disablewhen strings to be generated in some situations.
Fixed a problem that would cause "Color+Alpha" parameters in digital assets to be converted to "Color" parameters.
Added new stamp() expression that is intended to override use of param(). This new function behaves much the same as param() except it takes as its first argument, the path to the operator that will perform the stamping. Thix fixes problems with conflicts between multiple stamping operators that happen to stamp the same variable names. Use of the param() is now deprecated and operators will warn if it is being used.
The HDK API for i3d files now include a gradient method that can be used to directly compute gradients on i3d files.
Implemented a toggle in the viewport at Object and Sop levels. This toggle button switches between headlight and object lights illumination of the scene in the viewport.
A copied and pasted OTL that contains a light inside will now illuminate the objects in the viewer.
The Object Merge SOP now has options to create per-point or per-primitive path attributes. This will create an index attribute called "objname" which has the absolute path to the node which the point or primitive was merged from.
The Object Merge sop is now interruptable. This is rather important now that you can merge thousands of objects at once.
Color pickers, sliders & swatches can now have gamma and LUTs applied to them (through Settings->Colors...->Color Correction). All 'Save Image...' dialogs, in MPlay and COPs, now have support for both gamma and LUTs to be applied to the output images.
The connected selectors will no longer select hidden primitives.
Renderman and Mental Ray SHOPs will now appear in Houdini Escape with a RenderPlus license.
Added an option to align transform handles to the viewport. This provides the ability to rotate/translate/scale in the plane of the camera/current view, as well as perpendicularly to it. When aligned to the view, the transform handle has a widget that allows objects to be moved into and out of the scene in a perspective-correct manner.
The gwavefront application which converts .obj files to .geo files will no longer allow the use of invalid characters in group names. This fixes problems with .obj files created incorrectly from external software.
The RenderMan ROP can now output "grouping" attributes to the RIB stream based on object bundles specified in Houdini.
Houdini will now ignore white space characters in group names read in from badly created .bgeo files.
The Render State's Driver menu will now show all the RenderMan and Mantra ROPs, even those not rooted in /out.
Fixed a bug where moving an ancestor of the active take somewhere else in the take hierarchy could either lose some changes not yet saved to the active take, or leave Houdini in a state which does not correctly reflect the active take, or both.
The Copy SOP template points now have access to all the standard local variables.
Fixed a problem with custom dialogs (notably ROPs) not displaying correctly.
Fixed a crash that occurred if a file extension was added via the CHOPio table more than once (either in the same or different CHOPio files).
Fixed a bug where merging a child take into the master take with overrides would corrupt the state of the master take. This would cause it to hold onto the take data even when other takes no longer referenced that parameter or flag.
Extended the capability of the Wire Deform SOP to transform geometry according to the changes in the direction of the normal to the curve (local frame on the curve). If the deforming curve has a normal attribute then any vector on geometry parallel to it in the rest pose will be parallel in the deformed space.
Added support for the pattern "." in opdef, ie one can now use opdef:.?SectionName to refer to the current asset.
A new RenderMan version was added to the RenderMan ROP (prman12.0). When this new version is set, the AOV output will use the DisplayChannel syntax and will group channels that are sent to the same filename and device together.
Takes now allow the user to override values and flags in a locked asset.
Setting the current frame to zero when float-valued frames are allowed now properly sets the frame to zero instead of a very small number.
Channels containing expressions that call opblist are now dirtied when the relevant bundles are changed causing the appropriate OPs to be recooked.
Now, the Object CHOP correctly calculates the "single bearing angle" as an angle between +z axis of the source and the direction towards the target geometry. Previously, 90 degrees were always subtracted from that result. Note, that HOUDINI7_COMPATIBILITY inhibits this change and the Object CHOP will calculate the angle the old way.
Fixed a problem with selecting transparent objects. Now, if OpenGL alpha transparency set for a given object, that object is still selectable in the viewport
Fixed an occasional bug where Ctrl+UpArrow and Ctrl+DownArrow wouldn't return to $FSTART and $FEND respectively while the playbar was playing.
3D Viewport names are now restricted to alpha-numeric characters (invalid characters are replaced with underscores). This makes it is easier to refer to the viewport with hscript commands.
Fixed a crash in the File COP which would occur if an RGB image was used in a sequence of RGBA images.
Added 2 #pragma hints to the VEX vfl syntax. - #pragma hint [parm] nolabel : hides the label of the parm - #pragma hint [parm] joinnext : Joins this parm and the next parm on the same line. Can be used multiple times to create a very long parm row.
Fixed crash introduced in 7.2.124 in fix for bug #17432. Export CHOPs which exported to parent nodes would crash when their parents were deleted.
Putting down a group sop will turn on the highlight flag, regardless of whether the sop was created in the viewport, in the network editor, or with opadd. This mimics the previous behaviour of the group sop. Note that if a file was saved with the highlight flag turned off, it will still be turned off; this change only affects new group sops that are created, and not ones that are loaded in.
Fixed a bug in the Null VOP where some output names would get lost in certain cases when collapsing or extracting a subnet.
Fixed bug where selecting/deselecting network boxes in large networks amidst changing the particular zoom levels in the network editor could cause Houdini to crash.
Fixed backwards compatibility problem with sourcing channel opscript output where the channel end behaviour always stayed at cubic().
If the help browser crashes, re-opening the help pane will now attempt to restart it.
Fixed problem with extraneous errors when sourcing opscript output for SOPs which use local variables such as the Point or Primitive SOPs.
Added the option -a to objpretransform which multiplies the current pretransform with the given matrix instead of replacing it.
Added two new VOPs: integrate3dclip and intersect3d. Also fixed a bug in the integrate3d VOP that would prevent it from correctly using the scale parameter.
Toggle and Menu parameters are now allowed to reference other toggles or menus within the same node. This would previously give a warning and refuse to perform the link.
image3d related vex functions can now correctly use the "infinity" parameter.
Fixing a bug where it was possible to run opparm or chadd on the root (/) node. For example, "opparm /obj/.." would crash Houdini.
Fixing a problem where hserver would sometimes write a "heartbeat failure" message to the log and exit with an unhandled signal. Hserver's failure may have gone unnoticed because it would be eventually be automatically restarted, but it may have caused licenses to be held for 5 or 10 minutes longer that necessary by the license server, possibly resulting in failed checkouts because all licenses were in use.
Fixing a rarely occurring problem where, if Houdini/mantra detected a really old, incompatible version of hserver and could not start up a new version of hserver, Houdini/mantra might crash.
Fixed a bug that could cause giges to crash with trimmed surface importing in certain cases.
Added the option to hide labels and join parameters on a single line in the Parameter tab of the Type Properties dialog. The layout of the parameter controls was also redone slightly, to better group related controls together. The menu editor now has its own tab as well, so that more editing room is available for the menu items or script.
Added new Null VOP. It simply passes inputs to outputs with the option to change output names.
The message command no longer causes disappearance of the last line in the output window.
Added bundles support for the Visible Reflection/Trace and Visible Photon parameters in the RenderMan ROP.
Fixed crash in UVPelt SOP when edge list is empty.
Added Confirm dialog that allow users to save added data in optype properties even though the node that created the window has been deleted
The Object Merge SOP accepts wildcards for specifying objects to merge. The operators are globbed the way the "opglob" command works in hscript. The parameters can use wildcards to specify the simulation data of a DOP network.
Added new expression function: matrix mobjlookat(string base_node, string target_node, vector up_vector) which does a Look At from the base_node to the target_node taking in consideration an up vector.
Fixed a bug that could cause opchangetype command to crash.
The transform and rotation order in objects are now evaluated with the current animation time. Previously, they only used a value of 0 since they were non-animatible parameters. However, if they had a !!ch()!! reference, then they could then cause other operators to cook at the undesirable time value of 0.
The bundle chooser will now resolve a correct path at the ROP level, and not have the assumption that node names are relative to "/obj".
Fixed bug that could cause Houdini to crash in certain cases when trying to read an invalid image file (or one with an incorrect extension).
- The render command has two new flags (-d and -k) that allow users to override the device or image format for a render (for those ROPs that support the feature). - ROP SubNets must now have their children explicitly wire their inputs for the dependency structure to be passed along. - Removed the 'Specify Output' option from the Render Control dialog because it could lead to unexpected errors. Users are encouraged to use the render command with the new options if this is necessary.
Fixed minor memory leaks when displaying parameter dialogs for the first time.
Fixed extremely small memory leak when creating temporary files in Houdini.
Fixed bug in the viewport Render tool where it would generate temporary files in the current working directory instead of the temp directory.
Fixing a problem where *'s in the sesinetd.option file weren't being properly passed to sesinetd (sesinetd would receive a backslash in front of the *).
Fixed the display of disabled flags in the list view of the network editor and the parameter spreadsheet to match that used in the worksheet.
Fixed a bug where the list mode in the network editor would not properly update the enabled state of the flags until the next redraw was somehow triggered.
If a help file for a custom operator exists in the Houdini path, Houdini will now always use that help file, even if there is a help section in the operator definition.
Added OnLoaded custom operator event.
Fixed minor memory leaks that were not cleaned up when deleting operators.
Implemented a new mechanism for updating representative object types. This new mechanism should be more robust and less prone to errors.
Added a -N option to the opfind and opchange commands. This option will allow the matching of a given patter against an operator's full path.
The Primitive SOP can now transform the primitive attributes. Note that previously, the primitive attributes (eg normal) would not be affected by the transformation. Because the default attribute that is transformed is "N", the primitive normal is now going to be transformed by default (unless there are point normals specified).
The PolyReduce SOP can now perform the polygon reduction process in respect to a specified reference frame and/or reference mesh (added third input). Referencing is only possible with "Use Original Points" enabled.
The render -p command will now issue unique ids for each root ROP mentioned on the render command. Also, the help for the render command has been expanded to include help on the new output format of the -p flag.
Fixed a bug where loading a take with data for entities not already activated in the master take would obliterate the loaded value.
The render -p command now outputs the full ROP dependency structure rather than just the depth.
Fixed potential problem with writing out tiff files that contained extraneous crop window tags.
Fixed a crash when using the DialateErode COP with a 16 bit Float image.
Fixed some artifacts that could be generated in the Chromakey COP when the saturation of the color was zero.
Fixed bug in Merge SOP where it would sometimes incorrectly merge inputs that had differing point or primitive attributes.
RenderMan ROPs can now accept a user-specified number of Auxiliary Files (AOVs).
Update the Light Object's documentation to better reflect its parameters in the Shadow tab.
Fixed a bug that could prevent the first frame to render correctly if a pre-frame render script turns on/off objects or lights.
- Fixed bug that could cause the Lookup COP to crash when no file is specified. - Fixed bug that would prevent auto-conversion of LUT files on Windows.
The Primitive SOP is now capable of transforming user defined vector point attributes. A new parameter allows to specify any attributes that need to be transformed.
Fixed bug where the individual UI_Value objects in parameter dialogs were being incorrectly initialized to arrays.
Added 3D LUT support to the Houdini .lut (and .blut, binary) format. Anywhere LUTs are supported, 3D LUTs will now be supported (mplay, COP Image Viewer, Lookup COP). In addition, a new option has been added to the COP menu, 'Save LUT...' which allows any color correction node (or chain of nodes) to be written as a 1D or 3D LUT. This way, LUTs can easily be created in the compositor. The limits for 3D LUTs are 2x2x2 to 256x256x256, and they must have equal dimensions. Binary LUTs also support 16 bit float for better compression at higher LUT sizes. Other LUT formats can be supported through the $HFS/houdini/LUTio table. A conversion app must be able to write the Houdini .lut format to stdout (to convert to .lut) or read .lut from stdin (convert from .lut). Either binary or ASCII reading and writing is supported, which can be specified by 'stdin.lut'/'stdout.lut' (ASCII) or 'stdin.blut'/'stdout.blut' (binary) in the LUTio table.
Fixed a bug that could cause the representative objects to not take affect when first loaded if the OTL is unsyched with its definition.
When rendering on Windows within Houdini to RenderMan, errors will now be captured and printed out.
Fixed bug with the render command where the -F option did not do anything.
The "Show All Attributes" drop down menu in the geometry spreadsheet is now much more useful and robust. The individual attribute entries are now toggles and the menu label no longer changes to follow the last selection.
Cleaned up the Display Option dialog in the viewport with regards to the near/far clipping planes: - The near/far clipping planes will be reset to the no-camera planes when the view is switched to a no camera view. - The dialog will no longer allow editing the near/far planes when looking through a camera.
In the Renderman ROP, we now support an "Explicit" option for motion blur. This decouples the motion blur parameters between camera/light and geometry objects. Without this new option, if any light, camera, or object had motion blur turned on then the whole scene will motion blur, including any automatically generated shadow maps.
Added new Motion Blur parameter to ROPs which allow us to globally disable all motion blur rendering.
Fixed problem which would cause some input output connections to become disconnected when undoing or redoing a "Match Current Definition" operation.
Added a "Force Recook" button to the unix SOP.
Moved the current take name from the lower right corner to the top of the interface.
The Desktop menu label now reflects the current desk name.
Fixed bug that could cause mplay/Halo to crash if changing the gamma with no LUT loaded.
Added new expression function: vector objlookat(string base_node, string target_node, vector up_vector) which does a Look At from the base_node to the target_node taking in consideration an up vector.
The Cookie SOP now has an option to consolidate the boundary edges of the cookie operation as a post operation. This can allow one to chain multiple cookies together and ensure the resulting geometry contains connected pieces.
Fixed a minor memory leak in the tab operator menu.
Fixed a bug where the channel group tree was checking an uninitialized variable when dragging.
Fixed bug that could cause the Light handles in Houdini to hang.
Fixing a bug where "cuadd -t button" would fail on the Linux Red Hat 9 build.
Fixed bug where the channel group tree would export an incorrect channel list for drag-n-drop if the group contents had changed after the tree node was selected. Moreover, previously we were only sorting the exported channels in certain situations. We now sort them in all cases.
MPlay and COPs now support 3D LUTs through the Houdini .lut format. 3D LUTs can be created through a new 'Save LUT...' option in the COP op menu, and through conversion programs from other 3D LUT formats. Currently, Iridas .itx is supported through the command line tool ilutiridas.
Enhanced the parmsheet command with many new options. We now also save a subset of the state of any parameter spreadsheet panes to the desk.
Both the parameter spreadsheet and the parameter list now have improved support for disabled parameters. In addition, they are now take aware and respond to changes in takes.
New parameters have been added to the Fetch POP to aid the adjustment of the reference frames and space differences between the fetching and fetched POPs. See Fetch POP help for more details.
When generating RIB for sub-d surfaces, Houdini will no longer automatically generate the "N" variable if it doesn't already exist on the geometry. This will change shading of sub-d surfaces in prman slightly (when the N variable isn't defined).
The parameter spreadsheet op mask, filter and parm mask are now saved to the hip file.
The Creep SOP now properly calculates surface normals. Previously, the z scale factor was incorrect (often by a factor of 1/0.707).
The Connectivity SOP now has an option to specify a variable mapping to go with the attribute. When blank (the default) this acts like it would in the AttribCreate case - it creates an ALL CAPS variable.
The proto installed version of the Line SOP has been renamed Line Proto to avoid ambiguities between the two versions.
The IsoOffset SOP has an additional menu for tetrahedralization. It is possible to create independent closed tetrahedrons or cubes rather than just a terahedronal skeleton.
The default favourite tool for the objects viewer has been changed from the Transform tool to the Pose tool. For this to take effect, the tool.pref file must first be removed from your existing $HOME/houdiniX.X directory.
The Animate desktop has been updated. A new desktop, called Posing has also been added. The Posing desktop is intended for during the early stages of animation while the Animate desktop is intended for fine-tuning of animation.
The Attribute SOP along with the Renderman ROP are now capable of outputting detail attributes as renderman constants.
Lights can now be set to generate Average Z shadow maps for Renderman.
Fixed crashing bug with timegroups which was introduced in their recent rewrite.
Fixed bug where doing an Extract Contents operation on a Sub Network would not delete the original Sub Network.
Fixed a problem with the Primitive SOP which could cause it to align primitives in the wrong orientation when using the Match Normals option.
Fixed bug where saving a custom operator would cause its chop overridden parameter dependencies to be lost and thus not recook the chops during playback.
Added a new auto include mode for takes. This mode can be activated from the Settings menu.
Changes to online help search interface. - Removed confusing "Find on Page" icon from top toolbar and added "Find on page" textual button next to search box. This button shows the "Find on Page" toolbar, which lets you search for text on the currently displayed page. The new "Highlight" option highlights all occurances of the string on the page. - Removed the "filter the table of contents as you type" feature. Now Houdini performs a full text search as you type in the search box. - Moved the search box above the splitter control, so even when the navigation pane is collapsed the search box is still available. - Added grippy texture to splitters and toolbar controls to make them slightly more visible.
Fixed bug where CHOP networks that contained string parameter references would not cause its exported nodes to recook if the string parameter values were changed.
The Primitive SOP will now translate primitives to the template geometry point positions even if the Rotate To Template option is set to Off.
Fixed a bug that could cause Houdini to crash when deleting an OTL with a representative object.
Change opexist to consider bundles and groups. It will return 1 if the
node, group or the bundle exist, return 0 if any of them doesnt exist.
Group and bundle has to be defined with '@'. ie opexist("/obj/@mygroup")
Fixed a bug where using the More|Less|Clear buttons to add additional instances to multiparms in multiple selected nodes would not undo properly.
Fixed bug preventing brackets from being parsed correctly in hscript if they were not separated by whitespace.
Fixed some inconsistencies in dealing with takes in the various methods for setting parameters in OP_Parameters.
Fixed a bug that changed old parm references when adding and duplicating parms in Type Properties.
Fixed a bug where the "Animatable Parameters..." dialog would always set keys on the first frame instead of the current frame until a time change occurred while it was open.
Fixed a bug where the "Animatable Parameters..." dialog would ignore the take state of parameters and would crash when attempting to add a channel to an inactive parameter.
The view dependencies dialog now shows dependents which use the !!ch()!! references in toggle parameters.
Fixed problem that could cause false infinite recursion in cooking of nodes when using !!ch()!! references.
The view dependencies dialog now only shows one root at time. The other roots are now displayed as folders that the user can switch to. This makes the tool both faster and easier to navigate.
Fixed bug where Houdini would crash when rendering a ROP node with Initialize Simulations turned on if an object contained an empty POP Network SOP.
Added the new expression opselectrecurse. It returns all selected nodes included the children of the current network. It keeps the context by default. The context can be discarded.
Fixed a bug that would cause the chkeyls command to use the wrong time value if quiet mode is specified.
Added mlookatup. Works like mlookat except that you also feed it an upvector.
Fixed bug that would prevent users from wiring many ROPs into one ROP as is possible in other networks.
The file browser launched from the File SOP will now collapse the files from the same sequence so that the user no longer has to go back and manually add the $F variables.
Fixed a bug that could cause Houdini to crash when hitting Apply or Accept in the Type Properties dialog.
- Fixed a bug that would make the focus handle inactive when the user first changes the light from a point to a cone. - When the focus parameter is not bound, we now use a default value to update the focus handle's orientation instead of just leaving it undefined.
Fixed a bug where it was possible for the existence of a floating pane to prevent the user from closing the second last non-floating pane in the desktop. Also fixed a related bug where the existence of floating panes would allow the user to close the last non-floating pane.
Automatic tile layout in the network editor now respects grid snapping.
The opchange hscript command now has the -t, -T, -n, and -p options from opfind. This allows opchange to be applied only to operators which match specific criteria.
Added a Dependency viewer that would allow users to trace through dependencies and references for a parm (or operator) in a tree-structure.
A few improvements to the Group SOP: - New parameter for extra control over conversion of point groups to primitive groups. A new toggle now allows the conversion to "Only Include Primitives with all Points in Group". - The conversion now respects the "highlight" flag in the SOP. - Plugged two small memory leaks in when using conversions in the Group SOP.
Split the option for linked parameters in Type Properties to allow user to have either name or label prefixed with source node label.
Fixed a bug that could cause non-cameras to show up in the camera menu at the bottom of the viewport if they were hidden and then exposed.
Added support for sending SOP point float attributes to OGL2 shaders.
Fixed the object transform handle to properly set pivot parameters when they contain channel references.
Added toggle to ROP Renderman to turn on/off the Aux Files features
Minor speed optimization when notifying existing bundles of a new node being added.
Fixed a couple of problems with the 'Expand Luminance' option in the Expand COP, and a image corruption issue with Fill Holes/Remove Specks.
Added a 'Reload All Files' toggle parameter to the Composite ROP. When on, all File COPs (and any other OPs that reference files) will have those files reloaded when a render begins.
Added ROP dependency rendering. ROPs can be wired together to form a dependency tree and rendering a ROP will render it and all its inputs so that the ROPs are rendered in an order necessary to maintain the dependencies. The render command has been extended to control this behaviour, and a Render Dialog has been added to act as an interface to that command. It pops up when the new parm button "Adjust Render Settings..." is pressed. In addition, the dialog allows sub-ranges to be rendered, the output to be redirected (possibly to a flipbook) and the resolution to be scaled without modification to the ROP.
Adding an interface to Pixar's Irma to the RenderMan ROP, in the new "Irma" tab. The UI exposes the same functionality that is available in Maya when using MTOR for Irma rendering. The rendering mode (pre- or re-render) can be selected from a pull-down menu. For pre-rendering, the render quality settings can be specified to override those in the ROP, and the number of levels of transparency in the cache can be specified. For re-rendering, each Irma cache can be turned on or off, and shadow map regeneration can be requested. Irma pre-renders execute exclusively (starting a new pre-render stops the previous one) while re-renders can be executed concurrently as long as a pre-render already exists. Irma ignores the background and frame range controls (it always renders in the background and renders the current frame).
Fixed minor problem where selecting unselectable nodes in a tree view would still clear the existing selection.
Fixed a crash when dragging a network box onto a gadget which accepts either parameters or channels for drag-n-drop.
The Geometry CHOP will no longer crash if a muti-value attribute like N is used for the organize attribute. It will also no longer crash if the organize attribute goes negative. Negative organize indices will be ignored.
The AttribPromote SOP again works properly when Delete Original is disabled. This was broken in 7.2.90.
Changed opget to behave as opparm when returning the op given as argument.
For example opget -d /*/light will return opset -d off /obj/light
opget -d light will return opset -d off light
Added a new expression that returns the relative path between a source node and a destination node. oprelativepath( string srcpath, string destpath)
Fixed a crash caused by copying a channel and then deleting the source channel.
The AttribCopy and AttribPromote SOPs can now operate on multiple attributes. The attributes can be specified using pattern expressions. The carat symbol, '^', can be used to denote omission, i.e., any attribute preceded by a carat is omitted and not copied, e.g. ^Cd. Also, a blank field is interpreted as indicating that all attributes should be copied. And if the first attribute that is specified is preceded by a carat then all attributes are copied except that specified attribute. These rules are identical to what is done with attribute specification in the AttribTransfer, AttribStringEdit, AttribMirror, and AttribComposite SOPs, as well as the AttribTransfer POP. Pattern expressions are now accepted in the attribute parameters of these OPs (AttribTransfer SOP etc.). When specifying new attribute names for the AttribPromote SOP, the input and output attribute lists must be consistent in format, e.g. attribute[AB] input* --> attribute[CD] output* An attribute menu has been added to the source attribute parameter in the AttribPromote SOP.
The default FPS value is now 24 unless overridden by the environment variable FPS. Existing hip files or users that have explicitly saved their FPS options are unaffected.
Fixed bug where background images were not working properly in gplay.
Fixed handling for the "status" hscript variable.
opwire can now take full path ie opwire -n /obj/cam1 -0 /obj/light1 An error will be returned if the path is invalid or if the output and input are in a different network.
The Op Tree chooser will no longer filter out object networks when filtering for a specific object type. This allows one to find cameras that are inside an object network that is buried in a normal object.
The Archive ROP now has a normal string field for the camera parameter instead of the drop-down menu list.
The UVTexture SOP now flags a warning if it is given an invalid camera when texturing from camera.
Undoing time group operations works everywhere (including when using tmgshift).
Optimized the handling of representative objects. The interactivity of these objects is now improved when there are many of them in the scene.
Fixed crash in executing commands in mplay's textport.
The Geometry CHOP will now work properly with Organize by Attribute turned on and only true attributes listed for conversion.
We now detect infinite recursion in parm callbacks and abort rather than crashing.
The GroupCopy and GroupTransfer SOPs, when they have a blank group given for their group field, will now behave properly in batch mode. Previously, they'd refuse to process any groups when executed inside a Cache SOP or output driver loop.
Added parameters to the Archive Generator ROP to include object-level shaders and/or identifiers when outputting RenderMan archives. By default, these parameters are turned off to maintain old behaviour.
- Time groups now allow you to move keys past other keys. - Hitting 'a' in the graph editor is no longer a dumb toggle but either attaches or detaches all selected keys depending on their current attached state.
Major overhall to the tree view embedded in the parameter spreadsheet pane to provide increased functionality. The tree can now be used to directly select the nodes visible in the spreadsheet and also supports various new filtering options.
It is now possible to preview sequences from the Eye icon in the file browser on Windows.
Fixed a bug in timescale where the 'blend nearest frame' option was backwards; when blending frames 1,2,3,4 it would blend them as 2->1, 3->2, 4->3.
The Wireframe SOP will now preserve point attributes in the resulting tubes. Tubes will get the average of the point attribute values that they are built from.
There is now a Null POP which, unsurprisingly, does nothing.
Default camera names in rops are now /obj/cam1 rather than the antiquated cam1.
opfind now returns nodes in the same order as opls.
Fixed a bug that could cause the representative object to be lost if hiding the transform and subnet parameters of the object OTL.
Added option for global search and replace.
The Operator menu in the "Change Operator Type..." dialog box now respects hidden OPs.
Fixed bug where nodes that were deleted from bundles did not get actually get removed if there were still references to the deleted nodes.
The Resample SOP will no longer attempt to convert particle systems.
The opflag expression now works with the same set of flags that opset works with.
When running scripts from the textport, output from executing commands are immediately flushed and the textport is redrawn. This allows us to monitor the progress of executing scripts via echo commands.
Shift+LMB clicking the Region of Interest in mplay was not selecting the correct area if the zoom factor was anything other than 100%.
Fixed a bug with viewport flipbooking, which could produce corrupt images if the camera or viewport size was changed since the last time the flipbook dialog was opened and a 'quick' flipbook render is started (the dialog is bypassed by just LMB clicking the render button).
We now send out notifications that bundles have been deleted when Houdini is cleared or a new file is loaded. This is necessary for the parameter spreadsheet to be properly alerted to these kinds of changes.
Fixed bug where the "commandecho" textport command would report that it was enabled if any textport had it enabled, not just if itself was enabled.
Changed "nbop add" hscript command beqhaviour on minimized network boxes. Under no circumstances now, are nodes moved.
Added the ability to undo/redo creation and deletion of parameters and handles from the Type Properties dialog.
- Added toggles to enable and disable render scripts, located under the Scripts tab. It is available to any ROP using render scripts.
- Fixed a bug that woudl cause viewport handles (e.g. crop and crosshair) to be displayed even if we are not looking through the handle's camera but another camera with the same name. - The geometry of the representative object should no longer be displayed when looking through the camera OTL.
Fixed bug that caused all camera objects to be displayed in the camera menu, even those that are hidden.
Fixed potential crash when changing desktops that might happen if OPmenu entries had operator type names that executed hscript commands via execute().
Fixed bug where in custom expression functions, the /= (divide and assign) operator multiplied instead of dividing.
The default $HH/scripts/traverse.cmd script is now fixed so that it doesn't cause Houdini to go into an infinite loop.
Fixed a crash in the channel SOP introduced when BUG 14144 was fixed.
New OPs placed in the Network Pane from the operator menu are now snapped to the grid when grid snapping is enabled. The preview tile outline also snaps and is consistent with the final location of the OP tile. Copying and Pasting also snaps the pasted tiles when grid snapping is enabled.
Fixed a crash in the ray SOP when cooking guide geometry.
Improved the stability of the uvproject SOP's "Plastic Wrap" projection mode to give more consistent results across platforms.
Fixed a bug where homing on a view which contains an empty particle system would always include the origin. The fix extends to other empty primitives as well.
Fixed broken keyframing (using pending values).
Light bundles may now contain custom HDAs with lights as representative objects. The bundles will implicitly contain all the lights inside the light subnet.
Fixed a bug that was recently introduced which would access deleted memory when the save path contained an variables.
When removing inlined points with the second last point being removed from a closed polygon, a crash may be avoided.
No longer used fixed buffers in giges. This can prevent crashes on certain IGES files.
Changing the grid spacing in the network editor while grid snapping is enabled now scales the tiles along with the grid.
Fixed bug that could cause Houdini to crash if the Geometry Spreadsheet has to display strings that are sufficiently large.
Fixed a bug where tiles in the network editor were not snapping exactly to the grid points when grid snapping was turned on. Also added grid edge snapping.
- The Material operation is now aware of representative objects. Dragging and dropping material onto objects they will now also correctly set the appropriate parameter if it is exported to the HDA. - The Texture SOP is now aware of representative objects in an HDA. The convention used is that the transform of the specified object will be used, not that of the representative object. If you wish to get the transform of the representative object, you will need to specify it manually. This is the more flexible of the two options. Also, the Texture SOP will no longer crash if something other than a camera is specified. - The Object selection mask in the viewport will now allow selection of HDAs with representative objects that match the selection mask. - The objlightmask and oplightmask expressions will no longer display HDAs with representative objects as lights, instead they will only show real lights.
Added an option to the Mantra and RenderMan output drivers to turn off final image generation when rendering. The new option is a checkbox under the "Specific" tab of the ROPs, named "Generate Final Image", which defaults to on. When this option is turned off, only maps (shadow and reflection) will be produced when the ROP is rendered.
Local transformations on degenerate polygons are now treated as global ones.
Increased the performance of the PolyKnit SOP.
Fixed a bug that was preventing objects from being properly displayed when their Display parameter contains a channel reference which has changed.
The idialog now has a Pause button, which halts Houdini CPU activity without interrupting the operation, so it may be resumed later. Progress bars are now built into the idialog, which indicate the operation progress in operations which support this (some operations don't have an easily or accurately definable completion percentage, so they don't show a progress update).
PolySplit once again allows you to select what to split interactively. This was broken with the sop cooking changes.
Fixed bug that could cause Houdini to crash if something other than an Object node is dragged into the viewport.
The image format options in the Mantra ROP parameters dialog now show up again.
Fixed a bug in Capture Layer Paint's Undo when the stencil mappings change due to an OP being renamed.
The channel group tree now also exports those entries without actual channels for drag-n-drop.
Switching folders using opparm now executes without delay.
Moved the "Renderable" parameter on custom geometry objects (such as Path, and PathCV) from the Controls tab to the Misc tab.
Fixed bug where using opwire commands on input nodes that did not exist yet would not correctly recook the output node when the input node finally gets created.
Fixed problem with transform handles in the viewport where rotating it could sometimes cause very small precision changes in the translate channels as well.
Fixed a bug that would prevent polygons with fewer than 3 vertices from begin extruded, even if the local transform wasn't used.
An initial preview version of the OTL representative objects is now available. Along with the ability to specify your representative object, the camera menu and the viewport features now work with these kinds of objects.
The switcher for cameras can now recognize the input camera's mask parameters.
Fixed a bug where we were incorrectly updating $HIP before expanding it in the save dialog.
Added verbose options (-v) to exread and exrm, along with the missing help for these two commands.
Added a 'findfiles' function. This function is similar to the 'findfile' function, except that it returns a list of all of the matches.
Added 'ifs' function. This behaves exactly like the 'if' function, but returns a string value.
Added removegroup function to vex to parallel addgroup.
A new POP operator is now available. It is called Import POP and it fetches particle stream primitives form other POP networks. The POP operators to import are specified by the parameter.
Fixed a bug that was preventing the take contents from being sorted (in alphabetical order).
Fixed bug which prevented takesave from working as advertised when the -o option was specified.
Initial commit of a selection mechanism for the parameter spreadsheet.
Added missing support to the parameter list and parameter spreadsheet for the following menu entries: Revert To Defaults, Revert To And Restore Factory Defaults, Include In Take, Exclude From Take.
Fixed problem in mplay with no longer recognizing $F4 in the command line.
Made it so that you can click in the box above all of the disable buttons in the dopesheet to disable all rows in the dopesheet.
Fixed crashing bug with match*() functions.
Don't include invisible parameters in the take when dragging an entire node onto the take tree.
When opening the Type Properties dialog for an operator type named "subnet", Houdini now brings up a warning dialog to ensure that the actual intention was to do a "Create Type From" before editing the Type Properties.
Button parameters can now be promoted to the top level of a digital asset. Pressing the button on the digital asset behaves as if the child node button was pressed.
Added right arrow button menu for the alpha attribute.
Added some initial support for a parameter mask to the parameter spreadsheet.
The default filename when saving a take is now <takename>.take instead of untitled.take.
Sops are now able to the same input at different frame times without resulting in unusual behaviour. This avoids the need to put temporary sops when building unusual networks with the Cache SOP.
Fixed a bug in which opscripted nodes would have some fault chlock and chautoscope commands inserted.
Fixed a bug with COP monitors that caused the first COP monitored to 'stick' in the monitor forever, even if opened on a different node.
Fixed a subnet cooking problem which caused previously cached results to be reused for different parm settings.
Fixed a bug in the File COP when loading pic files with the 'Flip Image' option. The alpha planes and deep raster planes would be corrupt.
Added a pane menu command to show/hide the Time Bar.
Added display options button to side toolbox.
Added the ability to undo cut, copy, and paste operation in the graph editor.
Removed the camera options menu from underneath the viewport. This button is not useful in that location.
Fixed a bug in which scaling accels caused accels to snap back to default.
Added a new two-dimensional mode for the camera and light's Orientation Handle. This 2D Orientation Handle is only displayed when looking through a camera or light. It controls a camera or light's translation and rotation, both globally and locally.
- Added chkeyget that samples a key given a frame and displays it - Renamed chkeyls -f -> chkeyls -s (script keys insted of full keys). - Added chkeyls -vVmMaAf to print out partial key values. - Added chkeyls -S to print out scripted keys less briefly.
The Lattice SOP now has a new parameter called "nromthreshold". This parameter controlls the fall-off smoothness for the influence strength of a capture region. Please see help for details.
Added the -f option to chkeyls. Instead of outputting a list of key times, chkeyls will output full chkey commands for each key it finds (with slope and acceleration if applicable to the curve type).
Fixed bug with Gimbal mode in the object Transform tool when used with bones or other objects that have non-default rotation orders.
Fixed problem with incorrectly causing objects to be rendered in the viewport with transparency when given projector map lights that contained alpha.
Fixed bug that caused UV snapping to not work if editing the UVs on an object that has transforms and 'See All' is selected in the viewport.
Fixed a crash with cineon LUTs that would occur if the LUT didn't exist or it failed to load.
The Disolve SOP should behave now more reliably for large number of edges to disolve or unconventional polygonal sturctures. As as side note, the Disolve SOP works better when the primitive numbers are spacially coherent; that is, when the primitives with similar primitive numbers are in the same neighbourhood, rahter than scattered randomly all over the model. The Sort SOP may be used to order the primitives in x, y, and/or z directions.
Custom RMB menu scripts now create undos properly.
Added support for toggle buttons to the parameter spreadsheet.
The SOP Cache now shows up in the Cache Manager dialog.
The license server, sesinetd, has been updated along with new tools which will automatically restart it if it dies unexpectedly.
Fixed problem with GroupTransfer if given less than 2 groups. It would likely warn with an invalid group name.
The commandecho command can now be enabled or disabled on individual textports.
Added an optional "All-Channels" row to the DopeSheet.
Fixed a crashing bug in the parameter spreadsheet (which was also in the parameter box, but much rarer).
Added support for callback buttons and callback menus to the parameter spreadsheet.
Fixed a problem with applying display gamma and LUTs to an image with black and white points. Previously, the points were not taken into account when applying the gamma or LUTs, so the resulting display was incorrect. This does not affect images without black and white points, as they worked correctly.
TIFFs saved from the Compositor are now saved with any black/white point settings they had. This helps when saving linearized Cineons to TIFF files (amoung other things). The TIFF file will load with the correct white point.
Added a perference 'Play Audio with Popup Notifications' which allows the sounds effects played on certain popups to be muted (ie, Ding-Dong: "Save Changes to 'untitled.hip' before exiting?"). It is in the Main Preferences, General User Interface tab.
Added option to Main Preferences to set the default Gimbal mode behaviour for transform handles.
Fixed a bug in hscript that caused a bash shell to loose its icanon and echo attributes when hscript exits.
The new Mask parameters have also been added to lights.
Added a filter menu to the parameter spreadsheet.
Fixed a bug that caused pragmas in vcc to stop evaluating arguments after a fixed number. This, for example, prevented group pragmas from adding more than 30 parameters to their group.
The license server log usage analyzer utility, sesiusage, now has a new -l option to output information for the minimum, maximum, median license usage times. It now always prints out the average license usage as well.
The license manager, sesinetd, will now correctly log "stats" (checks for existence of a license) as such instead of as license check outs.
Flattened the look of the parameter spreadsheet to reduce the unnecessary clutter in the cells.
Caching of grid data in mantra has been changed to use a disk cache. The cache will be created (if required) in the houdini tempororary directory (see hconfig HOUDINI_TEMP_DIR) and will be called mcache.XXX, where XXX is a unique identifier for the process being rendered. When this cache is created, a warning will be output (with verbosity 1 or greater (command line option -V 1)). The -G option controls the allowed memory before the cache file is created. Previously, the -G option specified the number of grids to be created. Now, however, it specifies memory allowed. To keep a reasonable form of backwards compatibility, the option specifies a multiple of 4KB chunks of memory. Thus, -G 4096 (the default) allows 16 MB to be used before the disk cache is created. The previous behaviour of mantra was to re-generate data if it was flushed out of RAM, which could have been prohibitive when expensive shading (such as global illumination) was involved in rendering. Depending on disk speed (and if the HOUDINI_TEMP_DIR is local or networked), the new caching mechanism may prove to be more expensive than the re-generation of grid data. This behavour can be controlled on a per-object basis using the IFD command: ray_ocache, which takes exactly one argument. The argument should be "disk" or "regenerate". WARNING: Not all data can be re-generated, meaning that even if all objects are set to the previous behaviour of regeneration of data, the disk cache file may still be constructed and used.
Fixed a crush on mplay startup. This was happening when the a default background has been specified in the preferences and saved as a default to the preference file.
Added the Cache Manager dialog, which shows a comprehensive view of all major caches in Houdini. It also allows editing of the maximum cache sizes and the current cache sizes (normally by clearing the cache).
Added initial support for menu parameters to the parm spreadsheet, along with additional bundle UI.
Fixed a bug in which locked channels did not have keys in the dopesheet.
Made the "k" and "alt-0" keys work on the playbar.
Fixed erroneous default behaviour of the Operators menu.
Fixed bug in sesinetd that could cause it to crash on high load conditions. Also fixed problem where sesinetd would not cleanly shutdown when sesictrl -q was invoked.
Fixed a bug where the blending weights were not being animated.
The renderman output driver correctly renders a motion-blurred geometry that has a velocity attribute and is also surface-subdivided.
Fixed problem where sesictrl -q would not properly shutdown sesinetd.
Initial commit of a new parameter spreadsheet pane. This is still very much a work in progress.
Fixed a bug with matchin(): consecutive segments that use matchin() will all have the same slope. Before, succeding segments would have a slope of 0.
In the Bones from Curve tool, when a new prefix is specifed for the bone chain, this prefix is updated for the bones created previously by this tool.
Drag and drop works again when an operator is dragged from the tree or a list view and dropped onto the bundle or group pane.
The COP info now shows the frames and planes required for each displayed node (if any).
Fixed a bug that causes chrefit to make channels dissappear.
Fixed a bug where it was impossible to drag-n-drop to the right from a tree node.
Adding group instance rendering support to houdini. Geometry objects now have a "Geo Instance Group" parameter in the render parameters area, which allows rendering of the instance to be restricted to a group in the SOP. Only a single group can be specified, and it can be specified as a name or primitive list pattern. Only Mantra and RenderMan are supported.
Several improvements to the sesiusage utility to give more info sesinetd license server logs. The output format for peak usage has now changed to support new information such as heartbeat failures and simple license checks.
Fixed bug which occurred when the same shader was applied to two separate objects which had the same parameter overrides but with different classes of attributes (i.e. one object had point attributes, the other had primitive attributes).
The command line tool izg now keeps track of the second closest Z value. This produces the same results as the auto-computation method.
The colors chosen by the command line tool izg are now inverted by default. This matches the mplay display, but is different than before. Scripts which depend on the previous behaviour should use the -i option to invert the gray scale.
Fixed a minor bug in the parameter list which could sometimes give the user the incorrect XCF slider the first time.
The subregion guide now includes the UV/pixel coordinates of the region at the lower left and upper right corners. The guide will also appear when selecting a subregion, even if guides are off.
Fixed a bug with the UV inspect readout in mplay/COPs when a subregion was used. The UV values were incorrect.
The checkbox parameters and drop down selection menu parameters now can be locked. In the right mouse button pop-up menu for these parameters, lock and unlock entry is available to prevent the change of the parameter values.
Added a linear interpolation type to the lattice SOP.
There's a new environment variable (HOUDINI_DEFAULT_RIB_RENDERER). This allows the default RIB target version to be specified. When rendering from the viewport or saving geometry (and any other places where the target isn't specified), this variable will be used to determine the appropriate target. For example, to save an archive containing RiNuCurve primitives (not supported by prman), you could set the variable to "rdc3.3" or "air2.8". To change the viewport renderer to a renderer other than prman, it's also necessary to set the variable HOUDINI_VIEW_RMAN to the appropriate command.
Fixed bug where the post-render script of the last child of a Subnet ROP would not be executed.
The Inflate SOP now evaluates the Tightness and Max Inflation Distance parameters on a per point basis. All standard point local variables are available.
Fixed problem where if an error occurred in the execution of render scripts when rendering an output driver (ROP), it would fail to further render until its render script parameters were cleared to obtain a successful render.
Added a new parameter to cameras, "Mask Overlay SOP." When the Camera Mask display option is selected on a viewport, and that viewport is looking through a camera, its mask overlay SOP will be rendered on top of the mask. To be rendered properly, mask overlay SOPs should be defined in the range [0, 1] both vertically and horizontally on the z = 0 plane.
In the Operator Type Manager dialog, before removing a library from OPlibraries file (or from local session), the user is prompted for the confirmation for that action.
Changing the input connection order of a custom VOP now changes the connections inside the VOP.
Fixed bug that could cause hcompile to crash if the command line is formatted incorrectly.
Fixed bug that could cause the Scatter SOP to crash if it is used with empty geometry.
Added a "null:" tile device for mantra. When the output filename is set to "null:", no image will be saved, though the render will proceed as usaual. This is useful when the render is used to generate extra files (like deep rasters).
- The pre-include for RIB now gets output right before the shader Transforms. - The post-include now gets output even if all your share assignment is done at the SOP level.
Fixed a bug that would cause Custom Panels to break on RedHat 9 machines.
The AttribCopy SOP can now copy multiple attributes.
Houdini and gplay no longer share the same default display options.
Two new commands have been added (see help for details): - viewsnapshot, which takes, shows, hides, and deletes snapshots of the viewer. - viewsnapshotoption, which sets and returns the snapshot options for a given viewer.
The view snapshot options have a new option to hide the handles when a snapshot is being taken. Also, the snapshot options dialog is now automatically popped up to the top (if it is open) after rendering out the snapshot.
The snapshot memory options dialog (opened by the "+" button at the end of the memory snapshot buttons) allows to specify which objects should be included/excluded from the snapshot. This parameter works much like the visibility mask for flipbook.
Now the viewport snapshot memory has an option to blend the snapshot image with the scene view with a user-defined alpha blend factor. The blend factor for the snapshots can be specified in the dialog box that is popped up by clicking "+" button at the end of the snapshot memory buttons (though it is considered to move the options into the display option dialog).
Now the viewport snapshot display memory has an option to not show the snapshot if the current time frame is the same as the time frame at which the snapshot was taken. The options for the snapshot memory are in the dialog box that can be shown by clicking the "+" button at the end of the snapshot memory buttons (though it is considered to move the options into the display options dialog).
A new type of temporary view storage is available for the viewer. Now in addition of the View and Clip plane memory, there is a Snapshot memory capable of storing the view framebuffer as an image. The stored snapshots of the scene can be recalled (ie. displayed back in the viewer) by pressing the memory buttons under the viewer. To store the view form the viewer into a memory, press the 'M' button, and then press the memory location (buttons 1-9, or type a new memory label in the input field). To recall the memory press the memory button associated with the desired snapshot. The snapshot will be displayed in the viewer until the memory is retracted by clicking the same button again. In addition there is a Clear button which frees up the memory taken by the snapshots. The keyboard shortcuts can be assigned to the buttons.
Fixed a minor bug where the parameter list would still have interests in changes to the operator types when closed.
Multiparm temporary dialogs are now written to the temp directory, rather than $HFS/houdini/config/Dialogs. This avoids several problems with writing data to a shared location in a multi-user environment, and a location that might be read-only at that.
Fixed a bug wherein the view state lock is stuck in the graph editor if multigraph mode is entered while the space bar is down
Fixed a bug wherein modifying a channel permission by locking, unlocking, adding or removing from the the current take, or write protecting a node did not cause the animation editor to template or untemplate the channel automatically
Added new "Hide Object Transform and Subnet parameters" option to the Type Properties dialog. This allows digital assets at the Object level to not contain the Transform and Subnet tabs and paramters so that the user sees only the custom parameters.
When selecting items in the viewport, if there are multiple items under the cursor, it is now possible to choose which of the items will be selected through a pop-up menu. To enable this menu, select "Popup Menu Selection" in the Objects and Geometry subheading of the Preferences dialog.
Added a new "Mask" tab to the camera parameters. This tab contains two values: mask aspect and mask opacity. Using the camera mask makes it possible to have a camera of one aspect ratio (e.g. for television) which allows you to preview what the frame will contain for another resolution (e.g. for film). Masks are only visible when looking through a camera; their visibility is toggled on and off in the Display Options dialog.
In bundle chooser dilaog (available, for example, by clicking the "+" button at the visible objects parameters for in mantra output driver), the list view of the operators has been replaced with the tree view, which allows collapsing nodes that are not of interest, thus reducing the clutter.
The Paint tool now has an option for disabling Force Visualization in its tool parameters dialog (hit p in the viewer while the tool is active).
Coving of Bezier/NURBs surfaces has been improved. There should be fewer patch cracks.
Fixed crash that could occur when two Group SOPs are in a chain with identical second inputs and both using the Bounding Object method.
Fixed memory leak in the Group SOP when using the Bounding Object method.
Fixed a bug that could cause Houdini to crash if the audio device fails to initialize.
When "Keep Position When Moving" option is turned on, there is now a viewport warning message that appears to inform the user.
. Blocked parameters that are not write-able (e.g. those not in the current take) from being auto-scoped. This makes sense since locked channels are already blocked.
Fixed a bug in mplay where the image description wasn't being updated when 'Reload' was hit. This was most noticable with Cineon images, when the Image White point was changed.
Fixed inspection bug in mplay with gamma: now the original values are returned in the inspection bar, not the gamma'd values.
Fixed a bug with Cineon files loaded with a LUT file. The white point was being incorrectly interpreted, resulting in very dark files.
The opchangetype command no longer moves the node to the end of the user-defined order in the operator list.
When using projector maps in light objects, clamp to frustum now fully works if the OpenGL driver supports the GL_ARB_texture_border_clamp extension.
Fixed a bug that could cause hserver to hang Houdini if hserver was not run with the -d option.
Added an option to the optimization tab of the viewport's Display Options dialog called "Automatically Adjust Near/Far Planes When Homing." Houdini's default behaviour, the same as its previous behaviour, is to have this option enabled; if it is disabled, any adjustments made to the near and far planes will be maintained when homing the viewport.
Change the radius default on the wirecapture SOP from 0 to 0.3 to match the cregion SOP.
Now when the OTL has an invisible toggle parameter, the value of this parameter is correctly saved in the hip file.
Implemented an arc length carve SOP called CarveCurveArc. It is available as proto_install SOP. This sop carves curves by measuring out the arc length distances (rather than using the parameter space "distances").
The TriBez SOP now properly prompts for a point group rather than a primitive group.
A new SOP has been added: the TriDivide SOP. This is used to refine triangular meshes in a similar way that Subdivide allows you to refine quadrilateral meshes.
Fixed a crash in OpenEXR image loading with Display Window EXR images.
- There is a new file format for .rat files which makes them incompatible with old .rat files. Backwards compatibility is maintained and old .rat files will still work. - Texture access has been optimized and now will execute about 20-30% faster for both old and new .rat files.
- Fixed a bug with the current time handle in the animation editor not being drawn properly in multi-graph mode
A new command called "mnew" is available in hscript. This command resets the session much like selecting "File -> New" from the menu.
Fixed a bug with COP states and Display/Current mode. When entering a COP network, some COP states would not be initialized properly with the current node. For some states, like RotoShape, this could cause crashes.
When you try to do a search and java is not installed, Houdini now properly detects that java isn't installed and it displays a helpful web page.
Fixed problems with the list mode in the network editor:
- Right-clicking on a row or copy/pasting nodes no longer reset the
width of the name column
- Changing operator contexts (eg. from OBJ to SOP) now maintains the
width of the name column
- When Houdini is loaded with a network editor in list mode and the
Edit Expose Flags option is on, it now lays out correctly.
The Sort SOP with Sort by Primitive no longer crashes when there are more primitives than points.
Targa files now respect the orientation bit in the header.
Added two new functions to the pop context. The first, poppointid, is similar to poppoint though the particle is specified by the id rather than the point number. The second function, poppointnum does a lookup for the point number based on the particle id.
Fixed select/display related operators in the channel group tree
- Shifting cells in the dopesheet properly handles overwritten keys when overwriting is disabled - Stretching channels in the dopesheet no longer crashes when keys are overwritten - Fixed a bug in which the animation editor was sometimes leaving in channels that should have been filtered out - The dopesheet and spreadsheet both support channels that are not in the current take-- if you can scope it, it shows up, but it might not be editable - You can no longer add or delete keys from channels that are not editable
- Fixed a bug with chround -R: even if, for a particular key, the snapped key can't be added, the other replacement key is still added - The verbose output to chround should be little more human-readable - Fixed a bug with the dopesheet: non-integer frames were sometimes being missed
An ordered set of points is now created when converting an edge selection into a point selection.
Fixed bug in object geometry instancing where if the referencing object in a custom object was created prior to the geometry instance object being created, then the viewport would not update to show the new instanced geometry.
Removing browser popup window that would sometimes appear, saying "startPage=chrome://...".
Fixed bug that prevented Paint Capture Layer's parameters pane from being refreshed properly when entering the state.
- Hitting k no longer keys channels not in the current take (or locked channels)
Fixed a bug where using the RMB on the embedded tree control in the worksheet could execute the command on all the nodes flagged as being current in their respective network.
- Moved "Add Keys" and "Smooth Slopes" into the pane menu as radio buttons
Fixed bug that prevented the group parameter from being used in the BlendShapes SOP.
- Added -f start end option to the loadseq, appendseq and prependseq commands, to override the frame ranges. - Fixed some bugs associated with overriding frame ranges, which were resulting in inconsistant behaviour when loading file from the command line with -g or not, or from the File->Load dialog. The wrong frames were shown in some cases.
Fixed a bug where nodes would not recook on time changes for channels that were time dependant but had only one key.
Added a Reload button to the Iso (3D Texture) SOP. In addition, this sop now also supports the opupdate command properly.
Added strreplace function.
Fixed a bug that prevented UV Pelt from generating texture coordinates when no cuts are specified.
The GU_RayIntersect::minimumPoint() function now works for quadric primitives (tubes, circles, and spheres). It doesn't work very well for non-uniformally scaled versions, however.
Fixed crash which could occur when dragging a node to the parameters panel in the type properties dialog. The crash was caused by not being able to resolve a parameter in the disable string.
- Fixed a bug that caused vcc to crash when the choice #pragma is used. - Fixed a bug that caused all "choice" type #pragmas to be either "choice" or "choicescript". It now supports "choicetoggle" and "choicereplace" variants correctly.
Fixed a bug where selectors were allowing selection from sops which are not eligible for picking. This includes the target output sop (when in Display Current mode), as well as the display sop when the display options specify not to render it.
Fixed a minor bug with "smooth selected slopes" in the graph editor regarding the slopes at either end of the channel.
Fixed minor bug with the selector toolbox sometimes not redrawing cleanly.
A new SOP, the IsoOffset SOP, has been added. This SOP allows you to convert geometry into implicit surfaces and then generate an iso surface from a given offset level. This also lets you build a solid tetrahedronal mesh to fill the implicit function.
A significant bug with tile boundary artifacts was fixed. This bug occurred when velocity motion blur was specified for an object which didn't have the velocity attribute defined.
Starting houdini with a hip file on a command line no longer produces duplicate entries in the operator list for the operators that were hidded (un-exposed).
Setting the object transformation cache size to zero, no longer crashes houdini.
Added the ability to drag and drop camera and light objects into a viewport in order to set the viewport's camera.
Fixed a bug that caused unrelated OPs to recook when an OP is deleted.
Fixed a bug where selecting multiple nodes in the worksheet, but not changing the current node would not properly gray out the parameters with different values in the embedded parameter dialog.
Fixed a bug where changing the double buffer state would result in using an incorrect lighting model.
Fixed several bugs where the speed attribute was only updated during the timestep at the start of a frame. In particular, particles would have an incorrect speed set during the first frame of their life.
The multi-line text editing fields in Houdini now support middle-mouse for pasting. A bug was also fixed where clicking on somewhere to position the mouse cursor would clear the copy buffer.
Added cardoid preset for the IsoSurface SOP.
On Unix, copy/pasting between Houdini and other applications will now consistently work when using explicit copy/paste hotkeys (Ctrl+c/Ctrl+v).
The proto install now includes CreepMulti and FlowField SOPs. The CreepMulti SOP works similar to the Creep SOP but can operate on a sequence of groups. The FlowField SOP moves a primitive's vertices to follow the direction of a vector field.
Fixed a bug with chkeymv -r which was causing not to work at all
The primitive color attribute is now only used for the face color in Hidden Line Ghost mode rather than both the face color and the wire color.
Added option to PolyExtrude to Orient Edge Extrusions. This allows PolyExtrude to ignore the specified edge orientation and choose an orientation that better matches the faces around it.
Fixing a bug in sesinetd that would cause it to periodically crash.
The shortcut keys in the bundle pane that pertain to the bundle list now work also if the keys are pressed in the docked tree view.
When constructed interactively in the viewer, the rivet object is placed at the viewer path level, rather than than being parented to the parent of the object to which it is being attached.
When using a default light for RenderMan rendering, the rib file will use a single light shader (asad_light.sl) rather than diverse shaders. The asad_light shop will now use asad_light.sl for RenderMan rendering.
When rendering points for an object, mantra will now respect the "orient" attribute. If this attribute exists, the points will be oriented so that their normal is along the axis specified by the attribute.
Fixed bug where entering the Modify Channels state and the sop Select state did not update the state name in the viewport until the user did something.
CTRL+MMB in the parm list fields now restores the default value. This is more consistent with normal parameter dialogs.
Fixed the layout of the Color Wheel COP's parm dialog.
The GroupCopy SOP now has a Copy Empty Group toggle. This defaults to on and causes it to copy groups that would be empty in the destination.
Fixed a multithreaded problem with the compositing engine because of some recently introduced non-threadsafe code.
The behaviour of the channel group tree has been changed: - LMB on the scope light, scopes - MMB on the scope light, pins - LMB on the key button, sets keys - Ctrl always toggles
- The overlay behaviour of the regular dopesheet is now present in mplay. - Copying a key over top of another key used to remove a key and crashes mplay. You can no longer copy keys over top of each other. - The mplay dopesheet uses bright green to show moved keys, which is confusing because bright green means non-integer keyframe. It now uses the pending colour: Orange.
Fixed a bug with the Transform COP which crashed Windows machines when the scale was set to zero.
Fixed a bad inefficiency with COP subnets that slowed things down so much in some instances that it appeared to be hung.
.tex and .env files will now show up in mplay's load file dialog.
Cutting and pasting a group of nodes named "add#", where # is sequentially higher numbers, will paste them with the numbers increasing in the same fashion. (Ie, the 6.1 behaviour is restored)
It is now possible to select lights from the camera chooser in output drivers.
The parameter VOP now has string qualifiers to allow for creating a parameter which is a list of objects. This is primarily used for creating light masks in VOPs/SHOPs, but has other uses as well.
Bundles now support SHOP filters properly.
Fixed bug where running opparm to set values on a locked parameter that had channels would result in the channels being cleared.
Removed requirement that tiles flow strictly in one general direction for oplayout. This fixes an infinite loop bug.
- Fix for chkeymv where some destinations are the same as some sources - This fixes an mplay bug where keys mysteriously dissappear when committing back to houdini
RenderMan will now generate alpha in auto-generated reflection maps.
The VEX optimizer was sped up when there were complex cases of nested if/else blocks.
The channel scoper tree no longer randomly changes the current item when shift-selecting multiple nodes to scope.
Fixed a problem with mplay showing a corrupt font for the playbar selection when it is in double buffer mode (normally seen in View->Flipbook with Block Editing).
Fixed a periodic crash and odd behaviour when deleting RotoShape points. Sometimes it crashed and sometimes it removed more than one handle when the underlying point still existed.
The geometry spreadsheet (and other spread-sheet like gadgets) now supports the wheel mouse.
Fixed problems with the help browser and mplay when running Houdini in standalone mode. Communication between Houdini and these applications was not working properly and could lead to Houdini crashing.
The sopcache -l command will now explicitly state that the memory amount is in bytes.
hescape now supports the Houdini-Render-Plus license for RIB and .mi generation. To invoke hescape with this option, please either use the "hescape+" application or use the "-p" or "--plus" command line options. % hescape --plus % hescape -p % hescape+
Fixed bug that could cause Houdini to crash when previewing certain SHOPs that reference a COP with the op:/ syntax.
- A message is rendered when level of detail is low and channels are drawn with straight line segments regardless of slopes - There is a space between the (held) string and thannel name - Draw past ends off affects channels with 0 or 1 keys now
Mplay now assumes integer frame numbers by default. To read fractional frame numbers, use the -D option. Many users liked using '.' as a separator between the frame number and the rest of the filename, and this caused the fractional frame reader to produce very odd frame numberings for the sequence. Also removed the -I option from mplay (assume integer frame numbers), as it is redundant.
Composite ROPs can now render in Houdini Escape without 'Permission Denied' errors.
The File COP auto-renaming feature now works correctly when adding File COPs via opadd. Previously, it would delay renaming the node until it was cooked, causing problems with scripting. Calling 'opadd file [new_name]' also respects the new name, and sets the File Naming Convention to User Defined.
Fixed bug that resulted in no handle hiding for a locked channel that referenced an unlocked channel.
On Windows platforms, the user's home directory no longer defaults to a temporary directory if the user doesn't have $HOME set. It now defaults to the user's 'My Documents' folder.
Fixed bug that was causing bad code to be generated when an input was connected to a rotate VOP. The input matrix was being ignored.
On Windows platforms, the user's home directory no longer defaults to a temporary directory if the user doesn't have $HOME set. It now defaults to C:\Documents and Settings\<user_name>\Application Data.
PolyWire no longer creates extra disconnected points when wiring straight segments.
Bilinear NURB and Bezier surfaces will now render with full LOD if they have trim curves. They do this even if the HOUDINI_OGL_FAST_ORDER2 is set. This is to ensure trims are properly rendered.
The Cusp option will now work better with geometry that is partially cusped. For example, cusping the extruded letter A will cusp the edges as expected.
Fixed a bug in a channel lister that would display "%s" instead of the actual parameter label for certain multi-parameters.
The deforming collision algorithm better takes into account any time spent resolving collisions in preceeding collision POPs.
Fixed bug in OpenGL ROP where spotlights were being rendered as non-spotlights.
Fixed a bug in the deforming collision algorithm which was incorrectly computing the collision velocity in cases where the particle had already collided earlier in the frame in a previous collide POP.
Houdini properly undoes changes to attributes in the geometry spreadsheet.
Houdini no longer crashes if you undo changing a point position in the geometry spreadsheet.
Generation of RIB has been changed a slight bit with regards to transform blocks. The shader definitions are now blocked in a TransformBegin/TransformEnd which may account for marginally larger RIB files. When shaders are applied at the SOP level, RIB files will be marginally smaller now (especially with motion blur) since the object transform is now only output once (rather than once per shader group). Several bugs were fixed with archive generation and auto-archive generation.
Stop playback when quittin in gplay.
Included the Jiggle CHOP in Houdini Escape.
The Operator tree chooser that is launched from a '+' on an op path parm, no longer changes the selected state of the operator. This fixes cases where the user accidentally enters the path for both the current node and the node that was selected from the tree.
Added Ctrl+MMB ability for reverting to defaults on parm input fields. Initialize all UI_Values in a UI_Vector properly to ensure proper type settings.
Add support for "#pragma hint param invisible" in VEX which will generate .ds files with invisible parameters.
Bumped up precision of xcf ladder to 6 SD.
Fixed a crash when using OTLs which was recently introduced.
Fixed bug in Archive Generator ROP where after each frame, instead of calling the postframe script, it would call the preframe script instead.
Improved the sorting in the parm list gadget to group components of the same parameter together, rather than sorting purely by channel name.
The "Create Nested Channel Groups" option no longer includes invisible parameters even if they contain channels.
Mantra now handles .rat files which are embedded in .otl files properly.
Fixed a bug that would cause hscript not to return the filename and line number where an "Unknown command" error is found in a source .cmd file.
Added command support to save the state of the new parm list gadget to desktops and hip files. There is now a new parmlist command that can be used to change the state of the parm list in either a channel editor pane or a channel list pane.
Rearranged node RMB menu entries so that "Save Operator Type" is not right next to "Match Current Definition".
Fixed a bug that could cause handles not to update when the user selects objects in the viewport.
Update input field values before starting field editors.
Single undo for cone handle change.
Fixed bug where resetting vertex attributes was resetting primitive attributes.
Fixed bug where mplay could not kill renders coming from prman display driver.
Support for drag & dropping network boxes into bundle & group lists
Adjusted coloring of network boxes to allow darker colors in the palette to be usable.
A netbox's name will now be displayed on top of the box for COPs/VOPs networks.
Added 2 new options to the network box menu: 1) Delete Network Box And Contents 2) Snap Network Box to Contents Bounds
Made the parm list more robust when user defined operator types are modified.
The bake VEX SOP now deals with wrapped meshes (torus, tube etc.) correctly.
The texture VOP is now available in the shadow context.
The signature for SHOP_Clerk parameter evaluation was changed to eliminate fixed buffers. Any custom SHOP_Clerks will have to be re-worked to use the new signature.
It is now safe to use Parameter VOPs with expressions for their Parameter Name. Previously it was possible to generate invalid code if the value of the expression changed.
Fixed a bug which prevented changes from being propagated properly down through multiple layers of subnet operators if the contained subnets were connected directly to the indirect parent inputs.
Fixed hrender for proper per-frame progress display and to support negative frames.
Added crop window support when rendering from prman to mplay so that it is placed at the correct position within the original size of the image.
Do not show camera if the viewport is in that camera's view.
The asad_light shader can deal with very small cone angles now. Though users should be cautioned that the precision of the cos() function at very small angles may be a limiting factor for very tiny angles (like 0.2 degrees).
Handling of the "scope" argument in shaders has very slight different symantics now. Previously, if an invalid pattern was specified (i.e. the pattern referred to a non-existant object), the pattern was assumed to be invalid and mantra defaulted to the object's reflection mask (or the appropriate mask). Now, an invalid mask will be interpreted as a mask which will not intersect any objects, which is a more correct interpretation.
The system() expression function (and the systemES() function)
now handle back-slash protected double quotes slightly
differently. This enables functions like:
system("echo \"This is a test\" | grep \"test\"")
to be evaluated properly.
rscript should work as advertised now.
Changing the autoscope behaviour so that it always matches which nodes are currently selected. Before, when a node became selected it would add the parameters to the scope and when it was deselected it would remove the parameters from the scope. Unfortunately, if other parameters were scoped outside of autoscoping, they wouldn't be unscoped when the selection changed.
Fixed openport -a to always return the correct port number that it opened. It might have been off by 10000 if the process pid was less than 10000.
Fixed bug where non-sequence renders from the Viewport Render Button would not be backgrounded if the corresponding ROP had its frame range enabled.
Rearranged animation editor options (minimum size is smaller, layout is more intuitive)
Fix for using loops in selectors panel from Operator Type Properties.
Fixed bug that could cause Houdini to crash if trying to display nurbs or Bezier surfaces in VEX shaded mode.
Fixed a couple of COP state problems:
- the composite handles in Composite/Layer COPs wasn't responding to key
presses
- the RotoShape state was improperly setup when launched from a COP
monitor, which resulted in odd state behaviour.
Do not process motions if we are avoiding key repeats using the special hack (from X11_Window), because the event position values may be wrong. Fixes erratic shaking when in volatile key state and moving outside of focus-locked window.
Fixed problem when synchronizing custom operators that had nested custom operators within them. If the inner custom operator had a new parameter added after the outer custom operator was saved, then synchronizing the outer custom operator would not immediately reset the new parameter to its default. However, it would restore itself when the hip file is reloaded.
Added "Remove Unused Points" parameter to Dissolve SOP (defaults to on).
Fixed crash that could happen when loading corrupted desktop files that contained no panes.
Added support for the -o (omit network box names) and -f (print full paths) options to nblsop. Similar support for -f added to opls.
Toggling to the range slider in mplay does not replace the playbar anymore; the range slider pops up under the slider and the start/end fields appear beside the playbar.
Made the channel group key state work with unkeyed parameters
Fixed bug where undoing a copy/paste of a node containing network boxes caused a crash.
Fixing a problem where, when dragging a handle in the viewport, the viewport would not update until you stopped moving the mouse. This but only appeared when "delay inactive viewport redraws" was turned on.
Fix for channel group undo.
Features: - Chround is rewriten with four modes-- check them out with "help chround" Beaviour: - Fixed the behaviour of the scope/pin button - Replaced "Preserve Shape" toggle in JIVE with a button strip that makes way more sense Bugs: - Fixed a bug in which currently unpinned channel groups do not unscope after an attempt to unscope them while pinned - Fixed bugs in which adding/removing channels or groups were not updating the scope flags of the target group - Fixed a bug in which inserting a group was not updating its parents for parameters that do not have channels on them - Fixed a bug where checking if a key is on an integer frame, we where using the tolerance as if it was expressed in frames instead of seconds - Fixed a bug in chscope where it would not list scoped parameters - Chscope -f shows the flag status - Fixed bug in which the channel group key button was not adding keys to parms without channels - Fixed a bug where removing a parameter from a group and undoing would create a channel on the recreated parameter Speed: - Made the scope flags update much faster - Made scoping many channels faster
Fixed a variety of problems with the mplay blocking tool:
- Frames would disappear if moved outside the original frame range
- Fixed a crash if the start frame was moved backwards
- 'Export Blocking Changes' now dims if all the frames are moved back to
their original positions.
- The NT mplay flipbook no longer is 'Always on Top' as this gets in the
way of viewport flipbooking.
- The frame range no longer snaps back to the original range when frames
are moved.
- When changes are exported back to Houdini, the frames immediately turn
blue (unmodified) instead of waiting for a redraw to do this.
- Homing on the playbar causes an immediate redraw to show the home.
Can now select a network box and do group operations (e.g. add a group to the network), and the network box's contents will be automatically considered for the operation (e.g. the netbox's contents will be added to the group).
Fixed bug where creating a custom operator from a node in a netbox removed that node from its netbox
Support to merge files containing network boxes via the hscript command mread, or the "Merge File" option in the File Menu.
Manipulating of bone with the bone tool (not bones), is now more stable. The crash is fixed.
The tools: aconvert, easy, aappend, aclip, acombine, ainfo, aplay, areverse, claudio, clchan, clchn, clcp, clphone, mcacclaim, mcbiovision, mcmontanal, and motion_analysis now run any token.
Fixed crash associated with connecting to indirect inputs.
Fixed primitive filter in delete sop which was sometimes being applied to wrong detail.
Do layout selected tiles if there is only one selected. Fixes hang when a child (that is located above its parent) is selected.
Fixed hang when trying delete node, but user mask restricts access.
Fixed a crash in RotoShape when deleting points.
Fixed bug that caused the flipbook to wait for external events (such a mouse move) to proceed.
Fixed infinite loop problem with OTLs which use a Switch SOP to decide their output.
Fixed a major bug when autoscoping and following channel references which was resulting in invalid channel references being created and scoped.
Fixed a bug that caused drag and drop of parameters to no longer work, and caused slow refreshes in the viewport.
Fixed numerical stability problem when cracking a rotation matrix near a Gimbal lock situation.
The chgpopulate command will now add all auto-scopeable parameters and channels to the groups. The -a and -n options have been removed and the -c option now means to only add parameters with live channels. The -f option now supports spare channels and will add a subgroup for them.
The parm list defaults to display mode in the channel editor.
Fixed some problems in the parm list when adding/removing channels from the selected parameters.
Added some menu entries to the parm list RMB menu to pin/unpin channels to the scope.
Added a -z option to chscope command to clear the scope.
- Updated the chcommit command so that it will include parameters that don't yet have a channel (if they are scoped). - Hitting the global 'Set Key' will now also set the key on parameters that don't yet have a channel (if they are scoped).
A bug was fixed when derivatives were required for variables which were imported from point-cloud textures. This was primarily noticable in pcunshaded() loops. Derivative computations are performed slightly differently inside pcunshaded() loops now. Please see VEX documentation for details.
There are two new VEX functions to make transform matrices. These functions take two vectors which determine the basis vectors for the transform matrix. Please see VEX documentation for more details.
There is a new SOP (PolyFrame) available through proto_install. This SOP will compute a "frame of reference" for points based on primitive connectivity. This frame of reference will be computed in a consistent fashion so long as the topology of the primitives remains constant. This SOP can be used to create a per-point transform from a rest position to a deformed piece of geometry.
- Added pinned flag on paramaters: a pinned parameter won't
unscope when you scope other things.
- The behaviour of the channel group tree is much more
complicated. You can now:
- Click the scope icon (pin if scoped, otherwise scope if unscoped).
- Shift-click the scope icon (toggle scoped -- will unpin if
necessary).
- Shift MMB the name of a group (scope a group).
New behaviour:
- ctrl-MMB the name of a group (toggle pin)
- ctrl-shift MMB the name of a group (toogle pin, but add to
scope if pinning)
- Added add to take, remove from take and create take on the
channel group tree
Parameters must now be explicitly flagged as being autoscopeable. These parameters are now scoped along with those parameters containing channels when autoscoping is enabled. Flagged a subset of the object parameters to be autoscopeable.
Flipbooking a COP with an arbitrary frame range now sets that frame range in mplay properly.
Flipbooking and rendering 16 bit floats to mplay now works correctly.
Do not grow inputs when disconnecting. Changed multiple connections wiring order to be based on layout, by y in vops/cops and by x everywhere else. Multiple connections now match in which input/output the connection instead of just defaulting to the first. For ordered input, the specified connection is maintained while other selected nodes are wired by layout. When connecting unordered input of a node containing ordered inputs, none of the other selected nodes are connected to the ordered inputs.
Relaxed restriction on playback range slider ui to animation range when "Restrict playback to Start and End frames" is off.
Fixed a bug in the Deform SOP that caused stale attribute offsets to be used in Fast Deform when capture weights are removed.
We no longer save the autoscope flags on parameters which have not been explicitly changed by the user. This is much more robust because it allows those parameters to follow the defaults determined by the parameter template.
When rendering geometry that had a mix of polygons and other primitive types as sub-division surfaces, mantra would have crashed. This bug has been fixed.
Scoped channels are now automatically flagged for display.
Fixed a bug with sorting the scoped channels.
Parameters do not default to autoscope unless they are flagged as able to contain a channel.
In the volatile modify channels state, the LMB now does an "interpreted" drag instead of bringing up the ladder. Most parameters just map the horizontal motion of the mouse into the parameter range to modify the parameter. Translate parameters are special in that we attempt to interpret the mouse motion within the local space of the node to determine the appropriate value change.
Banana Skin VOP and Periodic Noise VOP now work in the RSL context.
Added ability to extend the selection in the parm box to include all channels with the same name as those already selected.
The netmantra (and rscript) applications have been removed from the Houdini distribution. The netmantra command was used for a version of mantra prior to VEX to perform network rendering. The rscript program was used in conjunction with netmantra for this task. These tools are no longer available.
Fixed bug in CaptureMirror SOP where it would incorrectly cook if the following steps occurred: - the display flag was set on its input sop - the display flag was set on some node on the capture mirror or downstream - the capturemirror is recooked
Fixed snapping to distinguish between front and back.
Added popup help for the display column in the parm box. Also fixed a bug which would allow you to close the channel group gadget when it was the only gadget open in the channel list pane.
The parm scoper no longer updates itself when it is not visible in the UI.
Fixed bug that prevented the metaweight() expression function from adding interest on the specified SOP.
Fixed bug in the parm box where we were not correctly using the channel colour for spare channels. Also allowed using the parm labels even when using full channel names.
Fixed problem with the object transform handle where pivot mode would work only after moving the object first while not in pivot mode.
Consistent keying hotkeys: - k is the global add key on scoped parameters hotkey - Ctrl+k is the pane-specific add key hotkey - Ctrl+Shift+k is the pane-specific remove key hotkey - Ctrl+k (snap options) needed to be changed to Ctrl+Shift+j
The parm box now has hotkeys to select all, select none, display all and display none.
When deforming normals in the Deform SOP, the result is now always unit length. Previously, they might not have been if the point was weighted by multiple bones.
Fixed bug that caused global handle in PolyExtrude not to be centered around edge selection.
The parm box now has an optional column to manipulate the display flag for channels.
In output drivers, if any of the executed callback scripts return with a non-zero status, then the render is aborted.
After every executed hscript command, we now set the status variable to be the exit code. By default, the value is 0. The exit command now takes an optional integer status code which also sets the status. The unix command now also returns the exit code in the status variable.
Fixing problems where Houdini would exit with an unhandled signal if you did a search and java could not be found.
The value fields are now optional in the parm box. Combined with the new mode recently added, this will allow this gadget to replace the old brief mode in the scoper tree once the channel editor supports the new display flag for channels.
There is a new pragma in VEX to specify "tags" on parameters. These tags are discussed in the compiler help in the online VEX documentation.
- Creating nested channel groups no longer brings up the channel editor, instead, an optional dialog is displayed. - The chgpopulate command no longer supports the -w option.
Enabled the following vex VOPs in the rsl context: cellnoise, cellcracks, skin, stonewall, and cardboard.
Fixed an SSE optimization problem with 16bit -> FP conversion code. This would occasionally result in bad pixels along the right side of the composite buckets.
The parm box now has a new mode of operation where it marks scoped channels for display. The channel editor does not yet respect this new channel flag.
There is a new SOP, the Connectivity SOP. This allows you to create an attribute on either points or primitives. The new attribute will have a unique number for each collection of points or primitives that is connected. This can be used to break up geometry according to connectivity information.
MMB to get the info text on a SOP will once again cook the SOP.
Point cloud textures no longer core dump when their results are required for derivatives in ray-tracing.
Fixed undo when deleting a node that was the second input to a Merge SOP with three inputs. Previously the undo operation would not reconnect the Merge SOP inputs correctly.
Before running operator event scripts (OnCreate script, OnUpdate script, etc) we now clear the noalias variable if it is set (and reset it afterwards). This means these scripts can safely use command aliases (though it should still be avoided because aliases in one Houdini session may be set up differently than in another Houdini session).
Executing the dsreload command now forces a reload of VEX functions for operator types defined in .vex files on disk. Operator types embedded in OTLs already had this behavior.
The OPcustomize file entries now work for scripted operator types such as those loaded from OTLs. Also added hscript commands that correspond to all the actions that can be performed in this file.
A bug with opacity culling in mantra was fixed.
The izg tool will now auto-compute near/far planes when creating a gray scale image. There's also a new option to specify that an inverse image should be created (black near, white far), which is actually probably more the expected result. Half-precision floating point data is also now fully supported.
RAT file textures now support half-precision floating point images.
Added global hotkey (Alt-0) to clear the current scope.
Adding an updateui hscript command. This command tells Houdini to process any events that have been queuing up. These events include externally-generated ones like mouse clicks and keypresses but they also include internally-generated ones that may have been queued as a result of executing other commands.
The Floating Channel editor now starts with the parameter list on by default and the parameter scoper off by default.
Minor bug fixes for the parameter box.
The -b option in mantra now accepts "half" to render half-precision floating point images. These have a high dynamic range, but only consume 16 bits per channel.
As 16-bit floating point numbers are becoming more common in Houdini, here are some statistics about what a 16 bit float can store: - Largest value is 65504.0 - Smallest non-zero value is around .001 In general a half precision floating point number will yield around 4 digits of precision. For many cases (i.e. texture maps), the advantage of requiring half the memory is a clear advantage.
It's now possible to specify more than just 8 and 16 bit depths for image conversion using iconvert. The -d option takes: -d byte,char,8 = 8 bit unsigned int -d short,16 = 16 bit unsigned int -d half = 16 bit floating point -d float = 32 bit floating point This only works for formats which support the bit depth specified. For example, SGI images don't support half-precision floating point images.
Added "Enforce Consistent Topology" parameter to the Subdivide SOP
In all shading contexts, there are now functions to evaluate the BRDF's for the built-in lighting models - specularBRDF - phongBRDF - blinnBRDF - diffuseBRDF (both Lambertian and Oren-Nayar)
The texture/colormap functions in houdini now support access of images stored in half-float (16 bit float) format.
i3dconvert and i3dinfo now have support for tiled block files. The tiled block format provides a memory efficient way of storing point cloud data.
Fixed the mousepane and mousepath expression functions when the mouse was over a viewer window, such as a 3D viewport or a CHOP viewer.
Fixed the parser for OPlibraries files so that "//" and "/*" are no longer recognized as comments. This means that UNC paths and wild cards are much easier to use in these files.
Added an option to the dsoinfo command to display only operator types defined by DSOs, and omit scripted operator types. Fixed the help for this command to match the current usage.
The addattribute VOP now has support for the "vector" and "indexpair" keywords to the addattribute() VEX function.
Speeding up the saving of capture weight sops to the hip file. This decreases hip file save time dramatically in some cases.
The shimport() function has been added to the surface and fog shading contexts to import values from shadow shaders.
The new parameter scoper no longer allows the user to select nodes.
The chscope command has a new '-a' option which will allow the scoping of parameters that don't yet have a channel.
The scatter SOP was changed to have new methods of - Interpolating between area and the alternate attribute - Computing nearest distance
The "Create Subnet Operator Type..." menu item for creating an empty new subnet operator type has been removed from the Ctrl-RMB menu of the network editor. It was often being confused with the "Create Type From..." menu item on the RMB menu of node tiles. To create an empty new subnet operator type, use the "File->New Operator Type..." menu.
Added VOPs for the new point cloud texture operations.
There is now support in VEX for point cloud textures. Please see VEX documentation for the pcopen(), pcimport(), pcexport(), pcfarthest(), pciterate(), pcunshaded() and pcfilter() functions.
Fixed recently introduced bug that would cause Houdini to crash when adding a Parameter VOP in a VOP Network.
Added the autoscope flag to parameters
Added graph mode copy and paste, first draft
Hscript support for netboxes added, along with a big list of other enhancements including subnet/OTL support.
When multiple viewports are open in the geometry viewer, only the viewport containing the mouse is guaranteed to update. The other viewports will update only when there are no more input events to Houdini. For example, if you play, scrub, or move a handle quickly in one viewport, the other viewports won't update until you stop playing/scrubbing/moving the handle. There is a preference to switch back to the old behaviour.
Performing many miscellaneous performance optimizations for hip file loading, 3D display, and playback.
Panes which have teared off of desktops now get saved in the desktop file. Desktops saved on or after this version will not be loaded in prior versions.
Added a new volatile modify channels state for objects, sops and pops. In this state, the user can use the ladder handle to change the selected scoped channels.
The parameter box now modifies a global scope selection instead of merely maintaining an internal selection. Also fixed a minor bug with selecting.
Fixed crash that occurs when loading locked custom subnet operators that contain VOP networks.
Added check on playback range and global animation range for reverse values. Added hotkey for edit keys button. Fixed update of range start and end fields when range is restricted.
Added proper negative and fractional frame support to mplay when the -g option is used to load files. The new command line options, -I and -N, disable fractional and negative frame support respectively, treating '.' and '-' as normal filename characters (useful for some sequences which use these characters as separators, and would be interpreted incorrectly).
Added drag and drop functionality to the parameter box and updated the help prompt.
The defocus COP now supports per-pixel mask defocusing.
New consolidated playbar in place with option to display of ticks, audio, keys. New option to display range slider below the playbar. Added button to control edit/non-edit state of consolidated playbar/dopesheet. When keys are hidden, keys are also locked in consolidated playbar/dopesheet. Look and use of range slider and dopesheet selection changed.
The Deform SOP can now deform user specified vector attributes.
When a viewport flipbook is aborted, we now show what has been generated so far.
Fixed the memory command on Linux when more than 1 GB of memory is used.
The resample SOP now correctly interpolates the point and vertex attributes. Previously the Resample SOP used incorrect blending weights sometimes causing visible artifacts.
Fixing a bug with reading 8-bit aiff files that was introduced in 7.0.122.
Fixed the "Save Operator Type" operation for saving assets to an OTL file with spaces in its path.
Fixed bug that would create an invalid dialog if more than one Label parameter existed in an operator type.
Fixed certain crashes with calling cuset commands within custom panel callback scripts.
The parameter box now displays a prompt.
Replaced the channel scoper and the parm chooser in the Channel Editor with an initial version of a new parm scoper tool.
Added support for toggling the expression state in the parameter box using the MMB. Moreover, the state is now indicated in a way more consistent with normal parameter dialogs.
Fixed bug in expression language that could prevent some expressions containing escaped quote characters from being parsed correctly.
Fixed bug in expression language that could prevent certain strings from being interpretted properly if they contain the ';' or ')' characters.
The english name of the AngVelocity POP has been changed to Angular Velocity.
You can now do a one time add or scale in the animation editor by typing in +value or *value in the appropriate UI field (T V S A, at the bottom) it will use the scale handle's pivot if the scale handle is up, otherwise, just frame 1, value 0
Added support for scoped parameters to the parameter box and made the selection behavior more consistent with the tree gadgets. Also added an option to use the parameter labels instead of the channel names in the list and reworked the hotkeys a bit.
Adding the ability to read in .wav and .mp3 files on all platforms.
The bundle list pane settings are now saved when Houdini exits and they are restored when Houdini starts up.
When in real time and resetting to frame 1, the playbar will no longer rarely jump to the last frame hwen playback restarts.
Hitting Shift-C while the mouse is over the play bar will no longer crash Houdini.
Added chkeyrm that removes keys using a range or a frame number
Optimized animation editor handle redrawing
Lights with no colour are now omitted from being enabled, freeing up an OpenGL lighting slot. We may have many lights with no colour contribution set up in the scene for the sole purpose of generating shadow maps.
A new "OBJ Cache" tab has been added to the general preferences for "Objects and Geometry" section. The OBJ Cache tab allows setting the general parameters of the object cache. Note that the "SOP Cache" section of the preferences has been moved to the "Objects and Geometry" under "SOP Cache" tab.
Fixed bug that would cause Houdini to crash when putting down a Platonic SOP.
Fixed divide by zero in evaluating a spline() function when it was on a single key in a channel.
- The bundle list pane now has buttons for selecting and deselecting all operators. This option can help clear the selection before the operators are selected for addition or removal from the bundles - In the bundle pane, the filter guessing is now turned off by default. To turn it on, click the "Set filter type" button in the pane toolbar.
Added optional small look for range slider, now used below playbar. Regular range slider still used in mplay, gplay, and JIVE.
Implemented more of the RMB entries for the parm box parameter fields.
Added ability to remove-select with ctrl and add-select with ctrl+shift in addition to the existing ability to toggle select with shift. (Only available in replace select mode).
- In the dopesheet, keys are "ghosted" on group rows which do not represent a key which exists on all channels in the row.
The Border, ChannelCopy and UnPin COPs are now maskable.
All the 2-input composite operations now have an optional mask input. This includes: Add, Atop, Average, Diff, Inside, Max, Min, Multiply, Outside, Over, Screen, Subtract, Under, XOR and Composite.
Channel groups and scope channel list can now keep channel memberships even if a channel does not yet exist. In other words, we can add parms to channel groups and scoped channels.
Added the -n option to the main apps (Houdini, Hselect, Hhalo, Hescape) which sets the cook mode to Never, regardless of the cook settings of any of the loaded files or scripts. Useful for fixing 'busted' hip files.
All of the COP filters now have their mask and scope parameters in a new Mask tab, for consistency. 'Resize Mask to Fit Image' has also been added as a mask parameter. If on, the mask will be scaled to fit the output image resolution (if it differs). Note that this scaling adds to the cook time, and is quite significant for simple COPs like 'Bright' or 'Contrast'. If the node is changing more often then the mask, it is more optimal to insert a scale COP before the mask to avoid the extra scaling overhead on each cook of the masked COP.
Lights which have a non-zero dimmer value but with a colour of (0, 0, 0) are now also used when generating shadow maps.
Fixed crash that could occur if the callback script on a custom panel attempted to delete a custom panel gadget via curm.
Changed intersectVertexWithDeformingGeometry to compute hits in time instead of dist units to allow for hits with unmoving particles.
All text editors in Houdini can now accept keys from the numerical keypad.
Fixed a bug that could cause Houdini to crash when an active window is suddenly destroyed.
Significantly reduced the amount of events generated when a node with many parameters is dragged onto the "Operator Type Properties" parameter page.
A new parameter has been added to the Rivet object. The parameter name is "Point Weights" and it defines the weights applied to the three points from which the rivet origin is calculated. This allows a finer control where the origin is placed on the plane defined by the three points, for example (0,5, 0.5, 0) positions the origin half way between the first two points.
Fixed a bug where the collision pop would always clamp negative cook times for the collision geometry to zero. This was breaking collisions during negative frames.
When deleting custom panels, we now also do two things first: - Disallow deletion if the custom panel file on disk is read-only. - Prompt the user to ensure that they really want to delete the panel.
The node headers in the parameter box now use the whole row instead of just the name column.
Fixed a bounds computation problem with the Transform COP when the pixel aspect was not square. This caused odd streaking problems when rotations were performed.
Fixed crash in Morph State when switching layers in a network the user has manually modified.
Turning RTTI on when Houdini is compiled compiled with gcc 2.96. (It was already on when using gcc 3.x.) Also fixing hcustom to no longer use -fno-rtti and -fno-exceptions when it should not have used those options.
Moved the hotkeys for the channel list gadgets into their own context.
Initial commit of the parameter box functionality. It can be accessed from the channel list pane or channel editor. This is still very much a work in progress.
A new hscript command, "objcache", is now available for the object cache management. Please, see the help for details.
A new object parameter is now available on the Misc tab that allows caching the object transforms. Caching may improve animation playback time by remembering the transforms for several frames for a given object. During the playback these transforms are retrieved from cache rather than being computed on the fly. Caching bones and sticky objects yields best performance gain. To enable transform caching for a given object, turn on the "Cache data" parameter on the Misc tab of the object parameters dialog. Note that there is a limitation to how many transform can be cached. If this limit is reached the least recently used object's transform will be replaced by a new one. On long playbacks of many objects, there may not be any performance gain unles the allowed cache memory is large enough to accommodate all cached objects. The "objcache" hscript command allows the management of the object cache size.
The scatter SOP now correctly handles the case where an attribute with negative values is used as a probability distribution function. Negative probabilities are assumed to be 0.
Improved format for saving stencil mappings in the Capture Layer Paint SOP. This prevents the problem of root paths changing unexpectly when creating an instance of an OTL. Old Capture Layer Paint nodes will be automatically converted to the new format on their first cook. An error will occur if the proper skeleton root cannot be found.
The izg program has had several bugs fixed with it. As well, a new option was added to determine the bit-depth of the output image. The options are the same as the -b option for mantra. Images created will now be single channel luminance images (where the format supports single channel images).
You can no longer create attributes with spaces or other invalid characters with the Measure SOP.
The Group SOP will no longer evaluate the creation name when creating the pop-ups in the combine tab. This means a creation name of "foo$F" will show up as "foo$F" rather than "foo1". This was done to prevent infinte recooks in cases where the creation name was a point expression to animated geometry.
The Audio Panel in Houdini now supports loading Audio files, in addition to sourcing audio from CHOPs. Additional options have been added to the audiopanel command to support these new parameters.
Updated the playbar look, so that it now shows tick marks, the current audio, and scoped keyframes. All of these display items can be turned off through the playbar Ctrl+RMB menu (Show Ticks, Show Audio, Show Keys).
Made using the mouse in the animation editor more responsive especially with lots of channels.
There's a subtle difference between 3 floats as an attribute and a vector of 3 floats. Internally, the geometry can store an additional type qualifier to indicate that the attribute needs to be handled by transforms differently. At the current time, there's a mis-named "vector" attribute which treats vectors as normals for transforms. The "N" attribute is an example of such an attribute. Previously, in VEX, there was no way to specify that attributes created during the running of VEX code should be anything other than an array of floats. The addattribute() VEX function has been modified to scan for type qualifiers. Please see the VEX documentation for further details.
Added metaweight() expression function.
A new environment variable HOUDINI_COLOR_PICKER_GAMMA was introduced for gamma correcting color chooser and color parameter displays. When this parameter is set to value other than 1.0, then the color gadgets adjust their color based on the curve defined by the gamma exponent. To set this variable either before Houdini starts or at the hscript command line type "setenv HOUDINI_COLOR_PICKER_GAMMA = 2.2"
A bundle in the bundle list pane now accepts drag and drop of subnets regardless of whether the filter allows them or not. This is intended for subnets containing lights because for such subnets the contained lights are added to the bundle on the drag and drop.
Fixed crash when clicking on a custom panel button when currently editing the panel.
Fixed crash when using opparm -c command on a parameter which then caused the node to be deleted.
There should be no cracks or holes due to missed samples in mantra renders anymore.
When the render button is in on an output driver (or the render command is run), the current working directory of the .hip file is temporarily changed to the output driver being rendered (i.e. opcf). The directory is restored at the conclusion of the render.
The order of the parameters in the texture VOP has been altered to match the order of the input.
The clamp VOP now handles vector4 properly.
Fixed bug where hold down space bar in network pane and clicking (without dragging) brings up toolbar and network pane becomes stuck in view state.
Fixed bug where when loading custom panel files from a hip file that already existed on disk, the custom panel gadget values would be set into the wrong panel.
The VEX pow() function now correctly works on vector4 types (as stated in the documentation).
When writing VEX plug-ins, it's now possible to force the plug-in function to have a return code, even if it modifies multiple arguments. Due to this change, all VEX plug-ins will have to be re-created, regardless of whether they use the HDK libraries or not.
RIB generation has been generalized in Houdini. There is now a file ($HH/ROPfeatures) which specifies the list of renderers supported by Houdini. Each renderer has a list of features which it supports. The file not only allows new renderers to be added to Houdini, but also allows for customization of RIB feature sets. For example, it has been noted that by just specifying the "trace" attributes for prman11, the geometry is persistent and impacts the memory footprint of the render. We include prman11.0-rt which turns off ray-tracing in prman11, but still supports all the other prman11 feature set. There is further documentation in the ROPfeatures file.
Fixed problem with causing objects to recook whenever the contents of operator groups were modified.
- Changing frame does not require the animation editor to redraw, so it is much faster - Made default level of detail high instead of maximum - Hitting q to create a time group creates a time group at the current time if no keys are selected - Made the pivot for the scale handle much bigger and bolder
Fixed bug to allow negative turn speeds.
Eliminated interface flickering when rendering to mplay.
Changed look of range slider. Dopesheet now has a view mode to allow for panning, zooming, and unrestricted scrubbing (accessed by holding down spacebar). Selection labels are now selectable and hover at ends of dopesheets when selection is out of view. New global animation option allows for restriction of playback range to animation range start and end.
Fixed problem with sho and the Houdini display driver for prman. It is now compiled using prman 11.5.3.
Sort channels for drag and drop so that the huds appear in the right order
Added fullscreen blackout mode to mplay (everything disappears but the image). This can be activated by the hotkey Ctrl+f, from the Settings->Fullscreen option, and the -F command line option. Ctrl+f will exit fullscreen mode, as well as Esc (for people who accidently get into that mode and try the common exit procedure). New viewers can be spawned and dialogs opened on top of the fullscreen mplay, if desired.
The NVidia Half float extension (16bit float) is now supported for displaying rasters. It is auto-detected; any video cards that do not support this extension will promote their 16bit float rasters to 32bit float.
OpenEXR now reads into COPs/mplay in its native 16bit mode.
The 16 bit float data type is now supported by the Image library.
Fixed bug where renaming an operator that was listed in the Visible Children subnet object parameter would not update.
It is now possible to use the op: syntax to specify paths to
geometry objects in VEX. This is only supported in the OP
contexts at this time (not supported from within shaders).
For example:
Cd = metaweight("op:/obj/model/merge1", P);
A case where a malformed texture call could trigger a crash with non-rat textures is fixed.
Fix a bug with undoing the deletion of nodes in the middle of chains which was introduced in 7.0.92. Unfortunately, this reintroduces bug 15078.
The AttribCreate SOP now produces a warning when attributes with spaces in them are created. The attributes will be changed to conform to the required standard.
Fixed bug that could cause invalid stencil mappings in the Capture Layer Paint SOP.
Fixed missing space in output of opbls -l hscript command.
Added "16 bit floating point" to the list of supported Compositor data formats.
Rendering sub-division surfaces in mantra should be more memory efficient and also faster in most cases.
Removed the 'Defaults' tab from the Compositing preferences in the Settings->Main Preferences dialog. Saving these defaults can now be done through the Composite Project settings, using the 'Save As Default' button. The defaults are saved to $HOME/houdini7.0/compproject.pref.
Added the Mask COP, which masks out an area of the input using a plane from the mask input.
When calling callback scripts from custom panels, we now explicitly set CUP and CUG to reflect the current gadget and panel.
Fixed bug that could cause PolyExtrude to compute edge locations in a backwards incompatible way from prior versions of Houdini.
Added the chgpopulate command. Also added menu options from the Operator pane menu and the node RMB menu to create nested channel groups corresponding to node parameter folders.
Houdini 7 now requires a version 7 or higher license.
Fixed bug where the RenderMan ROP's "Max Specular Depth" parameter was being overrided by the Object's "Reflect Bounce" parameter even if it was disabled.
Fixed bug in Capture Layer Paint that could cause loss of stencil mappings when the rootpath changes unexpectedly.
- build handles for all channels (not just displayed channels) so that changing the number of graphs doesn't result in handle-less channels
All generators now have Effect Amount sliders, and their own separate Mask tab in the dialog for the mask parameters.
Fixed bug with not terminating loops when entering hscript interactively.
Added "Preserve Groups" options to the Copy and Duplicate SOPs. When set, the copy groups are not deleted before the each copied geometry is added to the group.
- Fixed bug when deleting the current node, the resulting tree has no current node even when one is required - Deselecting everyting resets the current node to the "root" (actually first-row-node), which is where you want it -- good for adding lots of groups - Made redraw request into deferred redraw requests in treeviews, leading to fewer UI events hopefully
Fixed crash when opparm is run with insufficient number of arguments with the -v option.
Fixed crash when using a chop expression function in the From parameter of the Rename CHOP that referenced an invalid track name.
It is now possible to "Create New SHOP Type" from an RSL VOP Network. The SHOP operator type definition is placed in an OTL file, and the shader files (.sl and .slo files) are put in a directory of your choice.
Fixed a bug where changes to the inputs of a subnet would not cause recooking of nodes inside another subnet that was connected to the indirect input of the top level subnet.
It is now possible to open the hotkey manager dialog by holding Ctrl+Shift+Alt when selecting a menu item in the right mouse menu of nodes or in tree controls.
The opchangetype command has been changed to be more robust when the nodes inside the node being changed run creation or deletion scripts which affect the number of nodes at the subnet level. This also affects the "Create Type From..." operation.
Fixed bug in Subdivide SOP which caused a crash when using "No Edge Division" on a group.
Fixed a bug in CaptureLayerPaint that prevented painting when a point group was selected.
Mantra renders motion blur faster.
The $OS local variable will now cause its operator to recook if its name has changed.
Added the snap options back into the COP viewer UI. It mysteriously vanished long ago. It is now located in the upper left corner.
Added 'Bypass Selected Nodes' to the worksheet menu (Ctrl+RMB) and assigned it the hotkey Ctrl+b.
Bypassed nodes now have their icons dimmed slighly, with a small X drawn over them. The icon is also converted to greyscale if it has any color. This keeps the node type icon recognizable, while indicating that the node is bypassed.
Depth Map filenames are now always stripped of leading and trailing white space.
On Linux, the memory command now outputs the virtual memory size as well.
Fixed bug where running opchange could modify non-writable operators.
Fixed network editor refresh problem when in list mode with expose flags displayed. Previously, changing the expose flag from the textport via opset would not properly update when changing the flag from on to off.
Fixed bug where after appending a ROP Output Driver after a SOP, renaming the SOP would not update the SOP Path parameter to reflect the change.
Fixed bug in hscript on Windows that would force the user to hit enter twice before a command is executed.
Added some primitive shapes to the RotoShape state. Instead of freehand drawing a curve, the following shapes can be generated and positioned: - Regular N-sided polygon - N-pointed star - Circle (or ellipse; a ring can be created with a hollow circle) Fixed the Undo's for this state. They are now complete, and no longer crash. Corrected the shapes/curves for the image aspect ratio, so that rotating the shape doesn't distort it. NURBS support has also been temporarily removed from the state until it works correctly.
Fixed audio scrubbing using the mouse on the playbar to not sustain when turned off.
- Added an isolate function in the channel editor (from pane menu and hotkey) - Channel lister gradients channels with selected handles - Copy and paste work with channels in order - Switching pane type removes jive pane menu entries
The opscript command with recursion turned on no longer recurses into locked subnet nodes. Unlocked subnet nodes are created with the new -u option to opadd, which causes the node to be created in an unlocked state.
Fixed crash that could occur when trying to copy parameters that contained extremely big expressions.
We now maintain the image aspect ratio of manually placed background images by increasing the appropriate scale rather than always affecting the height.
When the hscript java command is run with the -w option, it is no longer possible to click buttons on the Houdini interface until java exits.
Fixed bug which would cause bad input connections to nodes with variable numbers of inputs (like the Merge SOP) when undoing the deletion of a node connected to any but the last input.
The group parameter of Capture Layer Paint now shows point groups in the popup menu.
Fixed a problem with disabling not working on the last frame of a disabled channel segment that caused animation popping.
The objpretransform command now allows reading of pretransforms on objects which are non-writable.
Added a new option, -u, to the opadd command. This option causes the new node to not load its contents if it is a custom subnet operator with locked contents. The new node will be created empty and unlocked.
Fixed the output of the pane command so that it is now in the correct format for executing this command directly in hscript.
We don't need to evaluate on channels when putting keys
The pending time is in local time and was not being updated when the channel was scrolled
Prevented some unnecessary evaluation of string parameters when building parameter dependency information. This should prevent some unnecessary cooks when using expressions in string parameters.
There was a bug in spy that prevented more than 8192 files in a single directory to be displayed.
Fixed problem with audio playback when sustain was turned off.
Fixed crash that could occur when turning on Time Slice mode in the Houdini audio panel.
Doing a vertex smooth operation with the UVPaint Brush on a hull whose rows and columns are different sizes will no longer crash.
Fixed bug in opselect and opflag expressions that could cause Houdini to crash in certain cases.
Fixed problem when turning on audio that constantly replayed the first audio chunk.
Fixed bug that would occasionally crash the CHOP Channel Exporter dialog.
The GEOio table will now properly handle entries which have only a write command.
The View->Flipbook dialog now has an entry for Background Images. A background image sequence can be specified, which will appear behind the rendered elements of the viewport in the flipbook.
Fixed bug with opchangetype on nodes that were contained in bundles or groups.
Fixed bug with undo when nodes contained in bundles were deleted.
SOP_CaptureLayerPaint will no longer cause crashes when Unload is set to Always.
Fixing a bug where, if a Houdini command returned a large amount of data, all of the data would not be sent through an open port.
Fixed 'Save Preview' in mplay, which was not saving anything but black images.
Fixed bug that caused the scale handle to not always appear
Added a 'Fast Interactive Cooking' toggle button to the COP2 viewer,
in the top right corner of the interface.
This makes toggling this option on or off much quicker. There is also
a default hotkey ('f') bound to this button.
Fast Interactive Cooking reduces the resolution of the image while a
handle or parm slider is being dragged, and returns to normal resolution
when the handle or parm slider is released. The default interactive
resolution is 1/4 of the normal resolution.
All the histogram modes that map data vs. U or V now have the option to graph a single scanline, specified by a slider.
Added the Audio Frame and Time Offset parms to the View->Flipbook dialog.
Removing the old pdf documents from the Help menu.
MPlay now has an Audio bar, just above the Playbar. By default, it is hidden in most profiles. It can be displayed by selecting Settings->Audio Bar (or modifying the profile). The bar contains: - Frame/time offsets for synching audio - A waveform display of the audio over the playbar - Volume slider - Mute toggle - Button to launch the 'Load Audio' dialog. In addition, modifying most of the audio parms doesn't cause the audio to reload.
Most of the COP generators now have an optional mask input. The generated data is restricted to the area defined by the mask (or outside the mask). The outside area will be black. The mask paramerers (Mask Plane menu and Invert Mask) are located on the Image tab of the generator. The generators affected are: Color, CornerRamp, Font, Geometry, Noise, Ramp, RotoShape, RotoSpline, Shape and VEX Generate.
Changed option to change shading mode when modifying view such that there is only one threshold for object render time in milliseconds. The new shading mode when modifying view has its own cache.
Added a radio button for "Only Include Constant Channels", this can be used to remove these channels
Fixed bug in Dynamic Parenting tool with a frame offset of 0 and the child object is not writable.
Fixed bug that turned on secure selection after selecting a new point in the Morph Tool.
Renaming a bundle properly propagates to the parameters. That is the bundle name in a parameter is changed from the old bundle name to the new one.
Selecting operators of a bundle via a bundle ui (yellow button), now also selects a current node among the selected operators.
Fixed potential core dump when loading a hip file which uses RBD.
Fixed a problem that would cause some chop expression functions (such as chopn, chopl) to not recook when the CHOP the referred to changed.
Fixing a problem where, if the Houdini services were defined in /etc/services, Houdini would try to use an invalid port number. This problem showed up on SUSE machines.
The Object Network node inside SOPs will now show up the proper size.
Making the delete sop an order of magnitude faster when deleting all but a few points.
Fixed crash that could occur when executing scripts that contained errors.
Added the RotoShape COP, the successor to RotoSpline (which it will eventually replace). The RotoShape has better viewport interaction, supports the drawing of multiple splines and compositing operations between the splines. It also fixes some of the deficiencies in Rotospline, such as better selection handling, point insertion and NURBS curve support.
Fixed another bug where loading hip files from the File menu could cause light masks to be improperly evaluated.
The Paint Capture Layer state now has a "Erase Single Bone Changes" mode.
The opparm command with options -p/-c is now forcing or inhibiting key insertion (thus overriding the Animation preferences setup). This is the desired behaviour.
Added block editing to mplay when flipbooking 3D viewports. In the View->Flipbook dialog, enable 'Enable Block Editing' when 'Scoped Channel Key Frames Only' is on (with scoped channels). In mplay, the playbar will change to a dopesheet view, with the scoped key frames shown. The key frames' can then be moved. Select 'Tools->Export Channel Blocking' in mplay to export the changes back to the scoped channels.
When Houdini tries to access an OTL definition file that not accessible, a warning is going to be displayed.
The message command has been extended to include user defined buttons in addition to the message displayed. Now the command returns a zero-based index to the button that has been clicked to dismiss the message dialog. See help for details.
The bundle filter labels from "Only allow SOPs" format to "SOPs alowed only" format. This ensures that in narrow ui collumns information about filter type (e.g., "SOPs") is not truncated. Otherwise "Only allow" would show in narrow columns.
fixed minor bugs with trees
Fixed bug where refreshing operator definitions could lose changes to toggle parameters.
Added new option to render geometry in different shading modes while modifying view. Shading mode is determined by user defined (lower bound) thresholds on the number of points contained in given geometry. (Found under "Thresholds" tab in display options). Removed "Move Wireframe option. Added new shaded bounding box shading mode.
Fixed a bug in the Edit operation that would cause Houdini to crash if the user tried to flatten the selection to the construction plane.
setting a visibility on a subnetwork resets the visible children parameter to "*" so that the all the children are visible.
Changed viewport comment parameter in camera, light, and switcher objects from under "View"/"Viewing" tabs to under "Misc" tabs.
Fixed crash when copying empty channels from parameter to parameter
Fixed a bug when using the BSpline smoothing kernel in the AttribTransfer POP.
Fixed bug with adding recursive channel references using !!ch(...)!! notation on non-animatible parameters. Previously, renaming such nodes would cause Houdini to hang.
The Wind POP will now only accelerate particles up to the local wind speed. This matches the description in the help. For the old, velocity independent, behaviour, toggle the Ignore Velocity parameter.
Fixed a crash in gdxf if the file contained no group names.
- chkeymv now moves all of the keys simultaneously instead of one by one - chkeymv -r: does ranges (which support stretching and reversing) - chkeymv -c: copies instead of moving
Fixed a bug in the copy sop copying of the template point attributes when one of them was internalN.
Added option to render geometry as wireframe bounding box.
Bugs with loading bundles in .hip files (or copy/paste) have been addressed.
Fixed a bug with moving folders in the OTL tree, where children of the folder moved were not having their indices updated
Audio no longer fades out when the sustained option is turned on. Chunks of audio always play forward when scrubbing. Advancing one frame at a time will only play one chunk of audio.
Fixed opgrm to properly remove multiple groups at the same time.
Added autoscroll to tree view
Fixed a bug that could cause Houdini to crash when creating a VOP network which generated code with the string "_name" in it.
The COP viewer now supports three viewing modes:
- Follow Display
Same behaviour as before. The images of COPs with their display flags
set are shown in the viewports, along with the handles and states
corresponding to those nodes.
- Follow Display / Current
The images of COPs with their display flags set are shown. However,
instead of showing the display nodes' handles and states, the
current node's handles and state are shown over the displayed images
(if the current node is upstream, or an eventual input node, of the
display node). This mode is useful for editing earlier nodes while
viewing later output.
- Follow Current
The image, handles and state of the current node are always shown.
The display flags have no effect.
The mode can be switched on the fly using the 3-button strip in the top
right corner of the COP viewer (icons with blue, green/blue, green
square(s)). It can also be set in the Display Options, Handle page, by
setting the option 'Handles/Output Follow' (and saved as the default mode
if Save As Default is clicked).
OTLs now support RGBA Mask parameters (mostly seen in COPs). Previously, they would appear as integer parameters.
There's a new SOP (scatter) which generates random points over surfaces (with a fairly uniform distribution).
The measure SOP can now measure curvature
Fixing a couple of problems with the automatic rewiring of VOP subnet inputs and outputs based on changes to the parent node wiring.
the visibility of a camera linked to the viewer now can be quickly toggled from the menu located to the left of the camera menu that specifies which camera is linked to the viewer. This new menu contains an option to toggle camera visibility on and off. (A shortcut key can be assigned to this menu item using the standard way of SHIFT+CTRL+ALT click on the menu item, which will take effect next time Houdini starts).
in the network pane, when the operators are viewed as a lilst, the inputs menu does not show any descendents of any subnet anymore. Only nodes shown in the menu are the nodes at the same level as the operator whose input is represented by the menu
the camera menu in the view pane will not include any descendents of a hidden subnet (i.e., subnet whose expose flag is truned off).
opening files with a lot of nodes does not overflow the event queue anymore
merging hip files does not delete existing groups anymore
When a winroll parameter of a camera/light is non-zero, using the camera/light handles does not cause the camera/light to twist unexpectidly
Added crop handles. They are rendered only when you are in camera state and viewport is in corresponding camera view. Crop handles have draggable side bars and corner dots.(Shift applys change also to the opposite end). The lines on the crop box translate it. (Ctrl restricts translate to horizontal or vertical translation). A semi-transparent mask (either dark or light depending on viewport background) is rendered on the rest of viewport not within the crop area. New toggle in camera handle menu to turn crop handle display on and off.
Now, by default, the tree node selection in the bundle pane tree is now linked to the pick flag of the operators. There is a button in the tree toolbar that turns this option on and off. When the selection is unlinked (button off), the selection of the tree nodes is independent of the operator selection. When the selection is linked, only nodes at current network level shown in the pane toolbar are shown in the tree. Also any operator that is visible in the viewer is shown in the tree. Since the tree highlights the nodes that are added or removed to/form bundles, linking the selection to the pick flag enables selection of operators in the network or the viewer pane and then adding these to the bundles.
A bundle can be duplicated and several bundles can be merged together. To perform any of these operations, select the bundles, then CTRL+Right mouse button on the bundle list, and choose it from the pop up menu. Duplication of a bundle is also available from the drop down menu for each bundle row.
Changes in the snapToSelection display option no longer causes the display lists to be rebuilt which was causing the observed rendering slowness.
Fixed problem in ObjectMerge SOP where it did not correctly recook on a time change if there were errors in the merged SOPs at the previous time.
Fixed the opbrm hscript command to use glob patterns for removing bundles.
Added -p option to the opbls command. Ths option will cause the command to list only the picked (selected) bundles
- Fixed off-by-one dopesheet error - When you switch mode: dopesheet->graph, we ensure minimum 1 frame width, - When you switch mode: graph->dopesheet, we ensure integer frames
Added computePointPositionTransforms() method to Edit SOP. This allows HDK users to determine the local coordinate frames used by the Edit SOP.
Fixing a bug with following channel references when autoscoping based on the object selection.
- fixed a bug with collapsed channel groups being lost on channel modification
Fixing a problem with the irix installer.
$HOME/sesi_licenses.pref has been renamed to $HOME/.sesi_licenses.pref. Houdini will no longer look in $HFS for this file.
- Audio panel uses UT_Notifier, for simplicity - Major re-work of vertical adapt mechanism to make it more like horizontal adapt code -- it now works better and is easier to read - "key current" command only keys channels that are graphed - Current time is no longer handled with different member time UI_Values (in dopesheet, table and graph) and member functions (for SI_CurrentTime) but rather through one commone time value and accessor method in JIVE_Local - Templated channels appear in all graphs, rather than having a graph just for the templated channel (which is completely useless). in other words, templates are usefull in multi-graph mode now - Copy and paste do not write to templated channels anymore - The dopesheet row supports the "key current" command - MIN_VRANGE / MIN_HRANGE renamed with JIVE_ prefix, and MIN_VRANGE is set to MIN_RANGE (which comes from UI)- EPSILON replaced with MIN_VRANGE (duplicate constant) - The horizontal axis always renders (does not dissappear when you show audio) - fixed bug with time group moving even after the keys have collided (the old "relative move"
Channel pointer arrays were being resized to 64 during instantiation even though their size were usually no more than 3. They are now resized correctly. The flag indicating whether or not a parm channel is being actively changed by a handle has been changed from a UT_BitArray to an unsigned int. The channel aliases are now only created on demand. Moved the multi-parm instance index array, myInstanceIndex from PRM_Instance to PRM_Multi. Removed PRM_ParmList::localVariables. The obsolete parm list is now created and deleted on demand. The channel reference string array for ordinal parms (PRM_Ordinal::myStringValues) is now created on demand. PRM_ParmList::myChannelAliasesTable is now created on demand. CH_Collection::myChannelAliasesTable is now created on demand. PRM_Parm::myTemplatePtr which was stored in both PRM_Parm and PRM_Instance is no longer stored in PRM_Parm. Added a static list of parameter hash tables and channel hash tables to PRM_ParmList. Now, only one set of hash tables is created per non-scripted operator type and, thus, one set is shared among all instances of those operator types. However, if an operator contains multi parms then a set of hash tables is created per instance as before.
OpenEXR 1.2 is now supported. It has support for luminance-chroma images, a new slightly lossy 32 bit float compression (from Pixar) and a revamped Tile format. Please see www.openexr.com for more details. Note that the Tile format is incompatible with version 1.1 - so any tiled v1.1 EXR images will no longer load (though v1.1 scanline images will).
Saving Network Boxes to .hip files
There is now an option in the mplay display options (and COPs image viewer)
to have the display gamma affect the background color. It is located in
the Correction tab in the Display Options dialog ("d") with the gamma
settings.
The background color picker has been moved from the Viewport tab to the
Background tab in the Display Options.
VOP networks now report recursion errors, rather than just generating bad code.
The "New Desktop" item in the File Menu now works properly.
Fixed bug in BlendShapes SOP where the Morph Setup parameter would always be set to off upon loading.
Fixed crashes with certain multiple input SOPs. This occured when cooking a higher numbered input SOP chain caused lower numbered input SOP chains to become invalidated.
Fixed bug in our pre-processor which would not always resolve relative paths correctly.
Fixed bogus infinite recursion errors when an object subnet had set its output transform node to be one of its contained nodes.
Fixed bug that prevented channel aliases from updating properly when a multiparm instance was deleted.
Fixed an alignment bug which could cause striping artifacts in texture maps with an odd number of components.
The list of valid operator types is no longer displayed when an error occurs in 'opadd'. This list is still available if you run 'opadd' with no arguments.
Added x and y rotation lock when tumbling, accessed by pressing alt+LMB in viewport. Lock about x or y axis determined by initial mouse position change.
Force the variables dialog to use a float XCF slider.
Fixed problems with Background images in mplay. BG images:
- couldn't be changed to other files once set
- were not being thrown out of the cache properly
- didn't support a sequence of images.
Fixed bug where doing a File|New or File|Open operation would not remove detached persistent handles.
Fixed crashes when moving keys in the DopeSheet that contained expressions which referenced other operators (such as ch() expressions).
Added "Flatten Layer" button to Capture Layer Paint SOP.
Further fix to chsop expression to stop it from modifying the value of the referenced parameter.
Adding arrow key, history, and tab completion to hscript on Linux. It can be disabled by setting the HSCRIPT_NO_HISTORY environment variable to 1.
Fixed a bug that caused hscript commands to be run in an incorrect order when creating an OP with a CreateScript.
The opset -V hscript command will now handle SOPs as well.
Fixed bug where deleting channels on selected nodes, would reset the values of all nodes to the same value. We now leave the values alone on the selected nodes when deleting channels.
Fixed crash when trying to copy/paste channels onto the originating parameter.
The hscript command opbls has the following changes:
- When outputting via the -l option, we now always print out the lock
status
- Added new -c option which only prints out the bundle name and its
operator contents
Fixed problem that prevented operators with embedded help text from displaying their help text.
Fixing a memory leak in the rotospline COP when feathering is enabled.
Fixed bug that could crash Capture Layer Paint during a Smooth Operation.
Fixed bug with file history manager such that it now handles file and directory names containing spaces.
Added optimisation to Capture Layer Paint SOP for avoiding unnecessary work updating capture weights when the stencil contains a zero value.
Fixed some more bugs in rotospline feathering when handling aspect ratio.
The image library now supports PNG files (.png).
The ingroup() function now returns values which are exactly 0 or 1. Previously, the function returned 0 if the point wasn't in the group, but if the point was in the group, the return value would have been some arbitrary value other than 0 (possibly a large negative or positive number).
Fixed bug in dopesheet where copy/pasting keys would be wrong if immediately preceded by a shift keys action.
Fixed bug where setting the blend value to 0 on the InverseKin CHOP would cause the bone chain to not cook when interactively rotating.
Fixed some bugs in rotospline feathering when handling aspect ratio.
Made several changes to the bundle UI: 1) not all buttons are now displayed for bundles that filter through operators for which these button do not apply. For example, a bundle that accepts only objects will not display a bypass button 2) middle mouse button on the display button will pop up a menu from which an operator can be chosen, whose display flag should be turned on. This is a convenience tool designed for bundles that contain SOPs from the same network. Clicking the display button on, will result in only one operator in the bundle be displayed, since one and only one SOP can have a display flag turned on. To make the displayed SOP less random, the menu is provided to select the operator for which the flag should be turned on. 3) The replace (=) button now clears flags of the all the siblings of the operators contained in the bundle. Siblings meaning nodes that reside a the same level in the tree. Now the bundle UI behaves more like the group UI. Shift + click on a button will ihibit clearing of the sibling flags (when (=) button is used) Ctrl + click on a button will force clearing of the sibling flags (when (+) button is used)
Added turn pop which changes the direction of the velocity of particles given an axis and turn speed.
Fixed a bug that caused incorrect wiring after an OTL resynchronisation.
When a spare channel name gets changed, we now update all the references to that spare channel.
Improvements were made to the way Houdini computes the amount of memory it is using on the Windows platforms.
Fixed bug that caused invalid expression evaluation when an "`" quoted string appeared on a line with multiple commands.
Adding a new expression function, opfullpathfrom. This function returns the full path to a node that is specified relative to a second node path.
Fixed bug that prevented opparm's -l option from working properly.
sopcreateedit now wires the new SOP to 'sop1'
Added more options to the "Constraints" page in the Collision POP to allow using a previous hit normal to try and detect and prevent leaks.
The Iso SOP will now properly lock its input.
The PolyExtrude SOP now computes local spaces for edges in a more robust manner. The local space calculations for faces (and edges) was also made more robust for certain cases.
Fixed bug that prevented capture weights from being normalised in SOP Deform if their sum was already close to 1.
Fixed bug in Capture Layer Paint that prevented the pCaptAlpha attribute from being created.
Fixing several problems with the chsop expression function when it is used to reference a parameter that contains a list of nodes.
PolyExtrude now has an option in Local mode to "Keep Shared Points Together" which keeps the points originating from the same point together in the extruded faces.
Fixed bug where trying to unload an OTL definition that was preferred could cause crashes because the defintion did not get updated.
Made HOUDINI_COOK_MODE_THRESHOLD check more efficient on Linux.
For the Lattice SOP & Point Deformations, added support for point-specific radii, and support for the $PT variable. Also added a parameter in the parameter pane which will display guide spheres for the radii for each point in the rest geometry.
Fixed the hserver and sesinetd usage messages on the Windows platform.
Added new ObjectGroupMerge SOP to proto_install
adding subnets that contain lights to a bundle that accepts only lights (via its filter), will result in the contained lights being added to the bundle (even though the subnet itself is not a light)
Fixed replacing the bundle contents with operators not compatible with current filter. Fixed the undo/redo of replacing the bundle contents.
Added a "Constraints" page to the Collision POP with some parameters that users can specify to try to prevent bouncing particles from leaking through static surfaces.
Added '-d' option to sopcreateedit. If this option is specified, a new Edit SOP will be created that can be inserted before the Deform SOP and still achieve the same final point positions.
Houdini no longer locks up on Linux when windows are minimized or shaded.
It is now possible to set the audio scrubbing rate from within MPlay. This can be accomplished using either the -W command-line parameter or the "Load Audio" window. In addition, MPlay's audio scrubbing rate can be modified when performing a flipbook with an audio file set; in this case, MPlay's scrubbing rate will be set to Houdini's current scrubbing rate.
Fixing a bug where bypassing a POP on frame 1 would not recook properly.
Removing the licensing checks from spy.
Optimized the InverseKin CHOP's performance when given a blend value of 0.
The From and To parameters of the CaptureMirror SOP as well as the Includes parameter of the Inline VOP now support embedded newlines.
Fixed parameter dialog bug which failed to load the parameters of a custom operator if its cached dialog file on disk was zero length.
A new pane is implemented that allows an interactive editing of bundles.
To access the bundle pane, choose "Bundle List" from the "Pane" menu.
There are several columns in the view; to see the help for these columns,
press "?" button at the right side of the pane icon bar. The following
functionality is available in the pane:
= creation of a bundle
- click "New Bundle" button
- or, CTRL+Right Click in the pane, and select "Add bundle"
- or, drag operators (either from the tree view, or from other panes)
onto the empty space in the lower portion bundle list pane (if there
is any).
= deletion of a bundle:
- select bundles to delete, CTRL+Right Click, and select "Delete Bundle"
= adding/removing/replacing operators to/from/in a bundle:
- select operators in the tree view, select bundles in the view,
and click +/-/= button in the icon bar
- drag operators from the tree view, or other pane onto a bundle
and select an option from a pop-up menu that appears upon release
of the mouse
- in the scene viewer select objects and choose "Add Selected
Operators to Selected Bundles" or "Remove Selected Operators
from Selected Bundles" in the "Operator" menu in the viewer pane
menu bar.
= renaming bundle
- select a bundle, click on the name. It should turn into an edit field.
Then type new name and hit Enter.
= lock/unlock a bundle. Locked bundles maintain an unchanged contents.
Unlock bundles will automatically add to themselves any newly created
operator that matches the bundle filter.
- click the padlock button to the right of the bundle name
= set bundle filter (see explanation above).
Also note that a filter can be automatically guessed when new set of
operators is added to an empty bundle. To turn this option on/off
click the toggle button in the icon toolbar.
- choose any filter from the drop-down menu in the list
= clear a bundle (remove all operators from it)
- click the button in the icon toolbar
- CTRL+Right click, and select "Remove All Operators form Bundle"
There are also some operations that can be done on the operators
in the bundle
= hide/expose the nodes in the network view
- click the expose +/- button in the first column
= select/unselect the nodes
- click the yellow button in the second column
= synchronize/unsynchronize OTL definitions of the operators contained
in a bundle
- select the item form a drop-down menu in the third column
= make operators visible or not visible (if possible and applicable)
- select blue button in the display column
= make operators templated (if possible and applicable)
- select the magenta button int the template column
= bypass operators (if applicable)
- select the bypass button
= set the operator path for all panes linked to bundle list pane
- choose an operator from a drop-down menu in the last column
For convenience there is also a tree view which displays the operator
hierarchy. Hide it or show it by CTRL+Right click and selecting the toggle
"show operator tree". Features of the tree view
= the operators of the currently selected bundles are highlighted
= to see the operator union of currently selected (several) bundles
turn the UNION filter on, by clicking the union button.
= to see the operator intersection of currently selected (several)
bundles, turn the INTERSECTION filter on, by clicking the intersection
button
= to see operators that are accepted by the filters of the currently
selected bundles turn on the bundle filter toggle button.
It is now possible to undo the "Create New SHOP From Vop Network" operation from the right mouse menu on VOP nodes.
opset command now takes -V option that sets the visibility of an object. It is a bit smarter than setting the display flag on/off, because it will also try to set the parent's visible children (visible objects) parameter to make an operator visible.
Adhoc groups are deleted after unlocking, preventing crashes with the Mirror SOP when unloading was set to Always.
The Fetch CHOP now supports bundles, operator groups, and channel groups again.
Removed 1023 limitation from arg() and argc() expression functions.
The Layer & Composite (+individual composite nodes) now have the ability to fade the background & foreground(s) with the "Background Weight" and "Foreground Weight" parms. For layer, each foreground layer has its own weight parm.
Added chopls hscript command which lists all the track data of the given chop.
Scope Channels..Dialog option to find animated channels (with optimization to only consider channels that change as animated, no matter how many keys) option to find channels with non-integer keyframes (so that they can be fixed) fixed bug with create group not working Channel Editor Performance scoping and descoping is almost instantaneous (even for many channels) reduced memory overhead by a few megabytes, and of undos by a factor of five (depending on the undo) display updates properly, things that look selected are selected and vice-versa only handles in the horizontal range of the window are drawn (if you zoom in, things will get faster) Channel Editor Usability bezier (acceleration) handles move in two dimensions keys move in two dimensions (by pressing CTRL) keys are allowed to move past other keys you can turn off display of key/value indicators by turning off "Show All Handles", only the channels with selected handles will show their handles -- this is like XSI's method of picking handles This might work better when you have a lot of channels. you can click on a channel to show the channels under the cursor (ALT-MMB) you can key only the channel under the cursor (ALT-SHIFT-LMB instead of ALT-LMB -- key all channels) Moved From the Graph Editor to the other modes -- Spreadsheet and Dopesheet Copying and Pasting Samples (C and P buttons at the top of the animation editor) Template pattern (to Dopesheet only for now) key the current time in the Spreadsheet and Dopesheet with SHIFT-K Hold pending values (to Dopesheet only for now) (use MMB on the on the time slider thumb) Integer Keyframe Snapping keys snap to nearest frame as you move them time bar snaps as you move it time groups snap as you move them Non-Integer Keyframes show up as neon green in the dopesheet there is an option to make them show up as bright white in the graph editor (Bold Non-Integer Keys in the new view menu on the side) Scale Handle is much easier to see, especially the pivot allows you to move the pivot outside the box UI Value Fields (at the bottom of the channel editor) continually update as you move handles so that you get constant feedback accelerations are updated as slopes change since beziers can change those Channel Editor Fixes auto-homing problems are fixed frame selection problems are fixed channels are sorted properly in the dopesheet bugs fixed with stretch keys in the dopesheet bugs fixed with moving keys in the dopesheet selection is preserved throughout undos again Channel Group Tree numerous bugs fixed
Added '-x' option to "opparm" command. The '-x' option will generate hscript commands that can be used to re-create the channel.
Fixed bug where overriding locked parameters did not work.
Remove false assertion when carving a bezier curve with 0,0.
Added ability for user to apply images to custom panel buttons
Fixed Bulge SOP cooking problem when updating to newer operator type definitions.
Removed geometry selector from Paint Capture Layer State. Also added the ability to add and remove layers.
Fixed a crash while saving a regular image (non-pic) from mplay with the Color selector set to '(none)'.
Added the Emboss COP, which can do simple bump-mapping lighting.
Added the ninput() VEX function to the COP context. It returns a 3x3 matrix of the specified pixel and its 8 neighbors.
Added documentation for the VEX inputlabel pragma for setting the label of a VEX operator input.
Fixed a bug where the Type Properties dialog would allow the creation of parameters with names that started with a number. Now parameters with this sort of name are prefixed with an underscore.
Added the Corner Ramp COP. Initially setup as a 4 corner ramp, this node is also capable of interpolating any number of user-defined ramp points.
Fixed bug where a lattice SOP would leave points that are no longer in its area of effect deformed
Fixing a bug that prevented hscript from reading more than 1023 characters on a command line.
There was a bug with Match Current Definition on a custom subnet which contained another custom subnet. If both subnets were unlocked, and the inner subnet contained nodes with modified parameter values, those values would not be changed to match the definition. This problem is now fixed.
Fixed a bug where loading a hip file with a viewport in ortho mode would not properly update the ortho/perspective button.
Fixed a bug with the H,S,V global variables in VEX which caused them to return garbage if R,G or B weren't read.
Added the Degrain COP, which attempts to remove grain without affecting features.
Added a mode to Paint Capture Layer from smoothing the capture weights for a single bone.
you can move keys past other keys on the same channel
Particle networks now have a "Random Seed" parameter to allow reuse of the same network to get differing behaviors.
Fixed crash when updating custom operator definitions on existing nodes which had differing parameter lists.
A bug with specifying light scopes inside VEX statements was fixed.
The behaviour of hserver in bad conditions has been improved significantly. As well, applications now have a default grace period to run before they terminate due to license failure. This grace period is only allowed if there was successful license checkout at some point in the past. hserver will still block on occassion. This is a limitation of the fact that each Houdini application (including hscript, mantra etc.) will connect to hserver at some point in time for license information. If hserver is unable to contact sesinetd on the remote machine, each of these applications will block an hserver thread. The default number of threads was bumped up from 3 to 6. This allows 5 concurrent applications to block up threads and still be able to run "hserver -l" to query the status of hserver.
Split out the Composite COP into specific compositing COPs: Over, Under, Atop, Inside, Outside, Add, Subtract, Multiply, Screen, Diff, Average and Xor.
Fixed a problem with box filtered transforms when the wrap mode is repeat.
Fixed bug that prevented some OP changes during re-synchronisation.
mplay will no longer crash when attempting to play audio files whose rate is greater than 44100 Hz when it has been spawned from a Houdini flipbook.
For the hscript opparm -d command, added support for looking up channel aliases and tokens individually.
Fixed crash when trying to open up the Load/Save Presets dialog if there were exactly 5 presets directories found in the HOUDINI_PATH.
Automatically switch cook mode to "Never" when the memory limit set by HOUDINI_COOK_MODE_THRESHOLD is reached.
Fixed bug where setting the camera or light window size to 0 and viewing through it would cause the viewport to behave erratically.
Fixed bug where deleting a parm from an OTL could cause Houdini to crash.
Fixed bug where copy and pasted locked OTLs contained unlocked OPs.
CTRL-LMB now switches to the previous bone in the Paint Capture Layer state.
Added -l option to the hscript opparm command to list out the parameters for a given OP. This is similar to the -d option but does not display the values of the parameters.
Fixing a bug where adding event generators to Houdini's event loop could cause crashes. These crashes could by triggered by running java commands from hbrowser.
Fixed a crash in the uvtransform SOP.
Fixed some intermittent problems with the embedded help browser on Windows platforms.
Updated the opisquitting expression function to also return 1 when doing a File->New or File->Open operation.
Fixed bug where copy/stamping string attributes from points to primitives would lose the last entry.
Fixed bug that left an object on the undo stack preventing some redos from working.
Made several enhancements to the Ramp COP: - The limit of 40 points has been removed. The Ramp point UI now adapts to the number of points added. - Hold interpolation added, which hold the point's color until the next point. It is the opposite of Step interpolation. - Adding new points to the ramp now preserves the ramp's color at that point.
Added opisquitting expression function which returns 1 if Houdini is in the process of shutting down, 0 otherwise. Also made it possible to have multi-line delete scripts attached to nodes.
Fixed bug that would prevent the Group SOP from showing errors that might have occurred.
Fixed bug where redoing the deletion of multiple nodes that were connected to inputs of the same node would recreate the connections incorrectly.
Fixed a bug where nodes would not be properly connected when operator toolbars were not being used. Also added some useful popup help to the "Use Toolbars in Insert/Append Menus" preference toggle.
Fixed a problem with writing new definitions to the Embedded OTL which would cause Houdini to use the wrong OTL as the source for these newly saved definitions.
Deleting all the operator definitions from the Embedded OTL without uninstalling the Embedded OTL would prevent new operator definitions from being written to it. This problem is now fixed.
Fixed problem where operator tree browser would sometimes draw into the network editor which contained it.
Fixed a bug where a captureregion SOP with channels in the obsolete parameters could crash Houdini.
The Primitive SOP's colour swatch now behaves similarly to the Point SOP's. Both go white with the default $CR, $CG, $CB.
Fixed a bug where calling the UVProject Initialize callback from an opparm command would not add to the correct undo block.
The Layer COP can now accept any number of inputs. The per-layer UI is dynamically allocated. Also, the layer PI has been split into 1 PI per layer, rather than 1 PI for all layers. Several items have been added to the handle menus: - Reset Transform - Composite Operation menu - Image Wrap menu
The Cache SOP correctly maintains its old values when it's instanced geometry changes. The Cache SOP responds to unload events by dumping its cache.
The opgetinput command now supports querying subnet indirect inputs with the -o option. This fixes a bug where you couldn't insert nodes between the indirect inputs and other nodes.
The Edit Geometry and Model Geometry options from RMB on viewport objects will now work.
Fixed a bug that could cause SOPs not to cook correctly for the first time.
The pulldown Model Current Object menu works again.
Changing the group field of a lattice SOP will properly recook.
Fixed a bug that could cause the PolyPatch SOP to crash Houdini.
Fixed a bug where templated or footprinted SOPs were not properly cooking on frame changes.
Fixed incorrect behaviour when using chadd on an existing channel that had more than 2 keys.
Added a "Reference" parameter to the Jiggle CHOP which specifies the parent object space that the result should be placed in. The Multiplier parameter takes place in the reference space.
Replaced Edit SOP with SuperEdit SOP.
The Window Roll parameter now has a full 0-360 slider.
It is now possible to undo a POP node creation from within the viewport.
Fixed a bug that caused incorrect normals to be calculated for GEO_Face-based primitives.
Fixing the generation of VOP dialog scripts which used Vector 4 inputs or outputs.
You can no longer use the Geometry Spreadsheet to edit points in instanced SOPs. This is an improvement from being able to make such edits, and thence crashing Houdini.
The Skin SOP no longer crashes with certain invalid input geometry, it now aborts with an error.
Added a playbar to GPlay.
Fixed bug in SOP_CaptureLayerPaint's calculation of pCaptAlpha.
Fixed an AttribStringEdit bug which required hardening a string.
Fixed a bug that could caused a crash CaptureLayerPaint's "Reset All Changes" operation.
Fixed crash on exiting CaptureLayerPaint state.
Renamed EditPoints state to Morph.
Removing the hconnect proto install. Since openport/hcommand now uses sockets and can work with telnet, hconnect is no longer needed.
The openport command and hcommand now use sockets instead of message queues to communicate. This way, if Houdini is killed, message queues are not left lying around. Also, the system limit for sockets is much higher than for message queues, so it's possible to have more ports open at once. The help browser and the java, tcl and tk commands now also use sockets to run commands in Houdini. As a consequence, it is now possible to use openport across machines. By default, the openport command only allows connections from the local machine, but other hosts can be allowed to connect by specifying an IP mask when the port is opened. Also, it is now possible to telnet to an open port to run Houdini commands. Note that ports numbers less than 10000 use a socket port that is 10000 greater than the Houdini port number.
The PaintCaptureLayer state can now switch between any CaptureLayerPaint SOP feeding into the displayed SOP. The state can also visualize the final capture weights used in a deform.
Fixed crash in the AttribStringEdit SOP caused by inappropriate use of strcpy.
Improved mplay's audio scrubbing, which should now be equivalent to Houdini's. Audio now plays throughout frames instead of just at the beginning of each frame.
Fixed a bug that could cause giges to crash on malformed IGES files.
Fixed a bug with the Refine SOP that could cause it to crash Houdini if refining geometry with attributes.
Fixed slowness bug where objects with their display flags turned off were slowing down the rendering of displayable objects. This was fixed by adding a display flag check.
Fixed problem with printing out warnings upon quitting Houdini/hscript when running delete scripts that try to destroy operators within synchronized custom operators.
When an Export CHOP is disabled via its second input, the parameter it's exporting to no longer stays orange and doesnt display "overridden by..."
Fixed crash when bringing up the bundle chooser after collapsing or extracting from subnets.
Fixed a crashing bug in Rivet state when a reselect button was pressed before any object has been selected. After right-click crash would occur.
Fixed bug where upon if the SuperEdit SOP received two non-matching inputs, it would cause undesirable cook update behaviour.
Hitting reset changes on a Brush SOP that has not yet cooked will not crash.
The UVFuse SOP will no longer unlock more inputs than it locks.
Fixing the "Initialize Simulation SOPs" parameter on most Output Drivers so that it actually causes all simulation-type SOPs (POP SOP, Spring SOP, Particle SOP, etc.) to be initialized before performing a render.
Fixed crash when deleting VOP Networks. Problem introduced in 7.0.12.
Certain COPs now have their connections labeled, such as 'Layer' and 'Composite', which indicates the operation being performed at a glance. Masked operations also show which plane is being used as the mask. These labels are visible on the worksheet, and disappear at lower levels of detail (when the network is zoomed out, to avoid clutter).
Doing a polyreduce with a percentage of 100% should no longer cause a polygon to be lost.
Added a File OP dialog for node creation, accessed via 'Ctrl+Tab'. You
can pop it up and select multiple files or file sequences. The dialog
will create 1 OP for each file or file sequence (foo$F.ext) selected.
The current OP network type determines the types of files shown.
This is supported for networks with File OPs:
- Objects (geo files) : Creates an object containing a File SOP for each
geo file or geo file sequence.
- SOPs (geo files) : Creates a File SOP for each geo or geo sequence.
- CHOPs (channel files) : Creates a File CHOP for each channel file.
- COPs (image files) : Creates a File COP for each image or image
sequence.
Fixed recently introduced bug with saving geometry through the GEOio table. The same problem fixes mantra renders failing, particularly when rendering simple scenes.
Fixed crash when hitting Apply or Accept in the Type Properties dialog when the "Save To Library" field is empty.
A new object called Rivet is implemented. This object attaches to geometry points of another object and follows it as the geometry moves and deforms. For the rivet to be attached properly three points need to be specified to construct a surface frame. Rivet object is placed at the origin of that frame and is oriented according to the frame axes. If only one point is selected on the geometry, the rivet object will position itslef at that point, but it is going to remain aligned with the world axes.
Fixed crash that could happen when the Merge SOP had more than two inputs containing capture weight attributes. It would only happen after the first cook of the particular Merge SOP.
Fixed problem with leaked file handles when executing hscript commands from java.
Fixed bug that would cause Houdini to freeze while performing a render on Windows XP, even if Render in Background was turned on.
Fixed threading problems with multiple Render COPs. These problems could result in failed renders or licensing problems. Now all Render COPs are processed sequentially, instead of in parallel.
Fixed a crash that could occur with cooktime errors (most COP errors are detected before cooking begins, so this is somewhat rare).
Fixed problem that would cause unnecessary output when executing the mread command from within a script file.
Fixed a bug where some view commands were not being saved properly for non-existent viewers in both Houdini and hscript.
Fixed an occasional crash in the compositor when the 'Reduce Cache size when Inactive' caching option was on (which it is by default in Houdini, but not Halo).
Removed the following SOPs from the user interface: - Arm - Blend - Boolean - CaptureEdit - CapturePaint - Joint - Limb - Model - Skeleton
A 'Reduce' mode has been added to the Capture Layer Paint state.
The LSystem SOP now properly provides normal geometry info.
Fix a crash with initializing skeleton SOPs.
The a command in the LSystem rules will now properly make attributes of size other than 3.
The $(x,y,z) command in lsystem rules will no longer fail if a $ command had preceded it.
The Type Properties dialog will not allow an operator type to be saved if Safeguard Operator Definitions is turned on, or the Type Properties dialog was opened from the RMB menu of a locked subnet. Also, the Save Operator Type menu item no longer appears if Safeguard is turned on.
Fixed problem when refreshing custom operator definitions that contained DynamicBlend and Deform SOPs with the "Assume Only Coordinate Changes" option turned on. We now do fresh recook with cleared caches when doing so.
Fixed crash that occurred during the loading of a corrupted JPEG.
Added otinuse command, which outputs information about which OTLs and operator types are in use in a Hip file or portion of a Hip file.
Object subnetworks can now be contained inside other network types.
Added a new option to otls which tells it to list all installed OTL files which contain a definition for a specified operator type.
Added a new option to the Operator Type Manager, "Leave Values When Defaults Change". If turned on, this option tells Houdini that any existing nodes should keep their parameter values even if they are at the defaults when a new definition for the operator type is loaded.
Fixing Parameter VOP Parameter Type menu entry from "Toggle (float)" to "Toggle (int)".
Fixed a bug in gplay where the texture viewport would home incorrectly when the uv attribute type changed from points to vertices or vice-versa between geometries.
Added abitlity to undo deletion of edits in an experimental edit state. This state has not been enabled yet.
The Assume UV Constant toggle in the Sticky Object now properly preserves the cache.
Fixed some intermitant crashes when user-interrupted in blur, composite/layer and the colapsable pixel operation COPs (bright, gamma, HSV, etc).
Fixing the creep SOP to avoid triggering an assert when "Set Point Attributes From Path" was toggled on.
Changed the default value of the "Give Preference to Definitions Saved in Hip File" option in the Operator Type Manager. The default is now false.
Fix crash with initializing Creep SOP.
Angular Velocity POP now supports negative velocities as well.
Added the "-s" option to the opfind command. This option specifies that the opfind command should not recurse into operator networks. The output with this option lists only the node name, not the full path.
Added an option ("-b") to the oporder command which specifies that all
listed nodes whould be moved to the beginning of the operator list.
The oppresetls and oppresetrm commands can now be run by specifying an operator type rather than a node path. This is possible because these commands don't need to refer to an existing node to work.
Added a new RMB menu item, "Save Operator Type", for custom subnet nodes. This menu item causes the selected node to be immediately saved as the definition for the custom operator type. This is faster than opening the Type Properties dialog and hitting Apply or Accept.
Added a new environment variable, HOUDINI_SCRIPT_PATH, which specifies the paths Houdini should search when looking for a .tcl, .tk, .cmd, or .java script file when running the tcl, tk, source, or java commands.
Added an option to the otls command which lets you specify what information to output and in what order when a specific operator type is specified. This should make it easier to parse the generated output.
Fixed bug which was causing the message: "Warning: There is no hotkey for h.pane.wsheet.opmenu.vn_save_palette" to be output to the shell.
Fixed a bug with the Global Variables VOP. When undoing a change to the "Output Single Variable" parameter, the output connections of the VOP would not restore themselves properly.
Fixed bug which would cause bad code to be output from VOPs if more than one Shading Layer VOP existed pointing to the same shading layer.
Fixed crash with InverseKin CHOP's Follow Curve solver when using invalid geometry.
Fixed crash when executing chopexportmap on a chop that does not cook successfully.
Fixed a bug that caused a crash after updating normals in the brush SOPs.
Added viewhome hscript command which homes the named viewports.
The help browser now connects to Houdini to run commands using sockets instead of message queues.
Fixed a bug that could cause custom expressions in Houdini to crash.
Fixed potential crash when loading operators which contain a dynamic number of parameters.
Fixed a crash when redoing GDT operations.
Fixed a bug that could cause PolyBevel SOP to crash.
Fixed a bug in the rotation POP which could cause $ROTA to evaluate in the wrong quadrant.
Fixed bug in Dissolve SOP that could lead to a crash.
In the UV Brush state (and some other paint tools), an option was added to constrain the movemento of the brush. When painting, the CTRL key will align the brush movement to x-axis, y-axis or a diagonal axis of the construction plane. If the construction plane is not enabled, the screenspace x, y, and diagonal axes are used.
Reverted opLayout back to laying out single tiles as a single cluster of staggered tiles in a rectangular array instead of treating each tile as an independent tree.
Secure Selection is now off by default.
In the Performance Monitor, we now output i.e. Sop/null rather than just null to avoid ambiguity (same thing applies to all Sops, Cops, etc...)
Removed unimplemented operations (hide, remove, name) from the desk command. Also changed an undocumented operation to swap panes to be invoked with the swap operation to the desk command.
The antialiased noise VOP now properly defaults to 0 rather than 1.
Fixed a bug which caused Houdini to crash when creating a type from a CHOP which wouldn't cook.
Fixed a bug where ophide and opunhide were not working for certain operator types.
Fixed a crash in the capture edit state.
Added an experimental feature to snap only to a specified path. If enabled, it is possible to specify a wildcard path in the Snap Options dialog; only objects whose path match this wildcard pattern will be snapped to.
The RIB output driver now has additional frame device options in the specific tab to interface with the mplay display driver. The output driver has control over sequences and frame number matching.
Fixed crash that could happen when deleting a node that had its parameters dialog opened. This would only occur on the third time on identically named operators.
Fix a crash with Initialize Extrude in the Extrude SOP.
The sopcache command when used with -L and -v will sort by memory usage and output the amount of memory used by each SOP.
The sopcache command will now include locked sops in its memory estimate.
The flag list in List View now shows the Unload Flag.
Fixed a bug that could cause tiles that are inserted through the RMB to disappear if the user accidentally clicks over the connector.
When using both the -q and -a options to the openport command, only the number of the port opened will be printed. This is for convenience when writing scripts.
Fixed a bug where PolyExtruding edges would not add the newly created faces to the side group (if the option is selected). Also, PolyExtrude will no longer error out if the groups chosen already existed, instead it will append to the groups.
Subdividing with override crease turned will no longer crash if degenerate polygons are present.
Added rudimentary integrity checking of .i3d files to i3dinfo. Please type "i3dinfo -" to see the options.
Operator Bundles are now created locked by default. Previous hip files with unlocked bundles will now load as locked.
Renamed "Guide Edge" and "Guide Point" entries in the snapping dialog to "Primitive Guide Edge" and "Primitive Guide Point" to reflect the fact that they are intended to work on primitive guides (the brown axes).
Fixed a bug where it was possible for Houdini to crash when the sop network contained visibility sops and the user toggled between a 3D and a UV viewport.
Allow users to assign and use keyboard shortcuts on parameter fields, labels, etc...
After selecting both geometry and bones to capture, a tab
is added to the parameter dialog ('p' is the hotkey)
that exposes the group selection. By specifying the group,
only a subset of the geometry is captured.
The VEX VOPs now have their original colors for input/output back.
The Render State now supports renderers other than mantra. Currently, there is only support for prman, though the interface is open for other renderers. For prman to be available in the render state, the houdini display driver needs to be installed (via proto_install).
Creating a Toggle menu on a Float or Integer parameter in the Type Properties dialog would create a menu, but the menu would not do anything. Now it behaves the same as a Replace style menu (since Toggle menu behavior for non-string parameter doesn't make sense).
When dragging and dropping and angle parameter with only one component into the Type Properties dialog, Houdini would create a Float parameter instead of an Angle parameter. This problem is now fixed.
Opening the hotkey manager dialog from within the toolbar manager or desktop manager dialogs now works properly.
Fixed a bug where textured sprites would sometimes go black because the material would turn lighting back on. We now support this by setting an appropriate normal.
Fix crash when a Paint SOP was applied to a geometry with many vertex uv coordinates.
The hscript pane command now accepts the -A and -a options, much like the desktop pane command does.
Fixed a crashing bug with CHOP_Geometry where it used a point group.
When snapping, it is now possible to snap orientation as well as position. When using the "Snap orientation" option, the snapped item will be rotated so that one of its major axes (x, y, z) matches the normal of the item to which it has been snapped. Only the axis closest to the normal in question is rotated when snapping; this permits greater freedom to choose how an item is oriented. Note that while orientation snapping will respect any explicit normals placed on an object, they are not required: implicit normals will be substituted when needed. The "Orient on snap" option can be activated from within the "Snap Options" dialog (Ctrl-k).
Reversed the arguments in the quaternion(int, vector3) function to be quaternion(vector3, int) because it was getting confused with the quaternion(float, vector3) version in the Quaternion VOP. Also fixed a bug where the angles in the "Euler To Quaternion" VOP were being interpreted in radians rather than degrees.
In the network view, it is now possible to disconnect inputs for all selected tiles (nodes) by disconnecting an input for one of the picked (selected) tiles. Thus, when an input for selected tile is disconnected, corresponding inputs for all selected tiles are also disconnected.
Fixed crashing when copy/pasting bone objects which have been captured.
The fastshadow VOP now outputs a floating point number instead of an integer. Since there may be anti-aliasing samples performed, the VOP returns the fractional coverage rather than an absolute 0 or 1.
The flipbook dialog has an option (checkbox) to allow appending new frame to the existing flipbook. With this option turned on, no frames are overwritten. This option can be used to see how one sequence flows into another.
Fixed a bug that sometimes caused the Light and Camera handle pivots to loose synchronization with the orientation vector handle.
Fixed a bug with ObjectMerge SOP where the instancing could instance an empty geometry rather than cooking its input.
The light handles no longer show the focus orientation handles when working on a point light.
Fixed crash when undoing an opgadd hscript command.
The Unload flag is now much more aggressive. If a node which has the unload flag loses its display flags, or an object displaying it stops displaying, it unloads immediately. When the Unload flag is set on a SOP, the SOP will immediately unload.
Fixing a bug where Houdini might crash when copy-stamping geometry where the number of attributes in the stamp changed depending on the copy number.
In the Operator Type Manager, trying to merge an OTL into the Embedded OTL (when no Embedded OTL currently exists) no longer causes Houdini to crash.
The Fetch CHOP now ensures that the order of its created tracks will be in the same order of the parameters within the fetched operator regardless if it is animated. This is then follow by any fetched CHOP data tracks. Previously, the Fetch CHOP created the ordering by channels, chop data tracks, and then parameters. This behaviour can be obtained by enabling the environment variable HOUDINI6_COMPATIBILITY.
Houdini now uses pipes (instead of message queues on Linux or shared memory on Windows) to control the help browser. When the help browser runs a Houdini command, though, it still uses message queues. Soon, it will instead use local sockets.