Sodium

Sodium

61M Downloads

potential suggestion to reduce rendered faces

Closed this issue ยท 3 comments

commented

Request Description

this is a suggestion if something similar is not already implemented
what i'm suggesting is to use dynamic grid based visibility system by propagating single out from the player's camera across nodes to calculate an optimal path, this could fix situations where faces are rendered due to them being considered exposed but are hidden from the camera, there can also be cases where some calculations could be skipped, such as since minecraft structures chunks as columns of sub chunks, if the sub chunk is only air then this can be skipped, or since sodium uses chunk occlusion these chunks can be skipped entirely

commented

We in part already do these things, they aren't feasible, and/or are aware of them. Thanks

commented

can you elaborate on this, as this video: https://www.youtube.com/watch?v=LxVLqCiDqd8&t=869s suggests it isn't used that often and i am curious to what parts of this isn't feasible, as grid based visibility apparently can help fix problems such as overdraw

commented

Sodium's implementation improves upon Minecraft's flood-fill algorithm and takes into account both the angle of visibility and a better distance metric to cull more chunks (especially when considering bends around corners) without introducing false-negatives. Furthermore, we have additional work planned to separate the building of the graph from the actual traversal and visibility testing, which allows a lot of the work to be re-used when the player isn't moving around too quickly.

Grid-based visibility as discussed in the video you linked has been explored by our team before, but actually computing it efficiently is very difficult, and it has not yet been demonstrated whether it could ever be faster than our approach. I would probably guess our implementation is better than what they describe, but without actual numbers it is hard to know.