Jump to content

WL node in WL node


photo

Recommended Posts

Hello, If I have WL node in WL node, whole content is streamed, once WL node activated? Or child WL nodes, which are not in range will be not streamed? Thanks.

Link to comment

Hi,

I don't think you should bother with World layers after streaming update in 2.8. It works better than world layers.

As for your question - World Layers work independently of hierarchy. If you have a bigger world layer and smaller child world layer, parent one wouldn't force child to load. You can run some experiments with world layer sample I guess.

Thanks!

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

Thanks.

I ve made quick performance test and it seems, that I still need WL. 

I have following situation:

Empty world without anything (no terrain....), just city made of 10k+ nodes. All are in WL. 

If I am inside, all nodes are loaded and performance gives lets say x fps.

If I manually turn off all nodes, performance is 2x.

If I delete all nodes (or go away from WL node to unload it), performance is 4x.

So it seems, that even in 2.8 node which is disabled, has some performance impact (as in previous versions) and if you have 10k+ of such nodes, it is significant. So putting it into WL node make sense, because these nodes are enabled only when needed (distance visibility check is done only for WL node). Or is there any other way how to achieve same effect?

Our world will have hundreds of thousands of nodes, maybe 1m +, so I am afraid, that if they are managed only by its visibility distance, it will fry any computer (it will probably do visibility check for milions of nodes each frame). So this was main reason, why we used WL nodes and it really worked. 

Or does 2.8 works in different way?

Edited by demostenes
Link to comment
On 6/13/2019 at 8:09 PM, demostenes said:

Our world will have hundreds of thousands of nodes, maybe 1m +, so I am afraid, that if they are managed only by its visibility distance, it will fry any computer

Yes, that makes sense. I also would like to mention that MeshClusters and WorldClusters can help a lot in your case. Try to avoid single objects, it's too "expensive" for the performance. The same with meshes - it's better to bake multiple meshes into one.

As for the World Layers, I'll try to test it with heavier content and will check with someone from engine team to check the source code regarding your parent/child WL question.

 

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment
13 minutes ago, morbid said:

Yes, that makes sense. I also would like to mention that MeshClusters and WorldClusters can help a lot in your case. Try to avoid single objects, it's too "expensive" for the performance. The same with meshes - it's better to bake multiple meshes into one.

As for the World Layers, I'll try to test it with heavier content and will check with someone from engine team to check the source code regarding your parent/child WL question.

 

Thanks! What do you mean by single objects?

Yes, using mesh/world clusters is definitelly something we plan for optimizations. We are now also developing automatic in-engine tool for mesh merging and LOD generation. Btw mesh merging is not always good idea. Imagine situation, I have object made from 1000 instances of 100KB mesh. In case I do mesh merge, I will have 100MB many million polygon mesh, without any chance of using frustum culling and distance based on/off for each instance. Performance could be much lower in such case. For such situation is better to use world/mesh cluster. So optimalization is always case by case.

Link to comment
On 6/17/2019 at 7:55 PM, demostenes said:

Thanks! What do you mean by single objects?

I meant manually scattered or combined nodes, the ones you've used as basic blocks.

For Instance, arena location in vespum_world_layer is made of tremendous number of tiles, some of them overlapping with each other.

I guess you're goingt to merge such objects.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment
1 hour ago, morbid said:

I meant manually scattered or combined nodes, the ones you've used as basic blocks.

For Instance, arena location in vespum_world_layer is made of tremendous number of tiles, some of them overlapping with each other.

I guess you're goingt to merge such objects.

Actually any of our location is made from tremendous numbers of objects. Part of optimization will be some merging, or even new remodelling in 3ds max (export from unigine into 3ds max and do some tuning there, create floors as one mesh, etc.). It will be case by case what and how much, because if you make one mesh for example from Vespum arena, it will be 500MB 35M poly mesh :) So this is no way to go.

I ve already did some optimization there, I took part which is repeating many times, merged all its meshes, created lods, texture atlas etc. So instead of many thousands of object instances of several meshes there is only several hundred instances of one optimized mesh, which will be instanced by mesh clutter. Still lots of work to do (i need to do this for inner parts too), but this will be the way. So for such extreme building it is better to not do one huge mesh merge, but create several smaller prefabs, scatter via mesh clusters and use occludors.

Btw, it is very surprising, that Unigine handles even such unoptimized scene (42k+ surfaces).

Our workflow is following:

1) Create location via various kits literaly like from Lego, so it is made from many thousands of small objects. Level designer is not limited by anything, he can create what he wants. Much faster work than in 3dsmax

2) Tune textures (to make scene compact), optimize memory  (decrease number of unique textures), share materials as much as possible, decrease number of unique decorative objects (level designers hates that :) )

3) Fit into terrain (decals, vegetation, paint terrain textures...),

4) Test if player character can get everywhere where intended

5) When it is 100% percent finished, do optimizations (merge, clutters, billboards...). It does not make sense to do texture atlases and merges, until you have final textures and scene is tested with game character. 

We are now mostly in step 1-2. And we are waiting for new terrain engine, so we can proceed to step 3, we dont want to do fine tuning, if we dont know what we can expect from the new solution (how many texture layers will be feasible, etc...). We are also working on tool for automatic mesh merge and LODs creation, so it will be "one click" solution.

 

Edited by demostenes
Link to comment
×
×
  • Create New...