• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 內容創建/渲染

    利用 NVIDIA DesignWorks 實現實時 GPU 加速的高斯體渲染示例 vk_gaussian_splatting

    高斯射是一種渲染復雜 3D 場景的新穎方法,可將這些場景表示為 3D 空間中各向異性 Gaussians 的集合。這項技術能夠實時渲染從小集圖像中學習到的逼真場景,非常適合游戲、虛擬現實和實時專業可視化領域的應用。

    vk_gaussian_splatting 是基于 Vulkan 的新示例,展示了實時高斯射,這是一種先進的立體渲染技術,可實現輻射場的高效表示。這是 NVIDIA DesignWorks 示例 的最新成員。

    NVIDIA DevTech 團隊將這個新的示例項目視為探索和比較 3D 高斯射 (3D Gaussian splatting) 實時可視化的各種方法的試驗平臺。通過評估各種技術和優化,該團隊旨在就使用 Vulkan API 時的性能、質量和實施權衡提供有價值的見解。

    初始實施基于光柵化,展示了兩種渲染 splats 的方法,一種利用 mesh shaders,另一種使用 vertex shaders。

    A diagram comparing Synchronous GPU sorting and Asynchronous CPU sorting in Gaussian Splatting Rasterization. The left side shows the GPU timeline for synchronous sorting, where 'Dist & Cull' and 'Radix Sort' steps are performed before 'Mesh' and 'Fragment' processing for each frame. The right side illustrates asynchronous CPU sorting, where a separate sorting thread computes 'Dist & Sort' without culling, swaps indices, and then copies them to VRAM before the GPU processes 'Mesh' and 'Fragment' stages.
    圖 1。Mesh Shader pipeline 中展示的排序方法比較

    由于 Gaussian splats 需要前后一致的排序才能進行正確的 alpha compositing,因此提供了兩種替代排序方法:

    • 在計算工作流中實現的基于 GPU 的 Radix Sort
    • 基于 CPU 的異步排序策略,使用 C++ STL 中的多線程排序函數
    A screenshot of the vk_gaussian_splatting sample application displaying a rendered 3D gaussian splatting model of a bicycle near a park bench with trees and a path in the background. The user interface includes various settings and statistics panels. On the right, options for data storage, rendering, and sorting methods are visible, with settings for V-Sync, frustum culling, splat scale, and mesh shaders. At the bottom, memory statistics and a profiler panel show GPU and CPU usage, including frame time, sorting, and rendering performance. The application runs at 510 FPS with 1.961 ms frame time.
    圖 2。 vk_gaussian_splatting 用戶界面提供多個分析反饋元素,例如 RAM 和 VRAM 中的內存使用情況,以及用于測量管道不同階段的性能計時器

    該示例允許您探索和試驗此渲染技術的多個方面,包括:

    • 多種可視化模式,用于檢查高斯 splat 的不同方面 (球諧波、splat、點密度等)
    • 完整的 benchmarking 系統可用,并支持實時分析
    • 有關 RAM 和 VRAM 內存消耗的更多詳細信息,以了解要渲染的數據流
    • 研究不同技術的每個階段的 GPU 計時,以便了解工作負載和潛在瓶頸
    • 使用所有這些數字生成的圖形報告
    A bar chart titled 'Pipeline Performance Comparison - SH storage formats in float 32, float 16 and uint 8' showing performance benchmarks from a Vulkan Gaussian Splatting sample. The chart compares processing times in microseconds across different test scenes, with stacked bars representing three pipeline stages: GPU Distribution (black), GPU Sort (dark green), and Rendering (light green). Various scenes are listed along the x-axis including bicycle, bonnet, counter, dining room, flowers, garden, kitchen, playroom, room, stump, train, treehill, and truck - each with their splat count and format details in parentheses. Most scenes show total processing times between 500-1500 microseconds, with rendering typically being the most time-consuming stage. The garden scene shows the highest total processing time at nearly 3000 microseconds. The chart demonstrates that smaller spherical harmonics (SH) storage formats (uint8 vs float16 vs float32) consistently result in faster rendering performance across all test scenes.
    圖 3。完整數據集的渲染性能與不同數據存儲格式對比報告示例

    此示例為希望嘗試高斯射渲染技術和基于 Vulkan 的優化的開發者提供了一個起點。

    要開始探索神經輻射場的實時渲染,請查看 nvpro-samples/vk_gaussian_splatting GitHub 資源庫。

    ?

    0

    標簽

    人人超碰97caoporen国产