Click on Picture for sample hipnc file
Updated on Dec 14 2017
See my Houdini overview for more
Files created by Deborah R. Fowler unless
otherwise noted. Sections
below relate to:
- modeling/procedural modeling/procedural animation
- complex scenes/layout
- lighting and rendering
***New student/alumni contributions at the bottom of the page
***New modeling guidelines (see below)
Current odd behavior: Making your window a floating pane on the dual monitors can sometimes cause difficulties, ie. error of copying nodes, or network nodes forcing you to enter them in the scene view - simply close the floating pane and try it in the regular network view.
Click here for interface tips. For example, hover over a function name and press F1 for documentation or use ?
Click here for command line tips. Learn how to do command line rendering - follow the link for rendering and caching command line
Click here for hscript common symbols. (also useful * is wild card and ^ is not, so * ^P in an attribute delete node would delete all but P)
Related to modeling/procedural modeling/procedural animation:
- add node can be used for many
purposes. A better roof
example uses the add node as well
- add node for deleting all but points
- add node for following
geometry (we will use this extensively with animation).
- alembic files - when exporting from
Houdini - use an rop alembic node to export - when
reading back into houdini use an import and be sure to grab
the correct path. More information about alembics here
- animation misc - curve movement
(Polygon) geometry: If your corners look soft - like this you can check off the consolidate
corner points to get a more normal looking render like this. there of course are other ways
to deal with this - the Houdini theme - there is more than
one right way - it depends on what you are trying to do.
You can turn off consolidate points or you can use an
edgecusp. See hipnc for multiple solutions
- bbox function - like the point function, the bounding box function can give you access to information you may need
- callback scripts - very simple example in
hscript and python of a callback script. A more advanced
python version exists on my python page here (see
Adding callback scripts). Another example DoorPlacementWithCallback.zip
- callback to reset
parameters in the GUI (also included: how to make a
parameter disappear based on another)
- table legs example using ch reference or add
- CHOPS hints. The
limit node can come in handy (thank Ian), however there
usually is a mathematical way to achieve the same purpose
(both included in the hipnc file) - the goal was to flatten
the peak of a sine curve).
addition, you can use chops and take the information to
create a curve to build geometry
- Here is a simple wing animation using chops compared with expressions
- chramp function
- clip node
- color node with Attribute Create can also be used for similar control to the chramp example above
- [Tips for] Complex Scenes (Includes brief Render Description).
- copy node - simple examples (remember to use packed primitives or instancing - see instancing)
- copy increase/decrease
- creep sop (hint - inside this file is a link to a forum post where they create a chain)
- delete attributes (or
or blast You can delete
or blast including
the second input for a bounding geometry object
- edgecusp - see entry under Box above. Edgecusp, facet and vertex can all be used to "sharpens edges by uniquing their points and recomputing point normals". Also from sidefx documentation stairsFromSidefxDocumentation.hipnc
- font node - should you ever need to randomize alphabetical characters here are some expressions you may find useful
- fuse node can be very useful to get rid of duplicate points
- groups can be very useful
- including multi-line, comments and the for loop in a
parameter expression. There is a very useful forum post here
- Hscript - example
above extended to a modular version
- Hscript - introducing some examples using C++ like hscript as well as introducing pointWrangle (lecture example)
- Hscript versus python
- object merge is very useful to have tidy networks and reference geometry without bringing all the nodes into the current container
- Orient objects or profiles to a curve?
- polyframe is your friend
- also orienting along a circle
- this works too - center of each face (facet node used)
- in more detail using lines or expressions - (measure node used)
- you can also use the sweep
- paint node can be used for layout - it is a very powerful technique, especially when combined with the scatter node. See controlLayoutByAttributePaint.hipnc.
- point function is an extremely useful function that you should be aware of to get even more information
- post placement Building - simple examples of placing posts on a platform both from an edge or from the center
- python versus hscript expressions
- python in Houdini
- sample windows Building - windows using expressions and lines
- sample side windows Building - side window (on depth) example
- using expressions and lines - two
solutions (in H13)
- sample door (based on copynum) or a fancier one using callbacksDoorPlacementWithCallback.zip
- scatter node can be very useful for layout. Particularly when combined with the paint node (see above under paint) [scatter node has changed in H14 ... or the nearest neighbor information to control clumping/intersections (see scatterSolution.hipnc under instancing examples).] You can also scatter in a volume (using isooffset with scatter or pointsfromvolume)
- scatter (new in H15 behavior and ocean) - NewScatterAndOceanH15.hipnc uses attribute interpolate node to ensure points follow surface
- transformation order matters (and remember to model at the origin, not off in space). See transformOrderMatters.hipnc.
- trim versus cookie.
Nurbs are your friend. Here is an example file using project,
trim, bridge and skin. A simple example is given as well as
one I made for a student to show the differences between
cookies and trim. (Cookies are fine but can sometimes create
poor topology.) Here is a simple example of using trim trimCurves.hipnc
and a bit more complex one trimmedNurbVersusCookie.hipnc
- wire example using a lattice node (thanks to Nate and Zak) and my version springTest.hipnc using a wiredeform node
Related to complex scenes/layout:
- Alembic files
- Flips and openVDB for
collision geometry objects (also works for RBD)
- for flip caching tips see Particle and Procedural effects page under Fluids - liquid
- Instancing NOTE:
Packed Primitives/Alembics are the preferred workflow from H13
up however instances are still very useful (for example light
instances, as well as to help understand the concept of point
instancing which is not package specific - packed primitives
on the other hand are unique to houdini)
- Instancing Examples and Instancing Notes (see also packed primitives below)
- Use fast point instancing for geometry, full point instancing for lights
- Instancing light tip for rendering - use active radius to
reduce render time (enable to edit, disable to render)
- Miscellaneous fun
- Floating lanterns in the sky? particlesFloatingLanternsH13.hipnc
- Floating lanterns in the water? lanternsWithRippleMoreComplexH13.hipnc with an example ripple sop and also the ripplesolver. (ocean may be a better choice - see below)
- Floating lanterns on the new ocean in 12.5 and up? lanternsFloatingTipH13.hipnc with the ocean and orienting the objects to the waves if desired (note that the rendering is not set up in this sample file - take a look at the shelf tool for reference)
- Floating lanterns on the ocean in 15 (scatter node has changed, need node interpolate position to keep points stable) NewScatterAndOceanH15.hipnc See documentation at http://www.sidefx.com/docs/houdini15.0/nodes/sop/scatter. AND a new file for 15.5.632 with instructions below
- Ocean for 15.5.632 ready for lanterns and rendering
- Packed primitives
- under the Rendering/Render tab parameter called Declare Materials can be used if your materials disappear
- Particles - Tips on rendering particles that look like water - Available but under construction!
- Rendering particles as points: refer to renderAsPoints.hipnc.
- Particles - grabbing information out of a particle node - attribute create example.
- see instancing examples for particles used for layout
- example comparing old pop networks (< 13) and new Particle Dynamics (>= 13) and using the pop wrangle node in wranglePop.hipnc example (vex otl here)
- pop curve pc follow (also see below in Student Examples)
- Instanced Lights on Particles created for H15 - remember to look at the other instance examples above, this example uses the pop curve follow as above to create points, instanced lights are added with active radius/attenuation ramp and the instance object taken out of the shadow mask. The shadow color is set to red, teapots glow yellow and light is magenta so that each contribution is visible.
- particles and RBD collisions - required if you want bounce behavior see popInsideRBDStaticH15.hipnc
- RBD fun
- basic rbd on a table - exampleDops.hipnc
- objects on a plate - jellyPile.hipnc
- (for advanced users see also jellyPilecolored.hipnc and jellyPileMultiple.hipnc for adding color to DOP object or multiple types. Also if you want specific colors use groups - sample jellyPileColoredGroups.hipnc.)
- new jelly bean using
packed RBD point object jellyPileColoredGroups15.5.565Packed.hipnc
- If you are using H13 the
new packed "RBD point object" the above example with
dopobjectid checkbox is not needed (and won't work). Here's
a sample file with the new packed object to get variation of
- filling a pill bottle with pills - example file rbdFillPillBottle.hipnc
as show in class, pop collisions leave
velocity unchanged after collision, dops set it to zero - take
advantage of the pop and point wrangle nodes. Note: If instead we had an RBD collision in
addition to the ground plane, you may have to change the
comparison from hitnum to stopped as hitnum goes back to zero
in this case (see ParticleDynamicsRBDCollisionStaticOrNotH13.hipnc.
- Reminder: when
experimenting with simulations to Simple case files are
faster to test - and remember to view the geometry
- Wrangle nodes
- @numpt and @ptnum
- particles and variation of color over time using wrangles or chops
- particles and instance lights are cool! You can instance different kinds of lights, or you can override the shader and animate your light intensity
- Vex/Vops and a little python
- Vex/Vops -
- bind node has replaced attribute in vops in versions 14 and up
- currently in H15 pragma range does not update gui - work around is to rename, apply accept, edit and rename back
- In Monty, you might need
to add the following to your .bashrc to view code properly
- VOPS - customizing a simple shader.
Related to lighting and rendering:
H16_5 TIP: check out this excellent Mantra User's Guide in downloadable pdf from Scott Keating on the Mantra Node in Houdini 16!
- PBR PBR PBR!
- if you are rendering water, metal, anything reflective - make sure you have something to reflect - the env light is a very handy method of adding an environment (trouble shooting tip - black parts of water, dull looking metal)
- DATA TREE*** new as of H13 - easily select the lights and objects in a spreadsheet format even when using instance lights - it's in the data tree under light bank viewer (sample file here)
- Every object container has masks for refractions/reflections etc. which can come in handy
- When using packed primitives, you may need to check off the box for using packed color on the shaders
- Ambient Occlusion (There are other methods - please ask). Note there is an example on the documentation for the mantra node - simply use an env light with ambient occlusion option.
- Fog http://forums.odforce.net/topic/10791-how-to-make-fog-effect/
also see example below
- GodRaysZZH13.hipnc is
an example file updated for H13 (original file from Zach Zhao
- Houdini User's Group talks). This example uses the atmosphere
node with the litfog shader (note that diffuse is set
to 0 and that fog is expensive to render generally speaking).
There is also an excellent example in the documentation for
the atmosphere node.
- Linear Workflow- as of H13 linear settings are default. Additional articles.
- Motion Blur - check the box allow motion blur in the mantra node. Also change your geometry object to have geometry velocity blur on. To add motion_vector as an extra image plane you must modify the shader on your object to include this information using the vop node getblurP and turn off Allow Image Motion Blur
- Quality and Speed
- Rendering using Takes.
- Reflections - how to blur
- Rotating a Camera : - wire it to a null node and rotate the null node instead
- Texture Override -
file containing hipnc and sample textures varied with instance or copy packed or unpacked
- Textures -
click icon for a brief introduction to simple uv-ing
- click icon for using groups and uv-ing separate faces.
- Grouping is an extremely versatile method.
- Tip: Use a single material node with multiple groups
- layered materials (Thanks David G.)
- pop curve path
follow the easy way with point cloud velocity transfer -
thank you Ali Rizvi April 15 2016 Appendum - PopCurvePCFollow.hipnc
- I have added an additional file with source geometry and
sticky notes April 16 2016
- slow motion techniques by James Charles March 4 2014
- velocity from curve tool by Nate Usiak 2013
- Wetmap otl available on orbolt and description by Tyler Britton here for his project. March 14 2014
- Sub Frame Velocities: Tip for fast
moving flip collision object - James Charles (intern at SideFX
Toronto) August 2014 - explanation
- Packed Primitive Workflow by James Charles
August 2014 explanation
and example files (download