Logarithmic Depth Buffers and Problems of Scale (3D World Generation #9)
Support me on:
Patreon: https://www.patreon.com/simondevyt
Follow me on:
Twitter: https://twitter.com/iced_coffee_dev
Instagram: https://www.instagram.com/beer_and_code/
Github: https://github.com/simondevyoutube/
In this project, we look at floating point precision, logarithmic depth buffers, and the problems that come with planetary scale rendering. In the last video in the series, we used floating origins to scale the planet up, but that left a bunch of issues that needed resolving. We'll be fixing those issues one by one, and examining how and why the solutions work.
This is all implemented in three.js/webgl and JavaScript but should be easy enough to port to Unity or whatever your setup is. We mostly explore the concepts here, not the specifics of any given platform implementation.
Various resources:
Intro Music: www.bensound.com
Depth Buffer Resources:
https://outerra.blogspot.com/2009/08/logarithmic-z-buffer.html
http://tulrich.com/geekstuff/log_depth_buffer.txt
https://developer.nvidia.com/content/depth-precision-visualized
http://dev.theomader.com/depth-precision/
http://www.humus.name/index.php?ID=255
Misc other stuff:
https://github.com/KhronosGroup/WebGL/issues/2197
https://www.khronos.org/opengl/wiki/Early_Fragment_Test
https://en.wikipedia.org/wiki/Triangle_wave
Science & Technology
#simondev
#game development
#programming tutorial
#three js
#three.js
#3d world generation
#planet coding
#procedural worlds