beaumanvienna / vulkan

A Vulkan Render Engine
GNU General Public License v3.0
55 stars 7 forks source link

add procedural terrain generation #42

Open beaumanvienna opened 4 months ago

beaumanvienna commented 4 months ago

Terms:

best intro video: https://www.youtube.com/watch?v=OqRMNrvu6TE&t=45s&ab_channel=CemYuksel

Best blog on this topic: https://satellitnorden.wordpress.com/2018/02/12/vulkan-adventures-part-3-return-of-the-triangles-tessellation-tutorial/

quad tree: https://www.youtube.com/watch?v=YO_A5w_fxRQ&ab_channel=SimonDev geometry clipmaps: https://mikejsavage.co.uk/geometry-clipmaps/

control texture to define which out of four terrain textures is used as albedo color: https://youtu.be/rNuDkDhadfU?si=8igI-qkdmwDU5NUu&t=179

Best YT tutorial SimonDev's (the first episodes only then he goes into planet rendering): https://www.youtube.com/watch?v=hHGshzIXFWY&list=PLRL3Z3lpLmH3PNGZuDNf2WXnLTHpN9hXy&ab_channel=SimonDev

Tutorial about Vulkan tesselation: https://github.com/PAMinerva/LearnVulkan/wiki/02.E-Tessellation

Wiki: https://www.khronos.org/opengl/wiki/Tessellation

The work for Lukas in his engine https://github.com/lukasino1214/soc_real_time_renderer/blob/2d9bc4a0376ad4e155d88a8a81433db2f2cf7102/src/graphics/tasks/draw_terrain.inl#L151-L192 https://github.com/lukasino1214/soc_real_time_renderer/blob/2d9bc4a0376ad4e155d88a8a81433db2f2cf7102/src/graphics/renderer.cpp#L194-L220

Vulkan cookbook, page 621 (p.658 in the pdf) patches in view frustum OGLDEV: https://youtu.be/08dApu_vS4c?si=yDT4AJFd9ILHLNiv&t=111

Official Vulkan docs https://docs.vulkan.org/spec/latest/chapters/tessellation.html#:~:text=Tessellation%20involves%20three%20pipeline%20stages,v%2Cw)%20parameter%20space.

[download JSON terrain config file (just brainstorming) terrain.json] (https://github.com/beaumanvienna/vulkan/files/14395258/terrain.json)

beaumanvienna commented 4 months ago

https://github.com/beaumanvienna/vulkan/pull/37