I am working on a very performance-sensitive project and I want to get the most out of Houdini Engine.
My question is this: What would be the most performance-efficient way to add collision to Unreal on a Houdini Engine instanced object.
Currently, I am generating a tunnel from repeating concave and complex segments. I generate the segment and its collision in Houdini.
I have one instance node, a tunnel segment and a few collision boxes on the geometry level of my hda. In the instance node I generate points to place the collision boxes and the tunnel segments. I presume the most efficient thing to do would be to instance boxes separately from the tunnel segments so as to generate as few boxes as possible. (So if for example, several tunnel segments are instanced on a straight line, their ceiling and ground could be represented with one collision box, each.) For this I would need to generate one collision box and instance it with different scale values (and eventually bake that into a blueprint). Is this efficient?
Or would it be better to generate a few collision boxes of different sizes and instance them without scaling? Or would it be better to create one (optimized) complex collision mesh, make it a complex collision in Unreal and instance it with every tunnel segment? Or would it be best to generate the collision for the tunnel segment in the Unreal StaticMesh Editor (so that I only instance tunnel segments with built-in collision)?
Or is there an even better way to do this?
- Note: I am using tunnel segments as an example. I want information that I can apply to any instance type, like maybe a forest or city generation tool. I am interested in “under the hood” information on the performance impact of different techniques.
- Note 2: This topic is relevant to (and should take into account) the discussion in https://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=38283 [sidefx.com] and RFE #61716 . Is there an ETA on RFE #61716?
Thanks in advance!