- 12
- 21 415
Kurt Kühnert
Germany
Приєднався 12 бер 2017
Hi, I am a computer science student from Germany and I would like to share my personal projects with you.
Planetary Terrain Rendering
This video showcases the latest developments of my bevy_terrain plugin.
The latest features include a user-friendly orbital camera for smooth zoom, rotation, and panning, allowing you to explore planets from all angles. The seamless LOD system supports zooming through 16 LOD layers, enabling rendering of terrains ranging from 1 square meter to the entire Earth's surface.
The renderer now supports multi-dataset rendering, allowing different datasets to be displayed on the same terrain seamlessly. Additionally, with high-precision support, the mesh subdivision now achieves centimeter accuracy on the WGS84 reference ellipsoid overcoming single precision floating point limitations of GPUs.
The terrain is based on the WGS84 ellipsoid model, offering a highly accurate representation of our planet. Finally, I’m working with the entire public Gebeco dataset, which includes over 7GB of heightmap data, demonstrating the scalability of the renderer.
Check out the project linked in the description to explore more!
If you are interested in the topic or the project, feel free to contact me on my discord server.
Join my discord server: discord.gg/7mtZWEpA82
Link to the project: github.com/kurtkuehnert/bevy_terrain
Datasets:
GEBCO Compilation Group (2023) GEBCO 2023 Grid (doi:10.5285/f98b053b-0cbc-6c23-e053-6c86abc0af7b)
Saxony Open Geo Data (www.geodaten.sachsen.de/)
Source: GeoSN, dl-de/by-2-0
The latest features include a user-friendly orbital camera for smooth zoom, rotation, and panning, allowing you to explore planets from all angles. The seamless LOD system supports zooming through 16 LOD layers, enabling rendering of terrains ranging from 1 square meter to the entire Earth's surface.
The renderer now supports multi-dataset rendering, allowing different datasets to be displayed on the same terrain seamlessly. Additionally, with high-precision support, the mesh subdivision now achieves centimeter accuracy on the WGS84 reference ellipsoid overcoming single precision floating point limitations of GPUs.
The terrain is based on the WGS84 ellipsoid model, offering a highly accurate representation of our planet. Finally, I’m working with the entire public Gebeco dataset, which includes over 7GB of heightmap data, demonstrating the scalability of the renderer.
Check out the project linked in the description to explore more!
If you are interested in the topic or the project, feel free to contact me on my discord server.
Join my discord server: discord.gg/7mtZWEpA82
Link to the project: github.com/kurtkuehnert/bevy_terrain
Datasets:
GEBCO Compilation Group (2023) GEBCO 2023 Grid (doi:10.5285/f98b053b-0cbc-6c23-e053-6c86abc0af7b)
Saxony Open Geo Data (www.geodaten.sachsen.de/)
Source: GeoSN, dl-de/by-2-0
Переглядів: 511
Відео
Spherical Terrain Rendering
Переглядів 1 тис.11 місяців тому
This video showcases the current features of the bevy_terrain plugin. Over the last three months, I have been working on extending my terrain renderer to the spherical domain. To achieve that, I have applied my tesselation algorithm UDLOD and my terrain data structure, the chunked clip map to the six faces of a cube sphere. The terrain dataset used for this demo is still quite small (6 x 4096² ...
MPM Physics Simulation | Compatible Particle-In-Cell (CPIC)
Переглядів 906Рік тому
This video summarizes the work I have completed as part of my internship at Foresight Mining Software Corporation. My goal was to implement the CPIC algorithm of the MLS-MPM-CPIC paper. Its purpose is to couple the GPU particle simulation (sparkl) with the CPU rigid body simulation (rapier). Therefore we generate a set of evenly spaced rigid particles across the surface of all rigid bodies. The...
Large Scale Terrain Rendering - Bachelor Thesis
Переглядів 8 тис.2 роки тому
This is a supplementary video for my bachelor thesis. It showcases the capabilities and features of my new terrain rendering method. The terrain renderer shown in this video was written in Rust using the Bevy game engine. It focuses on visualizing large-scale terrains in a seamless, continuous, and efficient manner. The source code was developed as the open-source plugin bevy_terrain for the Be...
Terrain Rendering Saxony
Переглядів 8462 роки тому
This video showcases the latest iteration of my terrain renderer written in Rust using the Bevy game engine. Here I am rendering the entire 18,416 km² surface of Saxony at an resolution of up to a single meter. Data Set: www.geodaten.sachsen.de/ Source: GeoSN, dl-de/by-2-0 Join my discord server: discord.gg/7mtZWEpA82 Check out the plugin: github.com/Ku95/bevy_terrain
Terrain Rendering Adaptive LOD
Переглядів 2,6 тис.2 роки тому
This video showcases the latest iteration of my terrain renderer written in Rust using the Bevy game engine. Recently I have developed and implemented an adaptive terrain tessellation algorithm using compute and vertex shader, which distributes vertices according to the density (roughness) of the terrain. Join my discord server: discord.gg/7mtZWEpA82 Check out the plugin: github.com/Ku95/bevy_t...
Terrain Rendering Distance Dependent LOD
Переглядів 2,4 тис.2 роки тому
Another level of detail improvement has been achieved this week. Now the terrain is rendered with constant quality from every distance. Also look at this gloriously smooth mesh. ;)
Terrain Rendering Hartenstein
Переглядів 4052 роки тому
Data Set: www.geodaten.sachsen.de/ Source: GeoSN, dl-de/by-2-0 Join my discord server: discord.gg/7mtZWEpA82 Check out the plugin: github.com/Ku95/bevy_terrain
Terrain Rendering Smooth LOD
Переглядів 7542 роки тому
This week I have improved the LOD algorithm of my terrain renderer by smoothly interpolating between adjacent LOD rings. This improvement turns pop-in artifacts into a thing of the past.
Terrain Rendering Circular LOD
Переглядів 7562 роки тому
This video is an early demonstration of a novel circular level of detail approach for terrain rendering. I still don't have implemented mip maps for the albedo texture, thus I have lowered the texture size for now, to reduce aliasing.
Terrain Rendering Hartenstein (WIP)
Переглядів 5282 роки тому
Short demo of my terrain renderer written with Rust, Bevy and WGPU. Data Set: www.geodaten.sachsen.de/ Source: GeoSN, dl-de/by-2-0 Join my discord server: discord.gg/7mtZWEpA82 Check out the plugin: github.com/Ku95/bevy_terrain
Procedural Terrain Generation with OpenGL
Переглядів 2,8 тис.2 роки тому
This is the result of our six-monthly research internship at the TU Chemnitz. Our goal was to fully procedurally generate an island from scratch. Therefore we have implemented an efficient lod system for our terrain and multiple mesh builders for the trees and rocks. The height map is generated using a compute shader based on simplex noise and real time hydraulic erosion on the GPU. The project...
For some larger datasets I’ve seen work done that loads heightmap data into the HDF5 format and uses the capabilities of that format to access portions of the height map as needed instead of loading the whole height map into memory.
vary nice job man. What kind of GPU do you use ?
This is amazing! Would you tell us a bit more about the backgrounds? Is this a continuation of your Bachelor thesis? Are you a master student now and this is the topic of your master thesis? Would be interested ;)
The smooth transition between levels is truly something else 👌
Excellent work Kurt!
Implement it for Blender 3D
Amazing - thx for sharing the code...
clean
Kurt maybe you could join CIG and help improve LOD pop-in in Star Engine. That would be sweet.
Wow
Awesome showcase. I noticed the interpolation of terrain mesh data between LOD levels. This is presumably not a novelty of this work? It didn't get mentioned. The quality and smoothness and absence of artefacts is outstanding. This is how the current "map viewers" should look & feel like.
Incredible stuff. The transition between LODs is incredible. This will redefine terrain generation.
I am half-way through your brilliant thesis. I'm implementing 3D terrain for a commercial Win32 weather graphics application and already decided on the Strugar 2010 CDLOD method which yours seems a perfect extension of. Once I wrap my head around your genius Chunked Clipmap concept I very well may choose this strategy. I am in charge of every aspect from dataset assimilation to hosting and rendering engine dev. Brilliant work! I'm kicking myself for wasting hours reading through the dense literature when Strugar 2010 and Kühnert 2022 were all I needed.
Is this Clasen and Hege 2006?
Hi, ich überlege ob man Marching Cubes LOD programmieren kann
This is fantastic!
Cool project!
Thanks!
Oh! very cool! I'm working on voxel planets but my rendering is still crap. I do have chunking, LOD and collision working however.
very nice
Thank you very much. Your videos where a huge inspiration for this project.
@@kurtkuehnert oh really? I feel honored. You did an amazing job, contratulations!
Can you center the LOD circles on the look-at point instead of on the camera? It would utilize the high LODs better.
Yes I could do that, the problem would be that this would cause a lot of paging in and out of data, since the viewpoint moves way more often and way more drastically than the viewer. Since this video I have improved the circular LOD to a spherical one. Now the distance is computed in 3D instead of 2D. The approximate viewer height is taken into account.
At that height/distance it just looks like Google earth
Seems like an simplified version of nanite that could be used in any sort of game engine
Nanite is actually based off terrain rendering technology in the first place
Yeah both nanite and UDLOD are in some way responsible for surface subdivision. Though both offer different trade-offs. Nanite requires extensive preprocessing, whereas UDLOD is only suitable for subdividing large 2D planes, instead of nanite's 3D surfaces.
do you have a release date for the thesis? really great stuff!
Sorry, I forgot to update the video description. The thesis is available already. You can check it out here: github.com/kurtkuehnert/terrain_renderer/blob/main/Thesis.pdf
This looks awesome. There is a lot of detail and the transitions are very smooth. Excellent work.
Glad you like it!
Meanwhile MS Flight Sim would probably run at 3 fps on a mac
looks interesting - are you going to pub your code - i am about to start some work and looking for a good starting point - in stead of re-inventing what you have (if i ever could), i would then focus on the real work utilising these viewers
Sure! All my code for this project is open source. You can check it out here github.com/kurtkuehnert/terrain_renderer.
Very impressive! The Terrain looks unbelievably realistic with that real world data. And not only that, but the performance is amazing as well (for the hardware it was tested on at least). Keep the good work up, this truly could enhance the rust game dev market.
Thank you very much!
great work
Thanks!
Do you merge the vertices or triangles somehow, or do you apply a transperency in the rendering pass which blends the overlying faces depending on the distance of the point in worldspace to the camera? Looks like it might be the later one, but it is a really nice technique!
Thanks! I actually merge the vertices of the different tiles together. I call this method Uniform Distance-Dependent Level of Detail (UDLOD). You can read more about it in my thesis (github.com/kurtkuehnert/terrain_renderer/blob/main/Thesis.pdf). In my new video I showcase the method more in depth ua-cam.com/video/ZRMt1GV50nI/v-deo.html.
Now implement this in minecraft and make the game run at 999999 fps with rtx
can't wait for this guy to make earth 2
Es fehlt noch der Enderdragon xD
now make it shoot laser beams! 👍
beans
Cool ones
That's so smooth I didn't even notice that it was there, amazing work.
Very nice! Now make Smooth Level of Detail!
That's what I did this week! Check out my latest video.
Any hopes for a follow up with more details regarding the implementation? Or at least some more insights :D
I am not working on the terrain generator anymore, but I have transitioned to implementing a large scale terrain renderer. Check out my new videos, if you are interested. The code for this new project will be open source soon.
looks good
Pretty dope
I think music is not earrape enough
Nice demo, next time turn up the background music volume. Because I could hardly hear it.