科技魔方

英伟达用Asteroids展示网格着色技术

网络产品

2018年12月20日

  2018年12月20日,英伟达的Asteroids demo展示了在场景中渲染大量复杂的对象时,英伟达图灵GPU架构中内置的网格着色技术将能够显著提高性能和图像质量。以下视频重点介绍了Asteroids demo中的网格着色器功能。

  图灵带来了基于任务和网格着色器的新型可编程几何着色管道。这种全新的着色器类型将计算编程模型的优势带到了图形管道。并非是在固定功能管道中处理每个线程的顶点,新管道主要是利用应用程序定义的规则,并通过协作线程组来在芯片上生成紧凑网格(meshlets)。这种方法极大地提高了几何处理管理的可编程性,实现了高级剔除技术,LOD(Level-of-detail),甚至是完全程序化的拓扑生成。更多信息可访问图灵网格着色器的详细技术介绍。

  通过将对象列表处理的关键性能瓶颈从CPU转到高度并行的GPU网格着色程序,Asteroids可以实现非常高的帧速率。在任何给定时间内,从包含数万亿个潜在可见三角形的极大数据集开始,着色器可以有效地消除永远不可见的图元,并仅着色对显示像素有贡献的图元。

  在demo中,每个单独的小行星模型都由10个LOD组成,最高的level包含多达600万个三角形,如图1所示。即便玩家非常靠近小行星,这种几何细节都能够令小行星保持非常细致的外观。你可以通过切换到线框模式来检查三角形网格。激活“Visualize LOD level”则会根据当前的LOD来绘制每个小行星的颜色,并显示网格着色器是如何在不同的LOD之间实现流畅过渡。最后,你可以关闭动态LOD系统,然后可以选择显示前7个LOD中的任何一个。

  除了动态LOD,网格着色还允许实现智能剔除系统,这大大提高了渲染效率。demo中的剔除是按层次结构进行。

  首先,任务着色器检查整个小行星的可见性。并确定采用哪一个LOD。

  然后,网格着色器将测试sub-parts或meshlets。

  最后,GPU硬件将剔除剩余的三角形。

  在图灵架构出现之前,GPU不得不单独剔除每个三角形,这对GPU和CPU带来了十分繁重的工作负载。

  通过将高效的GPU剔除和LOD技术结合在一起,英伟达将绘制的三角形数量减少了几个数量级,仅保留了维持极高图像保真度所需的数量。你可以在屏幕下角看到实时绘制的三角形计数器。网格着色器可以实现非常有效的,仅针对正在渲染内容的解决方案。

  demo中没有采用曲面细分,而包括数百万个粒子在内的所有对象都利用的Mesh Shading(网格着色)。

  英伟达建议你使用游戏手柄来控制camera,以及太空飞船的移动。demo同时支持鼠标和键盘移动。

+1

来源:yivian

推荐文章