Загрузка...

Point Based LOD for Aggregate Geometry

Recently Epic Games showcased a volumetric level of detail system for aggregate geometry based on voxels. I was very interested and decided to implement something similar based on my LOD generation library (MeshDecimationTools MIT licensed on github).

My implementation is based on points instead of voxels. Meshes are inherently surface based primitives and thus are easier to convert to points (with finite radius) rather than to a volume. At LOD build time, mesh is converted to points when average triangle surface area becomes smaller than the surface area of a point with the diameter equal to the mesh decimation error so far. At render time decimation error is treated as point diameter, a given LOD is selected when it's projected area is under one pixel. Points are scattered into 64 bit visibility buffer using atomic max from a compute shader (for debug views they are rendered as camera facing billboards). On RTX4080 it takes around 20us to rasterize 1 million points. The scene at the end at the highest point LOD takes 0.06ms to rasterize (using triangle mesh LOD0 with the same view takes 2.65ms).

There is still some further work required. Materials often change their look at a distance. It might be beneficial to accumulate an SGGX distribution during point cloud generation and decimation, and use it at runtime to compute lighting. A small amount of popping and coverage gain might be observed in some cases (depends on AA technique used). Better heuristics for point cloud generation and decimation might improve this.

Видео Point Based LOD for Aggregate Geometry канала Georgy Khachatryan
Яндекс.Метрика
Все заметки Новая заметка Страницу в заметки
Страницу в закладки Мои закладки
На информационно-развлекательном портале SALDA.WS применяются cookie-файлы. Нажимая кнопку Принять, вы подтверждаете свое согласие на их использование.
О CookiesНапомнить позжеПринять