Lets Talk about Big Worlds (Level Instance & Packed Level Actor)
ฝัง
- เผยแพร่เมื่อ 7 ก.ย. 2024
- Hot of the 10 week Epic Project Titan Art Jam this video covers some of the concepts I learned from the experiment. This video will focus on efficient and effective level build techniques through the use of level instances and the more performant packed level actor.
Can we have a segment like this about other optimization techniques you learned
Thank you, clarified things a lot for me!! 🙌
Glad it was helpful!
Thank you for this great video!
- Would you mind giving some example use-cases for each option?
- Assuming a big apartment building as part of an open world, containing multiple apartments and furniture. How would you structure that? What if the furniture should be procedurally generated?
@WildStudios-ko4vy for that scenario.
I would start with Packed level actors for what you want to procedurally generate. So either make a packed level actor for an apartment template and procedurally generated which apartment template is in which slot of the building (this would be a fixed set of apartment layouts built as packed level actors). or if you really want a completely procedural generated apartment make a series of living rooms, bedrooms, etc. The more complex you go the more you will have to code in cpp as you will have to generated your packed level actors at runtime. The big building would be a good use case for a level instance (our more likely a neighborhood of buildings).
if you are using a build kit for the building exterior (i.e. walls, windows, doors placed together to make a building) then merging the building with merge actor can save you draw calls when you are outside the building and approaching it, it would also help nanite optimize the larger mesh.
What doesn't work well is nesting level Instances. I find it is hard to work with. I typically make a mental rule that it is 1 level instance with multiple packed level actors inside. Also point lights/spotlights don't seem to work well in packed level actors. best to include them in the level instance.
could you tell me why do that instead of select the meshes and creating a blueprint class from them?
In a BP (if I remember correctly) you end up with a bunch of Static Mesh components. The Packed Level Actor creates HISM (Instanced Meshes). It would really depend on your use case. if every mesh is unique you will not gain performance from HSIM but if say you have 10 rocks in the "thing" then you get a bump from HISM.
Is it me or did we go black screen at about 30 minutes?
it did go darker (not sure why) but not totally black, almost like a monitor dimming on my end.