当nvidia推出geforcertx40系列gpu所基于的adalovelace架构时,我们了解到许多新功能,例如dlss3、着色器执行重新排序(ser)、置换微网格(dmm)和不透明度微贴图(天哪)。
当然,dlss3从一开始就是明星。它的采用率比dlss2快得多,已经支持29款游戏。ser也在游戏中慢慢获得支持,例如sackboy:abigadventure和即将推出的cyberpunk2077:rtoverdrivemode技术预览。不过,其他的还没有被我们所知道的任何第三方开发商实施。
(资料图片)
在gdc和gtc之间,nvidia正试图通过专门展示这些技术来改变这种状况。在本文中,我们特别关注不透明度微贴图,旨在在光线照射到不规则物体时加快光线追踪性能。
在rtx混音“门户”演讲中,nvidia的杰出开发技术工程师alexeypanteleev谈到了在portalrtx中使用不透明度微地图,他发现考虑到粒子数量和它们之间的空白空间,这特别有用。
不透明度微贴图应该有助于像这样的场景,其中场景中有很多粒子并且粒子上有很多空白空间。
空白空间的问题是你有一个包含空白空间的大型广告牌,但它也包含非空白区域,所以每当gpu中的光线追踪硬件击中这个广告牌时,它不知道这个命中是否有用或不,所以它会将命中返回给着色器。并且着色器必须加载纹理以确定此命中是否真的有用。如果它只是空白空间,则命中将返回到光线追踪硬件以继续寻找有用的表面,这显然是次优的。
所以,我们可以重新处理粒子的不透明度纹理,并在这里构建一个所谓的不透明度微贴图,这有点类似于blas,然后我们可以将该不透明度微贴图绑定到几何体上,让光线追踪硬件决定在将命中返回给着色器之前判断命中是否有用。
正如您在底部图片中看到的那样,不透明度微贴图可以显着减少着色器与光线的交互次数,因为这些粒子中有很多空白空间,这使得g-buffer在此过程中的传递速度提高了近40%案件。
在另一场关于压缩微网格入门的演讲中,nvidia的高级杰出工程师henrymoreton展示了即使在完全不同的场景中,opacitymicromaps也可以显着提高性能。
我们有光线追踪支持将不透明度与微三角形相关联。这可以将一个简单的三角形变成一片叶子。该功能与alpha纹理非常相似,但与alpha纹理不同的是,rtcore可以原生支持不透明度微贴图,无需访问纹理或着色器调用即可剔除对象的复杂区域。
在这里,我们使用几个三角形和不透明度微图对叶簇进行建模。我们得到的图像质量相当于alpha纹理叶子,光线追踪性能有很大提高。在此场景中,我们测得性能提高了1.5倍,因为rtcore可以在不调用任何着色器代码的情况下完全解决光线三角形拦截问题。
对实现此功能感兴趣的游戏开发人员可以查看github上提供的opacitymicromapssdk。在omm和最近发布的displacementmicro-map工具包之间,更不用说shaderexecutionreordering,对于光线追踪密集型游戏来说可能会有很大的收获。随着路径追踪变得越来越可行,开发人员将需要他们可以获得的所有帮助来针对新的图形时代进行优化。