Distant Statics Placeholder

Feedback on past, current, and future development.
User avatar
akortunov
Posts: 496
Joined: 13 Mar 2017, 13:49
Location: Samara, Russian Federation
Github profile: https://github.com/akortunov

Re: Distant Statics Placeholder

Post by akortunov » 02 Nov 2018, 06:34

drakovyrn wrote:
02 Nov 2018, 05:31
I tried last night, but there didn't seem to be much a difference on mine... performance-wise nor visually speaking. In fact, nightly seems to run a few frames per second slower when idling on the same saves.
Which build did you try to use? The one with RecastNavigation already?

User avatar
drakovyrn
Posts: 45
Joined: 17 Feb 2017, 03:51
Contact:

Re: Distant Statics Placeholder

Post by drakovyrn » 03 Nov 2018, 18:58

Ah, well I just used Ace's nightly from about 3 days ago, but physics isn't my bottleneck. Graphics/Rendering is, as my Dell Optiplex 7010 tower only has integrated graphics. However, I plan to solve this later by gutting the tower and installing a better GPU and PSU.

User avatar
akortunov
Posts: 496
Joined: 13 Mar 2017, 13:49
Location: Samara, Russian Federation
Github profile: https://github.com/akortunov

Re: Distant Statics Placeholder

Post by akortunov » 06 Jan 2019, 10:58

I tried to implement the "placeholder" approach, and results are quite decent - my GTX 1050 hand handle 5 cells viewing distance with 40-70 FPS in exteriors. Loading speed is much faster than with large ECLD too.

Some additional test results:
1. There are deadlocks in the navmesh system (in master too, but less frequent).
2. Mesh simplifying (via OSG::Simplifier or NiLODNodes) does not change FPS for me (excepts of skinned nodes).
It seems OpenSceneGraph can handle meshes with a lot of triangles a quite good, but get FPS drop when there is a lot of shapes in scene (in both culling and rendering phase). So maybe we do not need to generate anything in the OpenMW itself.
3. Probably we need to somehow limit shadows and reflections distance to do not handle most of distant stuff.
Or a more simple and dumb solution - do not reflect distant stuff at all, but in this case reflections will appear and disappear instantly.
4. We need to implement a some kind of batching to improve performance.
5. There is an additional memory consumption - about 1.2 GB of memory with 5 cells viewing distance.
6. Atlased meshes can increase performance too, but do not expect miracles.

Image

The same scene in master:

Image

Tests were done with OSG 3.6.3 with recent patches to fix crashes. With "OSG on steroids" performance can be a bit higher.

User avatar
Amenophis
Posts: 252
Joined: 30 Oct 2011, 04:34
Location: Fortaleza - Ceará - Brasil

Re: Distant Statics Placeholder

Post by Amenophis » 06 Jan 2019, 16:47

Love you, akortunov!!
My fixes and tweaks on vanilla and modded quests for Morrowind.
http://www.nexusmods.com/morrowind/mods/43107/?

User avatar
akortunov
Posts: 496
Joined: 13 Mar 2017, 13:49
Location: Samara, Russian Federation
Github profile: https://github.com/akortunov

Re: Distant Statics Placeholder

Post by akortunov » 06 Jan 2019, 18:33

The same scene with custom small feature culling size (12.0) for distant objects:

Image

User avatar
wareya
Posts: 277
Joined: 09 May 2015, 13:07

Re: Distant Statics Placeholder

Post by wareya » 08 Jan 2019, 04:23

Speaking of the "small feature culling" option, why does it behave so strangely when you set it to a high value? Does it try to traverse down into individual parts of objects? It also doesn't seem to try to cull particles, though that makes sense I guess. Cull pixel size of 200 at 1080p: https://imgur.com/a/ilgPcoT

Culling tiny parts of large objects is probably counterproductive. Rendering a few triangles that are already part of a mesh is cheaper than splitting the mesh up into parts and rendering them as individual objects. Of course, I have no idea what OSG does under the hood, and splitting up animated models into individual parts might be necessary. At the very least, size-testing the individual parts of a chair is probably not worth the CPU cost.

I personally see slightly higher framerates when I have "small feature culling" disabled entirely (except for reflections), unless I set it to ridiculously high values.
paying attention to #1751 #2473 #3609 #3862/#3929 #3807 #4297 #4623

Post Reply

Who is online

Users browsing this forum: Azdul and 4 guests