Jump to content

xLODGen LOD 4 Optimize Unseen Comparison


Recommended Posts

  • Using xLODGen beta 99.
  • Tamriel -20,20 quad was selected for its good mix of hilly terrain, river coast, small islands and marsh.
  • All meshes were generated at Quality 1 (default).
  • Variations: Optimize Unseen OFF, ON, 50, 550, 700.
  • Protect Borders option enabled.
  • I tried to use a view perspective in NifSkope that shows the marsh, riverbed and river shore as much as possible, but rather than a top-down view, something closer to an in-game perspective.

image.jpeg

Solitude Stables are on the North side, Solitude Docks are in the North-East corner.

All sequences are OFF > ON > 50 > 550 > 700. The title in the top left corner of each picture shows which variant is shown.

View with water without wireframe

image.jpegimage.jpegimage.jpegimage.jpegimage.jpeg

View with water with wireframe

image.jpegimage.jpegimage.jpegimage.jpegimage.jpeg

View without water without wireframe

image.jpegimage.jpegimage.jpegimage.jpegimage.jpeg

View without water with wireframe

image.jpegimage.jpegimage.jpegimage.jpegimage.jpeg

  • Thanks 2
Link to comment
Share on other sites

Probably most important is to check in-game to see what it looks like, most notably looking for any difference in z-fighting around water, and transition from full cell to lod cell. This may be somewhat difficult to show in screenshots. 

It would seem that Optimize Unseen can significantly impact number of vertices, so in a heavy lod game with lots of 3d tree lods, it probably does have a noticeable performance impact. 

Link to comment
Share on other sites

My off the cuff take on this is that at a slightly lower quality, pretty much indistinguishable to the naked eye from quality 1, the number of vertices is already pretty low and doesn't need to be optimized. ~10,000 or less vertices per quad is peanuts.

The shoreline and marsh with Optimize Unseen 550 look awful.

I've regenerated all my terrain LOD with quality 2 and optimize unseen off. We'll see how it goes. I won't be posting screenshots or comparisons however.

Link to comment
Share on other sites

18 minutes ago, MisterMorden said:

Maybe just give us your thoughts & opinion in text though?

See above. @Mousetick posted screens from NIFSkope. They mirror the trend that sheson posted previously.

As with all terrain LOD results in my experience, the differences here are minimal in terms of quality, and as @DoubleYou stated, the actual differences may be related to z-fighting, which must be captured in-game using video. I agree that performance impact could be noticeable on low-mid systems but probably not too much as @sheson stated previously.

Because of the subtle differences and potential slight performance difference, I think the official advice is sound. I have updated the Step SSE xLODGen screens likewise and am confident that this will be optimal as long as z-figting isn't an issue on any shorelines where there is no z-figting in full, loaded shorelines.

Link to comment
Share on other sites

24 minutes ago, z929669 said:

See above. @Mousetick posted screens from NIFSkope. They mirror the trend that sheson posted previously.

As with all terrain LOD results in my experience, the differences here are minimal in terms of quality, and as @DoubleYou stated, the actual differences may be related to z-fighting, which must be captured in-game using video. I agree that performance impact could be noticeable on low-mid systems but probably not too much as @sheson stated previously.

Because of the subtle differences and potential slight performance difference, I think the official advice is sound. I have updated the Step SSE xLODGen screens likewise and am confident that this will be optimal as long as z-figting isn't an issue on any shorelines where there is no z-figting in full, loaded shorelines.

I will go check out the updated screens, thanks Z.  I was just referring to MT saying he'd see how it looked at quality level 2 with optimize unseen off...I did give his examples above a view.

  • Like 1
Link to comment
Share on other sites

To put things into perspective re: performance concerns due to increase in triangles with optimize unseen off. I caught this bit from the latest Embers XD 2.8.7 changelog:

Quote

Version 2.8.7

Optimized campsite rocks (23k tris > 8k tris).

23K triangles for a bunch of small rocks. 'Nuff said.

sheson gave a great explanation about optimize unseen. It's really "clicked" in my mind only now, but the way I understand it, optimize unseen is first and foremost a quality improvement, and the (marginal) performance improvement resulting from fewer underwater triangles is an incidental side-effect.

The following is merely paraphrasing that explanation, but focusing on LOD level > 4.

At each subsequent LOD level above 4, the area covered by the mesh is 4 times that of the previous level, so at constant quality, the mesh theoretically uses 4 times as many triangles as the previous (or practically the sum of the 4 lower level meshes making up the new level mesh). LOD 32 is 4x LOD 16 is 4x LOD 8 is 4x LOD 4.

The 32K vertices limit per mesh is the same at any level however. When the limit is exceeded the terrain mesh generator starts combining triangles to reduce the number of triangles/vertices. It does this equally to triangles above or under water.

Since the underwater terrain is not visible, even more so at higher LOD levels, it makes sense to combine those triangles first (degrading the quality of the underwater terrain in the process) to free up more triangles to use for the above water terrain, which needs to have the highest quality and number of triangles as possible. That's what optimize unseen does.

Optimize unseen ON (which is equivalent to optimize unseen 0) can cause z-fighting with shallow underwater terrain and higher LOD levels, so it may be necessary to shift the combined underwater triangles deeper, using optimize unseen = x.

Optimize unseen = x causes the shoreline to become "sharper", due the way the triangles shifted deeper under water, and the triangles above water, are connected. This is a desirable effect at higher LOD levels, particularly on the map (LOD 32).

Optimize unseen is "useless" for LOD 4 as its primary function is not required: the 32K vertices limit is never reached. It can be worse than useless: see screenshots above.

If performance is an issue at LOD 4, I'd suggest the quality setting should be adjusted to lower the number of triangles across the board whatever the terrain type, rather than relying on optimize unseen.

  • +1 1
Link to comment
Share on other sites

One last remark and then I'll finally shut up :)

The 32K limit notwithstanding, LOD 4 is a special case in regards to optimize unseen because the game constantly switches between LOD 4 and full landscape as the player moves and LOD 4 is closest to the player. The LOD 4 shoreline needs to be as "pristine" as possible to ensure smooth seamless back and forth LOD 4 > full landscape > LOD 4 transitions. The "deformation" produced by optimize unseen = x is therefore undesirable.

Moreover, depending on water opacity/murkiness and lighting, the holes created by optimize unseen = 550 at LOD 4 (see screenshots) might be noticeable by a player diving underwater and looking in the distance.

Link to comment
Share on other sites

17 minutes ago, Mousetick said:

One last remark and then I'll finally shut up :)

Why is LOD 4 special regarding optimize unseen? Because the game constantly switches between LOD 4 and full landscape as the player moves and LOD 4 is closest to the player. The LOD 4 shoreline needs to be as "pristine" as possible to ensure smooth seamless back and forth LOD 4 > full landscape > LOD 4 transitions. The "deformation" produced by optimize unseen = x is therefore undesirable.

Moreover, depending on water opacity/murkiness and lighting, the holes created by optimize unseen = 550 at LOD 4 (see screenshots) might be noticeable by a player diving underwater and looking in the distance.

Did you mean to post this on the xLODGen forum for sheson? Your question seems unexpected in this forum context.

This is our new recommendation for LOD4 based on my post over there:

XLODGen_LOD4.jpg

Maybe you are addressing MisterModern's previous post, so perhaps I should shut up myself :)

Link to comment
Share on other sites

Example showing the positive effects of Optimize Unseen = x in a scenario it was intended for.

  • LOD 32 Tamriel -64,0 (area covered is 32x32 cells)
  • Quality 0, Optimize Unseen = 550, Protect Borders (STEP LOD 32 settings)

With water > Without water > Wireframe

image.jpegimage.jpegimage.jpeg

At Quality 0 for such a large area, there is no way the resulting mesh could have used fewer than 32K vertices, so the mesh generator had to combine triangles to stay under the limit.

The generated mesh has 61837 triangles and 31374 vertices, which is roughly the maximum possible. It means the maximum was exceeded and then triangles had to be optimized away.

Areas of interest (click to zoom):

image.jpeg

The blue rectangle shows the effect of Optimize Unseen being enabled. The triangles covering the seafloor are a lot "coarser" than the above water terrain, and the underwater terrain has essentially been flattened. Much fewer triangles used for underwater means more triangles available for above water terrain.

The orange rectangles show the effect of Optimize Unseen = 550 along the shorelines:

image.jpegimage.jpeg

Notice how the shoreline sharply drops in height and how it is more detailed than the surrounding terrain, while its contour, made up of relatively long straight lines, is not smooth. Beside preventing z-fighting, this transformation is better than what the mesh generator would have done without, it makes the shorelines more clearly defined on the map.

  • +1 1
Link to comment
Share on other sites

31 minutes ago, Mousetick said:

Example showing the positive effects of Optimize Unseen = x in a scenario it was intended for.

  • LOD 32 Tamriel -64,0 (area covered is 32x32 cells)
  • Quality 0, Optimize Unseen = 550, Protect Borders (STEP LOD 32 settings)

With water > Without water > Wireframe

image.jpegimage.jpegimage.jpeg

At Quality 0 for such a large area, there is no way the resulting mesh could have used fewer than 32K vertices, so the mesh generator had to combine triangles to stay under the limit.

The generated mesh has 61837 triangles and 31374 vertices, which is roughly the maximum possible. It means the maximum was exceeded and then triangles had to be optimized away.

Areas of interest (click to zoom):

image.jpeg

The blue rectangle shows the effect of Optimize Unseen being enabled. The triangles covering the seafloor are a lot "coarser" than the above water terrain, and the underwater terrain has essentially been flattened. Much fewer triangles used for underwater means more triangles available for above water terrain.

The orange rectangles show the effect of Optimize Unseen = 550 along the shorelines:

image.jpegimage.jpeg

Notice how the shoreline sharply drops in height and how it is more detailed than the surrounding terrain, while its contour, made up of relatively long straight lines, is not smooth. Beside preventing z-fighting, this transformation is better than what the mesh generator would have done without, it makes the shorelines more clearly defined on the map.

Thanks. This provides the detail and context around the validity of sheson's suggestions in the doc and our likewise modified settings.

Link to comment
Share on other sites

On 8/28/2023 at 3:22 PM, MisterMorden said:

Maybe just give us your thoughts & opinion in text though?

I've not played much since regenerating terrain LOD.

  • Water vs. shoreline z-fighting: I haven't seen any. So far.
  • LOD vs. active cells transitions: Very nice, very smooth. I'm too lazy to make rigorous before/after in-game tests, so it could just be confirmation bias.
  • Performance: Didn't make before/after in-game tests. I haven't noticed any degradation.

You can give the new recommended settings a try if you like. Terrain LOD is simply meshes and textures. You can swap old and new at any time, if you have enough space to keep the old around.

  • Thanks 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.