Hierarchical LODs issues and docs

So, i am using HLODs in one of my levels. Its enabled and i built some clusters manually, each containing around 10-40 meshes.

  • Seems like i need to have each lod level seperately in the HLOD window. Ok, since i can select a source LOD. Problem with that would be that if i select a source LOD of 2 but one of the meshes has only 0/1 LODs, this will probably crash the editor
  • When making a new LOD level, i would love to use the same clusters as before, just with a different distance and source lod. But seems like this cant be done since it tells me that the assets are already clustered. So is HLOD supposed to only support one LOD level for a group of meshes or even single meshes?
  • Material merging still has its issues. For most of my meshes, the UVs are completely broken, making the new material a mess. Could it be that this right now only works for very very simple materials? (like, 1 diff, 1 norm)
  • ANY documentation on HLODs and the properties for it would be awesome. i.e. what EXACTLY does vertex baking do in this context?

Update: Some more details.

nice answer, but not so fast :slight_smile:

  1. The problem with the material merging is not that the details are reduced, that is completely clear to me. The issue is more that somehow the UVs are not correctly translated to the new textures.
    See

and

samples. and no, they shouldnt look that way :wink:

  1. For the clustering, i understand that what i want SHOULD be possible. A simple explanation:
    I have 3 houses, each consisting of various meshes. In LODLevel 0 i want each of them to be an own cluster, to reduce draw calls a bit.
    In LODLevel 1 i want all 3 of them to be one cluster, so all 3 of them are merged into one Proxy mesh.
    As of now this is not possible. If i select any mesh that is already contained in any other cluster in any other LODLevel, it tells me that its clustered and doesnt let me build the cluster. Maybe this only works when automatically building clusters? But this cant be as intended then

  2. Just to be sure, with 4.13 there are optimizations in that materials are more or less instanced (as i understand under special occasions, i.e. when in the same HLOD cluster, and not really generally, or…?), so if i have the same material 10 times in the cluster it wont make multiple draw calls but just one (or at least a reduced number)? That would indeed be great to preserve some details and save draw calls

Thanks!

Cheers,

Hey ,

Fret not because documentation for this feature is coming very soon!

In the meantime here are some answers/suggestions for using HLODs.

  • Bake Vertex Data to Mesh: This will include any painted vertex coloring that has been used or previously setup on the mesh when it is added to a cluster.

In general, if you hover over the option you will get a Tooltip that gives a basic rundown of what it should do. :slight_smile:


Seems like i need to have each lod
level seperately in the HLOD window.
Ok, since i can select a source LOD.
Problem with that would be that if i
select a source LOD of 2 but one of
the meshes has only 0/1 LODs, this
will probably crash the editor

I’m fairly certain this has been fixed in 4.13, but if you have a list of repro steps for the crash please post this in the Bug Reports section of AnswerHub and make sure to include the Call Stack from the crash along with the project logs when the crash happened.


When making a new LOD level, i would
love to use the same clusters as
before, just with a different distance
and source lod. But seems like this
cant be done since it tells me that
the assets are already clustered. So
is HLOD supposed to only support one
LOD level for a group of meshes or
even single meshes?

HLOD can support multiple LODs setup as long as there is something to be clustered together. For instance, if I were to take a small area that is densley packed with some boxes or whatever type of mesh and then used the default cluster settings I would only get a single LOD because any additional ones would not be needed. If i lower the cluster generation setting for Desired Bound Radius I can generate more clusters for different HLODs in a smaller area.


Material merging still has its issues.
For most of my meshes, the UVs are
completely broken, making the new
material a mess. Could it be that this
right now only works for very very
simple materials? (like, 1 diff, 1
norm)

Materials can be a problem depending on how they are setup. HLODs will create a texture atlas for merged materials that does not adhere to what they previously had setup. This is intended because you can’t merge the meshes and have translucent act like translucent with an opaque one in the same material. The HLOD is meant to have a lower detailed material that is simpler since it is only referencing the textures and any additional settings for things like roughness, metallic, emissive, etc. If you need the HLOD to use it’s own material for the mesh the best option is to Uncheck the option for Merge Materials. 4.13 has an improvement here that creates instances to make this more performant as well.


I hope this helps.

Tim

Some new updates in the post. Thanks for the info so far, would be cool if you could answer everything else too :slight_smile:

For the Bake Vertex Data: Just wanted to make sure that it works that way, thanks!

For the crash with different LODs, i will try with a later preview version of 4.13 then and open a bug report if it still happens.

Cheers,

For clarity sake please post under the comments instead of editing the OP. It makes it a little easier to follow along rather than jumping around in the post. :slight_smile:


  1. The UVs don’t look like I would expect them to. Do you have a test asset that can reproduce this or known repro steps? I’ve only used previously created EPIC content when I’ve tested and used HLODs so there may be a legitimate reason for this happening or it may be a bug. It also may already be resolved in 4.13 if you’ve not tested there.

  1. This seems like a very specific setup that I’m not sure how well it would work in practice, especially if you can have the character go inside the houses. If you can’t access the houses it may be better to use a HLOD Override Volume here to help the clustering do a more refined job of creating clusters for these.

  1. The material optimization was a very short line in the minor release notes that are being prepared now about it. I don’t currenlty know anything more specific than that at the moment.