Open MakoEnergy opened 7 years ago
Making a separate comment for details that pertain to all terrains (not just planetary) I've found that could be useful.
Geomipmapping: http://www.flipcode.com/archives/article_geomipmaps.pdf
QuadTree: https://codereview.stackexchange.com/questions/84374/quadtree-implementation https://github.com/danshapero/quadtree
Sparse Voxel Octrees: http://www.nvidia.com/docs/IO/88972/nvr-2010-001.pdf
In the not too distant future I want to start work on a terrain system. A sensible set of interfaces for static (but in some cases, editable but still not transformable) geometry in the simulation space to be traversed.
Simple terrain pieces, be them heightfields or meshes, should be placeable with no overhead in the simplest version. It is expected that all the terrain geometry will be loaded at once. A slightly more advanced version would introduce paging (the loading of terrain chunks that the observer(s) are near but unloading everything else), but the terrain would still be paged along a plane. The most advanced version would also involve paging, but would be paged along a sphere or a very close approximation.
Additional "tiers" of terrain may be appropriate, but those seem like the minimal set we should aim for. Paging along a plane can be tricky, but countless examples exist out in the wild and shouldn't require much research on our parts. Zero paging is brain dead simple and we can accomplish that now with minimal hacking. Planetary simulations with appropriate LOD is a bit more complicated. So to properly account for them in the terrain system interfaces we'll have understand planetary simulation better.
Here is a small collection of links I have found on the subject that seem helpful - Technical/Academic Papers: http://www.mutantstargoat.com/bekos/files/doc/gbekiaris.thesis.msc.pdf http://www.twandegraaf.nl/Art/Documents/Procedural%20planets%20into%20detail,%20Twan%20de%20Graaf%202012.pdf http://gamedevs.org/uploads/deferred-rendering-of-planetary-terrains-with-accurate-atmospheres.pdf http://old.cescg.org/CESCG-2009/papers/PragueCUNI-Elek-Oskar09.pdf http://www.vis.uni-stuttgart.de/~schafhts/HomePage/pubs/wscg07-schafhitzel.pdf https://www.cse.unr.edu/~fredh/papers/thesis/046-mahsman/thesis.pdf http://worldcomp-proceedings.com/proc/p2013/CGV4061.pdf http://elib.dlr.de/86477/1/Collienne_GI_VRAR_2013.pdf https://graphics.llnl.gov/ROAM/ https://cesiumjs.org/massiveworlds/ http://www.stereofx.org/papers/TERRAIN.PDF http://andrew-flower.com/assets/projects/defter-thesis-f9a659feea18ffe347b24e3bbfc054d8.pdf http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.136.2768&rep=rep1&type=pdf http://developer.amd.com/wordpress/media/2013/02/Chapter5-Andersson-Terrain_Rendering_in_Frostbite.pdf
Generic Articles/Discussions: http://stackoverflow.com/questions/16494699/best-clod-method-for-planet-rendering http://stackoverflow.com/questions/22104128/simulating-orbits-using-laws-of-physics <-- Not strictly related to terrain. https://www.gamedev.net/topic/637715-terrain-generation/ https://www.gamedev.net/topic/646084-4d-perlin-noise-terrain/ http://gamedev.stackexchange.com/questions/16563/how-are-voxel-terrain-engines-made http://www.gamasutra.com/view/feature/131451/a_realtime_procedural_universe_.php http://www.gamasutra.com/blogs/DanielMaslovsky/20161018/283317/Bending_Unity_to_Carry_Spherical_Voxel_Planets_in_Planet_Nomads.php http://casual-effects.blogspot.com/2014/04/fast-terrain-rendering-with-continuous.html https://www.shaneenishry.com/blog/2014/08/01/planet-generation-part-i/ http://robert-lindner.com/blog/planetrenderer_week1/ https://dexyfex.com/2015/11/30/planetary-terrain-rendering/ http://leifnode.com/2014/04/planetary-scale-lod-terrain-generation/ http://richardssoftware.net/Home/Post/29 http://richardssoftware.net/Home/Post?id=30
Library Articles/Discussions: http://libnoise.sourceforge.net/tutorials/tutorial8.html https://github.com/sp4cerat/Planet-LOD https://www.seedofandromeda.com/blogs/49-procedural-gas-giant-rendering-with-gpu-noise https://www.seedofandromeda.com/blogs/51-procedural-star-rendering https://www.seedofandromeda.com/blogs/58-procedural-heightmap-terrain-generation http://blog.marekrosa.org/2014/12/space-engineers-super-large-worlds_17.html http://www.mavorsrants.com/2013/02/planetary-annihilation-engine.html
Complete Planetary Middleware: http://www.outerra.com/ http://www.keenswh.com/vrage.html
Voxel Resources: https://bitbucket.org/volumesoffun/polyvox
More links will be added to this list as time goes on and I find more resources. This issue WILL need to be broken up and worked on incrementally in child issues, but at current we aren't educated enough on the scope of the task to make those issues. Despite that this can remain for centralized discussion on the topic.