top of page

Creating a panel asset I Nona Bocheva Week 15

Ideate, Prototype


To start off I collected some reference for wooden panels in the courtroom from our concepts. My goal for this asset was to transform a polygon into a panel, so that we can apply it as a style to a 'blueprint' object.


To achieve the desired look I used the PolyExtrude node to inset and then extrude the initial faces. The 'Output Groups' section on the node turned out very important, because it allows the user to divide the model in separate parts. Then separate operations can be applied to each part, without affecting the others (Fig. 1). PolyExtrude can also output the front and back seam edges.

Figure 1.

In the case that two groups overlap the 'Group Combine' node can be used to Union or Subtact groups from one another. Union (also called 'or') adds to the output group every polygon that is contained in any of the input groups. Subtract on the other hand removes from the input group every polygon that is also contained in the group that is subtracted.

To generate the UV map I started by using Group Combine to make sure the remaining groups have no overlap. These groups act as the UV islands that will be generated in the end. We can use 'Name from Groups' node (Fig. 1, colored) in order to transfer the group name to a name attribute. After that we can use that name attribute with the 'Group from Attribute Boundary' node to generate a group that contains the edge boundary (seams) of each contiguous group of polygons that have the same value for 'name' (belong to the same group, UV Island). To actually apply the seams and create UV shells the 'UV Flatten' node is used.

Comparison with 'UV Autoseam'

Houdini provides the 'UV Autoseam' node that can be used to create the 'seams' group. When I started I first tried creating the seams with it, however it did not do the job as well as the described workflow. The Houdini documentation page explains how the node works on the inside: 'UV Autoseam works by starting from a set of small “grain” seed islands and merging them up to get the larger islands.' The resulting seams group would vary when tweaking the model, so I opted for something that produces more predictable results. The two workflows are not mutually exclusive, if needed a user generated seams can be put in 'UV Autoseam' by addind the name of the seams group to the 'Include Edges' parameter. While working on this model I did not need to use it because I got good enough results using the other technique.

Making individual planks

If we just applied the seams, we would have 'concentric' rectangular shells. What we need to do is add the edges that radiate towards the corners of the input polygon to the seams. While we cannot do that directly, we can use the front and back seam edge groups, that 'PolyExtrude' outputs. With them we can add all concentric edges to a group (Fig. 3 left). If we subtract those from a group containing all of the edges ('Group Combine' node) we would get a group of only the edges that go to the corners (Fig. 3 middle) , that we can add to the 'seams' group (Fig. 3 right). Now when we apply 'UV Flatten' we will get UV shells that simulate the planks that the furniture has been made of.

Figure 3. Edge groups - left: concentric edges, middle: edges going to the corners, right: final seams


In Fig. 4 we can see the resulting shells and textureing from adding those edges to the seams. In the bottom picture we can see in the upper part that the grain of the wood does not follow the direction of the part and therefore looks a little strange.

Figure 4. UV maps and textured model with shells separated as wooden planks (top) and without that separation (bottom)

Comments


bottom of page