3 月 19 日下午 2 点,锁定 NVIDIA AI 网络中文专场。立即注册观看
内容创建/渲染

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 对集群进行光栅化。

An image shows a large number of Stanford Bunny meshes.
图 1. 每个网格在这个场景中各自变形,每帧都会改变每个三角形的位置

有关更多信息,请参阅 vk_animated_clusters GitHub 存储库。

示例:分区顶层加速结构

通常情况下,只有场景的一部分在帧之间发生变化。借助新的 VK_NV_partitioned_acceleration_structure 扩展,应用可以在部分场景发生变化时重建顶层加速结构(TLAS)的部分,而非重建整个场景。分区的 TLAS 示例展示了此扩展,它使用对超过 100K 个物理对象的简单模拟。

Over 100,000 dominoes tumble under arches and next to icosahedra. The world is divided into tiles. Tiles where dominoes tumble, which is where parts of the partitioned TLAS are being updated, are in brighter colors.
图 2 、VK_NV_partitioned_acceleration_structure 支持在仅部分 TLAS 发生变化时重建部分 TLAS

有关更多信息,请参阅 vk_partitioned_tlas GitHub 存储库。

示例:集群的动态曲面细分

此示例展示了如何使用集群和 VK_NV_cluster_acceleration_structure 来追踪具有位移的动态曲面细分,这需要每帧生成几何图形。它还可以使用 VK_NV_mesh_shader 渲染内容。

A close-up of a finely tessellated brick wall. Its surface is divided into base triangles. Tessellated base triangles are split into clusters of many smaller triangles every frame.
图 3、NVIDIA RTX Mega Geometry 可用于动态曲面细分

有关更多信息,请参阅 vk_tessellated_clusters GitHub 存储库。

示例:集群的细节级别

此示例展示了一种使用集群的连续 LoD 技术,该集群使用 VK_NV_cluster_acceleration_structure 进行光线追踪。它还可以使用 VK_NV_mesh_shader 对内容进行光栅化。此外,该示例针对几何图形实现了从 RAM 到 VRAM 的按需串流系统。

A large number of statues. The right side of the image shows that each mesh is divided into clusters of triangles. The center shows that these clusters are organized into groups. The left side of the image shows that level of detail varies across meshes and groups, yet the rendering is seamless.
图 4.vk_lod_clusters 根据集群构建细节级别。这些都是结构化的,因此即使网格中选择的细节级别不同,渲染也是无缝的

有关更多信息,请参阅 vk_lod_clusters GitHub 存储库。

库:集群构建器 

nv_cluster_builder 是一个小型通用空间聚类 C++ 库,用于聚类三角形网格以进行光线追踪。它实现了一种类似于递归节点分割技术的算法,有时用于创建边界体积层次结构。虽然它仅限于进行轴对齐的拆分,但其输出非常适合光线追踪。

This image shows nv_cluster_builder’s input types: triangles, quads, and clusters.
图 5 .nv_cluster_builder 集群中三角形、四边形和较小集群的边界框和可选连接数据

有关更多信息,请参阅 nv_cluster_builder GitHub 存储库。

库:细节级别集群构建器

nv_lod_cluster_builder 是一个连续 LoD 网格库,与传统的离散 LoD 相比,可对网格内的几何细节进行精细控制。我们通过对原始网格进行抽取来仔细预计算三角形,以便在不同的 LoD 级别上无缝地组合这些网格。在渲染时,可以从这些集群中选择一个子集,以便在摄像头导航场景时自适应地提供所需的细节量。

This image shows how nv_lod_cluster_builder could be used to render a brick wall with spatially varying level of detail. Because further-away objects require less detail, the mesh for this wall viewed at a glancing angle uses parts from five different levels of detail, from highest-resolution to lowest-resolution. Each level of detail mesh is constructed from groups of clusters that can be efficiently rendered with NVIDIA RTX Mega Geometry, and can be selected to render without gaps even if level of detail varies across a single object.
图 5.nv_lod_cluster_builder 生成细节无缝的集群化网格

有关更多信息,请参阅 nv_cluster_lod_builder GitHub 存储库。

这些 RTX Mega Geometry 示例是 NVIDIA RTX Kit 的一部分。立即访问 NVIDIA RTX Kit 网站 ,详细了解 RTX Kit 技术。在适用于光线追踪的 NVIDIA Developer Forums 上提出问题、提供反馈并与其他开发者进行讨论

 

标签