Procedural modelling in Houdini based on Function Representation
Procedural modelling in Houdini based on Function Representation
Procedural modelling in Houdini based on Function Representation
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
4.4 <str<strong>on</strong>g>Procedural</str<strong>on</strong>g> functi<strong>on</strong>-<str<strong>on</strong>g>based</str<strong>on</strong>g> <str<strong>on</strong>g>modell<str<strong>on</strong>g>in</str<strong>on</strong>g>g</str<strong>on</strong>g> <str<strong>on</strong>g>in</str<strong>on</strong>g> Houd<str<strong>on</strong>g>in</str<strong>on</strong>g>i<br />
4.4.3 Polyg<strong>on</strong>isati<strong>on</strong><br />
As menti<strong>on</strong>ed <str<strong>on</strong>g>in</str<strong>on</strong>g> Secti<strong>on</strong> 4.4.1 about the FRep <str<strong>on</strong>g>modell<str<strong>on</strong>g>in</str<strong>on</strong>g>g</str<strong>on</strong>g> workflow, an frep_node is added<br />
to the end of the network. This node has two ma<str<strong>on</strong>g>in</str<strong>on</strong>g> tasks. The first is travers<str<strong>on</strong>g>in</str<strong>on</strong>g>g all nodes<br />
<str<strong>on</strong>g>in</str<strong>on</strong>g> order to gather all parameters and build the FRep tree as described <str<strong>on</strong>g>in</str<strong>on</strong>g> Secti<strong>on</strong> 4.4.2. The<br />
sec<strong>on</strong>d task of the node is to pass the tree to the polyg<strong>on</strong>iser of the FRep API and then<br />
assign the generated mesh data to Houd<str<strong>on</strong>g>in</str<strong>on</strong>g>i’s geometry structures.<br />
The polyg<strong>on</strong>iser has a number of attributes that can be manipulated via the user <str<strong>on</strong>g>in</str<strong>on</strong>g>terface.<br />
The bound<str<strong>on</strong>g>in</str<strong>on</strong>g>g box, grid resoluti<strong>on</strong> and surface generati<strong>on</strong> method can be def<str<strong>on</strong>g>in</str<strong>on</strong>g>ed. An example<br />
of the analytic method is shown <str<strong>on</strong>g>in</str<strong>on</strong>g> Figure 4.7.<br />
Figure 4.7: Polyg<strong>on</strong>isati<strong>on</strong> us<str<strong>on</strong>g>in</str<strong>on</strong>g>g analytic normals and a subdivisi<strong>on</strong> level of 3<br />
Assign<str<strong>on</strong>g>in</str<strong>on</strong>g>g the data received from the polyg<strong>on</strong>iser is fairly straight-forward, keep<str<strong>on</strong>g>in</str<strong>on</strong>g>g the <str<strong>on</strong>g>in</str<strong>on</strong>g>ternal<br />
structure of Houd<str<strong>on</strong>g>in</str<strong>on</strong>g>i’s geometry architecture (see Secti<strong>on</strong> 3.2.4) <str<strong>on</strong>g>in</str<strong>on</strong>g> m<str<strong>on</strong>g>in</str<strong>on</strong>g>d.<br />
4.4.4 FRep Operati<strong>on</strong>s<br />
Blend<str<strong>on</strong>g>in</str<strong>on</strong>g>g<br />
There is a variety of operati<strong>on</strong>s possible. For c<strong>on</strong>venti<strong>on</strong>al boolean <str<strong>on</strong>g>modell<str<strong>on</strong>g>in</str<strong>on</strong>g>g</str<strong>on</strong>g>, the CSG node<br />
can be used for uni<strong>on</strong>, <str<strong>on</strong>g>in</str<strong>on</strong>g>tersecti<strong>on</strong> and subtracti<strong>on</strong> operati<strong>on</strong>s (see Figure 4.8). The Blend<br />
node is similar to the CSG node but provides more user c<strong>on</strong>trol, offer<str<strong>on</strong>g>in</str<strong>on</strong>g>g three parameters to<br />
c<strong>on</strong>trol the blend<str<strong>on</strong>g>in</str<strong>on</strong>g>g and achieve various results as shown <str<strong>on</strong>g>in</str<strong>on</strong>g> Figure 4.9. This c<strong>on</strong>cept is taken<br />
even further us<str<strong>on</strong>g>in</str<strong>on</strong>g>g bounded blend nodes, allow<str<strong>on</strong>g>in</str<strong>on</strong>g>g local c<strong>on</strong>trol of blend<str<strong>on</strong>g>in</str<strong>on</strong>g>g (see Figure 4.10).<br />
23