Water planes mesh generation

I designed and guided an intern in developing a tool to generate polygonal meshes from mass polygons and polylines datasets, representing rivers (lines) and lakes (polygons) in large-scale scenarios.


Description

The purpose of this tool is to replace an outdated solution that struggled with scalability issues at entity junctions, such as river-river (line-line, on the left), rivers-rivers (lines-lines, in the middle), and river-lake (line-polygon, on the right). The previous solution employed a geometric approach that required treating each case of junctions, resulting in a system that was difficult to expand and maintain.

Nature


To get a simple and scalable solution for different types and amounts of entities' junctions, we developed a raster-based solution. The process starts by filling a texture (Buffering step, image below), where each pixel represents a small portion of the scenario and is set as a region Inside, Outside, or Border of a water body (river and/or lake). Next, the texture is traversed to extract the pixels defined as a Border (Vectorization step), which will be Simplified and Triangulated in the sequence. It results in a single mesh containing rivers and lakes from the region considered (whole scenario or small blocks for performance reasons). For performance purposes, compute-shader and acceleration structures were used.

Nature




More details can be seen here.




Nifty tech tag lists fromĀ Wouter Beeftink