Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Terrain - Planetary Simulation #137

Open
MakoEnergy opened this issue Mar 20, 2017 · 1 comment
Open

Terrain - Planetary Simulation #137

MakoEnergy opened this issue Mar 20, 2017 · 1 comment

Comments

@MakoEnergy
Copy link
Member

MakoEnergy commented Mar 20, 2017

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.

@MakoEnergy
Copy link
Member Author

MakoEnergy commented May 18, 2017

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

@MakoEnergy MakoEnergy changed the title Planetary Simulation / Terrain System Terrain - Planetary Simulation Jun 13, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant