vulkan icon indicating copy to clipboard operation
vulkan copied to clipboard

add procedural terrain generation

Open beaumanvienna opened this issue 1 year ago • 1 comments

Terms:

  • chunk: larger area corresponding to a height map (maybe 25m x 25m or 100m x 100m)
  • cell: node of quadtree, a result of dividing a chunk
  • patch: input primitive for tesselation control shader, usually triangle

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 avatar Feb 25 '24 04:02 beaumanvienna

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

beaumanvienna avatar Feb 25 '24 05:02 beaumanvienna