extending houdini with hdk -...
TRANSCRIPT
Houdini Overview
• Sop (surface-operator)• Pop (particle-operator)• Dop (dynamics-operator)• Vop (VEX-operator)• Rop (Render-operator)• Python + HScript
Simple Terragen – Using Python
• Why use C++ when we can use python?• Simple python example• Rigid Multifractal – based on fBm noise
Simple Terragen – Using VEX
• Problems with the python approach?• Slow• Resolution
• Simple displacement shader • VEX – similar to RenderMan SL
Simple Terragen – Using C++
• Problems• Resolution – solved using VEX at rendertime• Slow – How can we solve that?
• Implement Sop using C++ and the HDK• More problems?
•Duplicate code•Transfer parameters
HDK – what/where is it?
• Development kit• $HFS/toolkit• Access to same functionality as sidefx programmers
HDK – Compile & Debug
• use hcustom or makefile (makefile preffered)• Debugging = difficult• Debugger• Houdini assertations• cout• start houdini from terminal -> enables output• Visual Studio
HDK – Houdini Operators
• Node structure• Unique path like ”/obj/myGeo/sphere1”• Nodes are very similar and should be arranged into collections• Inheritage!
HDK – Houdini Operators
• / root node is called the Director (OP_Director)• Objects in the director are called managers• /obj is a manager for objects• OP_OperatorTable defines possible children
HDK – Utility functions
• UT_Vector3• UT_Matrix4• VM_Math – uses SIMD (SSE)• UT_ThreadedAlgorithm• UT_Pnoise
HDK – Extending Mantra
• Procedural primitives• Similar to GPU geometry-shader• Mark Story – clusterThis
HDK – Ocean Toolkit
• Fido Ocean Toolkit• Sop – preview• Vex_Op - rendering• Use paint node to gain control
HDK – SPH
• Houdini particles as source• Velocity on particles• Houdini signed distance fileds for collision• Houdini force fields• Simulation data attached to output