Game
Floating Sandbox
7 years ago

Z-Buffer Work Is Finally Complete


Finally, after 21 days of work and 34 commits, the re-design of the depth management subsystem is complete!

Depth management in previous versions was exclusively based on depth sorting: ships were being drawn connected component by connected component, from the furthest to the nearest. This worked fine for a small number of connected components, but it caused a lot of lagging whenever a ship would be reduced to smithereens. The following screenshot is from 1.8, showing the FPS rate right after an anti-matter bomb has exploded on the RMS Titanic (the normal RMS Titanic FPS rate on my 2010 laptop is ~21):

5d0935f19848f.png

As you can tell, the large number of connected components - and thus the large number of OpenGL batches - caused the FPS rate to almost get halved, down to ~10 FPS.

The new depth management strategy makes instead heavy use of OpenGL’s depth test. Each vertex is assigned a “plane ID”, which is simply a sequential integer starting from zero and incremented for each connected component. Plane ID’s of vertices are then passed to the shaders, which use them as Z coordinates. This way I can now render all connected components in a single pass! Here’s the same screenshot from before, but from the upcoming 1.9.0:

5d0935f322053.png

The FPS rate is now ~22 - even faster than when the Titanic was whole :-)

I’ll now switch to working on a few low-hanging thinghies, before packing and publishing a shiny new 1.9.0 release. Stay tuned!



6 comments

Loading...

Next up

1.12 Screenshot #1

Floating Sandbox at LVL UP Expo 2025!

Sneak Peek at the New Water Flood Algorithm

This Satuday we invite to watch another #speedpainting of our artist Daniel Faiad.

How great is this scene of #Pecaminosa?

#ScreenShotSaturday | #IndieDev | #DigitalArt

Shoobies leave a sticky trail of mucus in their wake, which can impede movement for any creature that steps in it.

Enemies can also suddenly spawn through Realm Rifts. These Rift Spawns are going to be stronger than the ones wandering around. TBD on the enemies... #screenshotsaturday #godstear #madewithunity

Finished a project I've been working on over the last few days!

Modeled and textured in Blender.

#3dart #lowpoly #npbr #fantasy #hut

Heya! I wanted to show some gameplay progress i made so far. I hope you like it ^^

Werehog transformation process. #sonicunleashed

A Shiny Mega Gengar 🌟 For @ManutkArt 's #ThreeColorsChallenge!