NVIDIA RTX Mega Geometry Now Available with New Vulkan Samples
Geometric detail in computer graphics has increased exponentially in the past 30 years. To render high quality assets with higher instance counts and greater triangle density, NVIDIA introduced RTX Mega Geometry. RTX Mega Geometry is available today through
NVIDIA RTX Kit
, a suite of rendering technologies to ray trace games with AI, render scenes with immense geometry, and create game characters with photorealistic visuals.
As part of this release, new Vulkan samples have been made available to all developers. These open-source samples show how you can use clusters of triangles to build acceleration structures faster, render massive amounts of animated geometry, path trace models with streaming level of detail (LoD), and more. NVIDIA is also releasing two libraries to help process geometry into clusters. For more information on RTX Mega Geometry, see the documentation on
GitHub
. For more information on individual Vulkan samples, visit each repository.
Sample: Animated clusters
This sample introduces clusters and shows how to use the
VK_NV_cluster_acceleration_structure
extension to ray trace massive, animated scenes.. With NVIDIA RTX Mega Geometry, acceleration structures for animated objects can be built faster than using previous APIs. It also shows how clusters can be rasterized using
VK_EXT_mesh_shader
.
Figure 1. Each mesh in this scene independently deforms, changing the position of every triangle with every frame
For more information, see the
vk_animated_clusters
GitHub repo.
Sample: Partitioned top-level acceleration structure
Frequently, only parts of a scene change between frames. The new
VK_NV_partitioned_acceleration_structure
extension enables apps to rebuild parts of a Top-Level Acceleration Structure (TLAS) when part of a scene changes, rather than the whole thing. The partitioned TLAS sample showcases this extension using a simple simulation of more than more than 100K physics objects.
Figure 2.
VK_NV_partitioned_acceleration_structure
enables part of the TLAS to be rebuilt when only part of it changes
For more information, see the
vk_partitioned_tlas
GitHub repo.
Sample: Dynamic tessellation for clusters
This sample showcases how to use clusters and
VK_NV_cluster_acceleration_structure
to path trace dynamic tessellation with displacement, which requires per-frame generation of geometry. It can also render the content using
VK_NV_mesh_shader
.
Figure 3. NVIDIA RTX Mega Geometry can be used for dynamic tessellation
For more information, see the
vk_tessellated_clusters
GitHub repo.
Sample: Level of detail for clusters
This sample showcases a continuous LoD technique using clusters that uses
VK_NV_cluster_acceleration_structure
for ray tracing. It can also rasterize the content using
VK_NV_mesh_shader
. In addition, the sample implements an on-demand streaming system from RAM to VRAM for the geometry.
Figure 4. vk_lod_clusters builds levels of detail out of groups of clusters. These are structured so that the rendering is seamless even if the chosen level of detail varies across a mesh
For more information, see the
vk_lod_clusters
GitHub repo.
Library: Cluster builder
nv_cluster_builder
is a small generic spatial clustering C++ library, created to cluster triangle meshes for ray tracing. It implements an algorithm similar to the recursive node-splitting techniques sometimes used to create bounding volume hierarchies. While it is limited to axis-aligned splits, its outputs work well for ray tracing.
Figure 5.
nv_cluster_builder
clusters triangles, quads, and smaller clusters, given their bounding boxes and optional connectivity data
For more information, see the
nv_cluster_builder
GitHub repo.
Library: Level of detail cluster builder
nv_lod_cluster_builder
is a continuous LoD mesh library that enables fine-grained control over geometric detail within a mesh, compared to traditional discrete LoD. Clusters of triangles are carefully precomputed by decimating the original mesh in a way that they can be seamlessly combined across different LoD levels. At rendering time, a subset of these clusters can be selected to adaptively provide the required amount of detail as the camera navigates the scene.
Figure 5.
nv_lod_cluster_builder
generates clusterized meshes with a seamless level of detail
For more information, see the
nv_cluster_lod_builder
GitHub repo.
These RTX Mega Geometry samples are part of NVIDIA RTX Kit. Learn more about RTX Kit technologies at the
NVIDIA RTX Kit website
today. Ask questions, provide feedback, and discuss with other developers on the
NVIDIA Developer Forums for ray tracing
.
NVIDIA RTX Mega Geometry 现已支持新的 Vulkan 示例程序
在过去 30 年里，计算机图形领域的几何细节呈指数级增长。为了渲染具有更高实例数量和三角形密度的高质量素材，NVIDIA 推出了 RTX Mega Geometry。RTX Mega Geometry 现已通过
NVIDIA RTX Kit
推出，这是一套渲染技术，可利用 AI 对游戏进行光线追踪、渲染具有宏大几何图形的场景，以及创建具有逼真视觉效果的游戏角色。
作为此版本的一部分，新的 Vulkan 示例已提供给所有开发者。这些开源示例展示了如何使用三角形集群更快地构建加速结构、渲染大量动画几何图形、具有流式传输细节级别（LoD）的路径追踪模型等。NVIDIA 还将发布两个库，帮助将几何图形处理到集群中。有关 RTX Mega Geometry 的更多信息，请参阅
GitHub
上的文档。有关单个 Vulkan 示例的更多信息，请访问每个存储库。
示例：动画集群
此示例介绍了集群，并展示了如何使用
VK_NV_cluster_acceleration_structure
扩展对大型动画场景进行光线追踪。借助 NVIDIA RTX Mega Geometry，动画对象的加速结构构建速度比使用之前的 API 更快。它还展示了如何使用
VK_EXT_mesh_shader
对集群进行光栅化。
图 1. 每个网格在这个场景中各自变形，每帧都会改变每个三角形的位置
有关更多信息，请参阅
vk_animated_clusters
GitHub 存储库。
示例：分区顶层加速结构
通常情况下，只有场景的一部分在帧之间发生变化。借助新的
VK_NV_partitioned_acceleration_structure
扩展，应用可以在部分场景发生变化时重建顶层加速结构（TLAS）的部分，而非重建整个场景。分区的 TLAS 示例展示了此扩展，它使用对超过 100K 个物理对象的简单模拟。
图 2
、VK_NV_partitioned_acceleration_structure
支持在仅部分 TLAS 发生变化时重建部分 TLAS
有关更多信息，请参阅
vk_partitioned_tlas
GitHub 存储库。
示例：集群的动态曲面细分
此示例展示了如何使用集群和
VK_NV_cluster_acceleration_structure
来追踪具有位移的动态曲面细分，这需要每帧生成几何图形。它还可以使用
VK_NV_mesh_shader
渲染内容。
图 3、NVIDIA RTX Mega Geometry 可用于动态曲面细分
有关更多信息，请参阅
vk_tessellated_clusters
GitHub 存储库。
示例：集群的细节级别
此示例展示了一种使用集群的连续 LoD 技术，该集群使用
VK_NV_cluster_acceleration_structure
进行光线追踪。它还可以使用
VK_NV_mesh_shader
对内容进行光栅化。此外，该示例针对几何图形实现了从 RAM 到 VRAM 的按需串流系统。
图 4.vk_lod_clusters 根据集群构建细节级别。这些都是结构化的，因此即使网格中选择的细节级别不同，渲染也是无缝的
有关更多信息，请参阅
vk_lod_clusters
GitHub 存储库。
库：集群构建器
nv_cluster_builder
是一个小型通用空间聚类 C++ 库，用于聚类三角形网格以进行光线追踪。它实现了一种类似于递归节点分割技术的算法，有时用于创建边界体积层次结构。虽然它仅限于进行轴对齐的拆分，但其输出非常适合光线追踪。
图 5
.nv_cluster_builder
集群中三角形、四边形和较小集群的边界框和可选连接数据
有关更多信息，请参阅
nv_cluster_builder
GitHub 存储库。
库：细节级别集群构建器
nv_lod_cluster_builder
是一个连续 LoD 网格库，与传统的离散 LoD 相比，可对网格内的几何细节进行精细控制。我们通过对原始网格进行抽取来仔细预计算三角形，以便在不同的 LoD 级别上无缝地组合这些网格。在渲染时，可以从这些集群中选择一个子集，以便在摄像头导航场景时自适应地提供所需的细节量。
图 5.nv_lod_cluster_builder 生成细节无缝的集群化网格
有关更多信息，请参阅
nv_cluster_lod_builder
GitHub 存储库。
这些 RTX Mega Geometry 示例是 NVIDIA RTX Kit 的一部分。立即访问
NVIDIA RTX Kit 网站
，详细了解 RTX Kit 技术。在适用于光线追踪的
NVIDIA Developer Forums 上提出问题、提供反馈并与其他开发者进行讨论
。