Digital Asset - LODs

   10411   29   3
User Avatar
Member
67 posts
Joined: Jan. 2016
Offline
I have scoured the docs and internet and I have not found any references at all.

Is it possible to setup my digital asset to create LODs when click bake? If so where is the docs on how to set this up in my digital asset?

Thanks.
User Avatar
Member
603 posts
Joined: Sept. 2016
Offline
There's no way to do that with the plugin at the moment. However there is a plan for the 16.5 FBX export from Houdini to support LODs for meshes in that format.
User Avatar
Member
67 posts
Joined: Jan. 2016
Offline
chrisgreb
There's no way to do that with the plugin at the moment. However there is a plan for the 16.5 FBX export from Houdini to support LODs for meshes in that format.

Thanks for the reply.
User Avatar
Staff
534 posts
Joined: Sept. 2016
Offline
Hi,

A quick update on this, LOD support for the UE4 plugin was added in today's daily build (16.5.372).

To create LODs, you just need to add the different lod meshes to primitive groups called “lodX” (lod0, lod1…).
The different LOD levels will be available on the generated static mesh.
User Avatar
Member
67 posts
Joined: Jan. 2016
Offline
dpernuit
Hi,

A quick update on this, LOD support for the UE4 plugin was added in today's daily build (16.5.372).

To create LODs, you just need to add the different lod meshes to primitive groups called “lodX” (lod0, lod1…).
The different LOD levels will be available on the generated static mesh.

Thanks! I will try it out.
User Avatar
Member
4 posts
Joined: Dec. 2017
Offline
Hi!

Great news on the LOD support for the UE4 plugin.

I was wondering if there were plans for implementing Hierarchical Instanced Mesh Components, now that LOD creation is available on the plugin?

As far as I understand, currently Instanced Static Mesh Components are used, but they don't support per-instance LODs nor culling. It would be absolutely amazing if, either by an attribute or just by detecting the presence of LODs, the plugin would use HISMCs instead (and revert to the current Instanced Meshes if no LODs are detected, as HISMCs make sense mostly because of the LOD usage).

Thank you.
User Avatar
Staff
534 posts
Joined: Sept. 2016
Offline
Hi,

That's actually the case right now: if you instance a mesh that has LODs, you will get HISM instead of ISM.

There's a caveat to that, as for now it won't work with packed primitives, but using object instancers or attribute instancers will get you HISM.
I'm currently in the process of fixing the packed primitive bug, for now, group informations is lost on packed primitives, which causes LODs, collisions and sockets to be ignored on packed geo.

Expect a fix for this soon. I'll post an update here once the packed prim bug is fixed.
User Avatar
Member
4 posts
Joined: Dec. 2017
Offline
That is amazing!

Thank you so much for this excellent news, I will keep an eye out for the bug fix and start testing it with the instancers for now.

All the best.
User Avatar
Member
67 posts
Joined: Jan. 2016
Offline
Aladin Sane
dpernuit
Hi,

A quick update on this, LOD support for the UE4 plugin was added in today's daily build (16.5.372).

To create LODs, you just need to add the different lod meshes to primitive groups called “lodX” (lod0, lod1…).
The different LOD levels will be available on the generated static mesh.

Thanks! I will try it out.

Ok I have tested it out and it seems to be working well.

One thing to watch out for is collision. I was setting up collision seperately for each lod group I was bringing in. This would cause UE4 to crash if I tried to rebuild asset. I only setup collision on the lod0 group and all lods share that collision and no crash.

Is there anyway to control more of the lod settings from the asset, for example, whether to use Auto Compute and if not what screen sizes to use for each lod. It would be very helpful to set this all up in houdini. It is very useful when I can everything for an asset in houdini so I do not have to remember to tweak them seperately after I create the static meshes.

Thanks.
User Avatar
Member
118 posts
Joined: Feb. 2016
Offline
with HISM support by houdini engine now we can use it to create foliage and grass? Or is it still better to use Unreal Editor traditional tools?

cheers
User Avatar
Staff
534 posts
Joined: Sept. 2016
Offline
@Aladin Yes, I already fixed that crash, but it's not commited yet.

Unreal won't let you set a collider per LOD level, so the collision geo apllies for all of them.
You can eventually specify the LOD level that you want to use for complex collisions. Generic uproperties can be used to change those LOD settings.

I updated the plugin docs regarding this, but it seems that the website did not pick those changes for now.
Here's how to change those LOD settings in Houdini:

LOD Settings can be changed via the use of Generic UProperty Attributes :

- The LOD used for collision can be changed via a detail attribute named “unreal_uproperty_LODForCollision”.
- The Minimum LOD can be changed via a detail attribute named “unreal_uproperty_MinLOD”.
- The LOD group can be changed via a detail string attribute named “unreal_uproperty_LODGroup”.
- Screensize values for each lod can be changed via a “lodX_screensize” detail attribute (lodX being the name of the LOD), or a “lod_screensize” primitive attribute. Manually changing the Screensize values for the LOD levels will turn off “AutoComputeLODScreenSize” on the Static Mesh.

@Andr1 Now that we've added LOD/HISM support, foliage should come in the near future.
User Avatar
Member
67 posts
Joined: Jan. 2016
Offline
dpernuit
@Aladin Yes, I already fixed that crash, but it's not commited yet.

Unreal won't let you set a collider per LOD level, so the collision geo apllies for all of them.
You can eventually specify the LOD level that you want to use for complex collisions. Generic uproperties can be used to change those LOD settings.

I updated the plugin docs regarding this, but it seems that the website did not pick those changes for now.
Here's how to change those LOD settings in Houdini:

LOD Settings can be changed via the use of Generic UProperty Attributes :

- The LOD used for collision can be changed via a detail attribute named “unreal_uproperty_LODForCollision”.
- The Minimum LOD can be changed via a detail attribute named “unreal_uproperty_MinLOD”.
- The LOD group can be changed via a detail string attribute named “unreal_uproperty_LODGroup”.
- Screensize values for each lod can be changed via a “lodX_screensize” detail attribute (lodX being the name of the LOD), or a “lod_screensize” primitive attribute. Manually changing the Screensize values for the LOD levels will turn off “AutoComputeLODScreenSize” on the Static Mesh.

@Andr1 Now that we've added LOD/HISM support, foliage should come in the near future.


Thanks for the details. I will test it out. Also I changed my strategy for creating the collision. I create is separately from all the lod geo (I do not include it in any of the lod groups). This seems to work well.
User Avatar
Staff
534 posts
Joined: Sept. 2016
Offline
So the packed primitive bug I mentioned earlier has been fixed in today's build (16.5.392).

Instanced packed primitives that have LOD groups will now create Hierarchical Instanced Static Meshes.
User Avatar
Member
15 posts
Joined: Sept. 2015
Offline
dpernuit
To create LODs, you just need to add the different lod meshes to primitive groups called “lodX” (lod0, lod1…).
The different LOD levels will be available on the generated static mesh.

I am still new with HDA.
I tried to make setup like this:
LinkToImage [flic.kr]
But only the selected node is exported, and don't see corresponding properties in HDA settings.
Thanks in advance for any help.

And why ma images don't show up in post?
Edited by Gomo - May 17, 2019 19:06:07
User Avatar
Staff
534 posts
Joined: Sept. 2016
Offline
Hi

You're almost there.
The he plugin will only import the geo with the display flag, hence why you have only one of them show up in unreal.

You should merge the 4 geos together with a merge node, and put the display flag on it.
User Avatar
Member
15 posts
Joined: Sept. 2015
Offline
dpernuit
You should merge the 4 geos together with a merge node, and put the display flag on it.

I think I've tried that, but I'll try again.
Thanks!
User Avatar
Member
15 posts
Joined: Sept. 2015
Offline
Doesn't work - All geometries are rendered at once.
Scene file in attachment.
Any ideas?

Attachments:
HDA_LODTest.hiplc (87.2 KB)

User Avatar
Member
453 posts
Joined: Feb. 2013
Offline
@Gomo You named the group nodes, but not the actual groups. To name the actual groups you create, change the Group Name parameter. You can either type in lod_0 etc, or in your case $OS. $OS will be automatically replaced with the node's name. Since you named the nodes correctly already, it will do for you. If you middle mouse click hold on a node you see the groups and attributes it has. You can also use the geometry spreadsheet to verify attributes/groups.
Finally, click on the little gear and “Save Preset..” or “Save Permanent Default” if you like the $OS thing and want to make it default.

Dunno if there are any other issues with the file, but this is one issue solved. XD
User Avatar
Member
15 posts
Joined: Sept. 2015
Offline
DASD
To name the actual groups you create, change the Group Name parameter
OK, I am embarrassed that I've missed that.

DASD
in your case $OS. $OS
Totally not getting this part…But I guess it is some convenience setup, right?

DASD
If you middle mouse click hold on
Right now when I do this I have my lodX groups listed as Prims not groups (after changing GroupType to Points it's OK but then I've got all meshes rendered together).

So after export I've got only one primitive rendering - so far so good, but no lod_settings anywhere (LOD setings from Rendering rollout doesn't seams to work) - should I add something in HDA settings (Operator Type Properties) for that or is it only available after converting to static mesh (I hope not)?
I see there is some LOD transition - but in very short distance to camera.
User Avatar
Member
15 posts
Joined: Sept. 2015
Offline
OK, I've found that clicking on asset in “houdini generated meshes” bring up standard static mesh menu - but there I setup settings only for certain instance - so that is still not it.
So what I am missing?
  • Quick Links