Last update on 11/30/22, by Jimmy Chen
The tool supports two kinds of wall procedural generation, that are single-faced wall and single-bricked wall. For the single-faced wall, we lower the amount of details on the wall to ensure the stability when using the tool in the Unreal Engine. On the other hand, the single-bricked wall provides more customization on the wall but cannot generate a long wall in the Engine. In general, the tool requires a spline/outline in the engine and the tool uses the spline as the position to generate the wall. In addition, the tool can modify details of the wall like: height, width, length, level of jitter, etc. After baking the static mesh, the user can apply textures on the wall easily.
During our development, we find the current wall tool is hard to create a wall that has a long length. If we make the wall too long, we often encounter crashes when we want to bake the static mesh in the Unreal engine (However, this does not happen in Houdini Engine, which makes us difficult to debug). After diving into this problem, we find out that the reason is that there are too many details (polygons, faces) on the generated wall.
Over 2000 polygons on a small piece of generated wall, the number can be overwhelm if we use a real size wall in the UE.
The number of polygons might not be critical when we only have a short piece of wall. However, when we increase the length of the wall, the amount of polygons increases sharply. We believe that these kinds of details are causing the Houdini engine to spend a great amount of time computing the model. In most of the time, we need to wait for extra hours for the baking process. Occasionally, the huge computation crashes the Unreal Engine in the end. To solve the problem, we decided to create a single-faced wall and rely on textures to fulfill the missing details.
As you can see, the number of polygons drop sharply after applying single-faced style (2444 → 26, -99%).
Then, we try applying the texture after proper UV remapping, following image is one of the examples. As you can see, the wall looks nice even when the mesh is simpler than before. In addition, we still maintain the option to generate the wall without single-faced since it can provide more flexibility to modify each brick (erosion, gap, etc. …). Also, the deletion function is not workable for the single-faced version.
On the left, the interface shows the option to use single faced version of the wall. And on the right, two different branches in the network construct two types of wall.
In this version of wall tool, we finally figure out the reason causing the rotation issue. While the Houdini Engine takes a spline from the Unreal Engine as the input source, it receives several properties from the spline such as transform and rotation. Since the rotation was not oriented to the origin, Houdini will use the modified rotation to generate the weird wall.
To avoid the error from happening, we need to use an attribdelete
node to do the clean up. Specifically, we keep only the Point position. (* ^P
) in the Point Attributes section.