Board logo

标题: [新闻] 巨硬推出mesh shader取代Vertex shader [打印本页]

作者: u571    时间: 2019-11-2 09:09     标题: 巨硬推出mesh shader取代Vertex shader

[attach]1098530[/attach]

https://devblogs.microsoft.com/d ... irectx-12-features/

其实连几何和细分曲面也一起取代了,mesh shader相比传统Vertex shader一个最大优势就是以前我们说的延迟渲染指的是像素,现在连多边形都能“延迟”渲染

mesh shader可以实现场景内顶点多边形先“剔除”不可见顶点,再进行shader计算,完美实现没有任何无效渲染多边形,powerVR独门绝技在TBDR搭载了mesh shader技术的GPU面前就是一坨屎

相信未来次世代主机和游戏如果灵活使用这个技术可以大大提升光线追踪以及传统光栅化渲染效率

[ 本帖最后由 u571 于 2019-11-2 09:11 编辑 ]
作者: Lunamos    时间: 2019-11-2 09:13

VS本来就不是瓶颈,而且所谓mesh shader运行效率不可能跟VS一样。最多就是省去了一点几何上的优化,谈不上大大提高。
作者: u571    时间: 2019-11-2 09:19

引用:
原帖由 Lunamos 于 2019-11-2 09:13 发表
VS本来就不是瓶颈,而且所谓mesh shader运行效率不可能跟VS一样。最多就是省去了一点几何上的优化,谈不上大大提高。
VS本来就不是瓶颈的原因是目前游戏机版本游戏基本都没用细分曲面,每帧撑死了上千万多边形当然不是瓶颈,但是你要大量使用细分曲面和几何着色之后

每帧2亿以上多边形你看看VS会不会是瓶颈,没有mesh shader来剔除无效渲染60帧就是120亿多边形,难不成PS5/XB2游戏多边形数量还维持在PS4/X1水平水平不变?
作者: Lunamos    时间: 2019-11-2 09:29

引用:
原帖由 u571 于 2019-11-2 09:19 发表



VS本来就不是瓶颈的原因是目前游戏机版本游戏基本都没用细分曲面,每帧撑死了上千万多边形当然不是瓶颈,但是你要大量使用细分曲面和几何着色之后

每帧2亿以上多边形你看看VS会不会是瓶颈,没有mesh shader ...
该干的事一样都不少,用的都是GPU的SM资源,效率怎么大大提升。无论是哪种culling都是要计算的,他就是给你挪到一个框里去了。

另外光追是不cull的,cull了几何还追什么,追到黑洞里去了。
作者: 卖哥    时间: 2019-11-2 09:31

基本上可以确定是下一代xbox的核心设计了。
作者: u571    时间: 2019-11-2 09:51

引用:
原帖由 Lunamos 于 2019-11-2 09:29 发表


该干的事一样都不少,用的都是GPU的SM资源,效率怎么大大提升。无论是哪种culling都是要计算的,他就是给你挪到一个框里去了。

另外光追是不cull的,cull了几何还追什么,追到黑洞里去了。
DXR跑光追首先就是建立BVH树,又不用一个个跑多边形碰撞计算,当然不用cull,问题是跑完光追后面的shader计算过程不剔除无效多边形对于SM资源极大浪费(按照农企自己PPT,一个上亿多边形场景里被遮挡的占到80%)

尤其是对于本身GPU计算资源就少的游戏主机来说,巨硬做这个重大改变不是没有原因
作者: Nigel    时间: 2019-11-2 09:54

引用:
原帖由 u571 于 2019-11-2 09:19 发表



VS本来就不是瓶颈的原因是目前游戏机版本游戏基本都没用细分曲面,每帧撑死了上千万多边形当然不是瓶颈,但是你要大量使用细分曲面和几何着色之后

每帧2亿以上多边形你看看VS会不会是瓶颈,没有mesh shader ...
无效多边形大量出现到影响帧率程度了,也就没必要做更细的几何细节了:因为做了也看不出提升。
另外,这和TBDR两回事,取代不了TBDR。手机芯片也不需要这种东西,因为还没强到大量出现多边形过多过细的问题。
作者: u571    时间: 2019-11-2 10:02

引用:
原帖由 Nigel 于 2019-11-2 09:54 发表


无效多边形大量出现到影响帧率程度了,也就没必要做更细的几何细节了:因为做了也看不出提升。
另外,这和TBDR两回事,取代不了TBDR。手机芯片也不需要这种东西,因为还没强到大量出现多边形过多过细的问题。
不做更精细的几何细节那么次世代游戏画面效果如何提升?贴图做的再好那也就是一张2D图,跟用顶点做出的几何效果完全没法比

更何况有了完善GPU剔除无效多边形技术,游戏厂商可以用一套高模就够了,无需再多做多套模型LOD,可以明显减轻开发压力和成本
作者: Nigel    时间: 2019-11-2 10:07

引用:
原帖由 u571 于 2019-11-2 10:02 发表



不做更精细的几何细节那么次世代游戏画面效果如何提升?贴图做的再好那也就是一张2D图,跟用顶点做出的几何效果完全没法比

更何况有了完善GPU剔除无效多边形技术,游戏厂商可以用一套高模就够了,无需再多做 ...
三角形已经小到比像素还小得多了,再堆更多更细的上去效果能有毛提升,唯一能有的提升就只有镜头拉近微距观察时。把资源省下来用来提升FPS才是正事。
作者: mjnaur    时间: 2019-11-2 11:45

这东西IHV大概至少17年开始就做了。AMD的叫做NGG,从Vega开始支持(但是不给用,呵呵)。NV的叫啥忘了。
就是把传统pipeline那么多shader stage给合并一下。因为不同的shader stage之间切换是有代价的。
合并的规则也都一样,就是TCS和TCS之前的合并成一个,TES到光栅化之前合并一个。
作者: mjnaur    时间: 2019-11-2 11:48

引用:
原帖由 u571 于 2019-11-2 09:19 发表



VS本来就不是瓶颈的原因是目前游戏机版本游戏基本都没用细分曲面,每帧撑死了上千万多边形当然不是瓶颈,但是你要大量使用细分曲面和几何着色之后

每帧2亿以上多边形你看看VS会不会是瓶颈,没有mesh shader ...
仔细看pipeline,曲面细分是用TES和TCS(DX就是HS和DS)算的,在VS之后。所以就算开了曲面细分,对VS也没啥影响
作者: xueada    时间: 2019-11-2 11:54

posted by wap, platform: Android
引用:
原帖由 @卖哥  于 2019-11-2 09:31 发表
基本上可以确定是下一代xbox的核心设计了。
log运算都不会人又来点评GPU算法了,你看得懂吗?
作者: mjnaur    时间: 2019-11-2 11:57

像那种VS成为瓶颈的例子也是有的,只是在游戏领域很少。大多数是workstation软件,比如AutoCAD这种。NGG,或者说这种mesh shader用处有限。IA和VS合并能做一些加速但是很有限。
现在的一个改进思路是用DispatchDraw来做,什么意思呢,就是用computer shader来完成culling, clipping, PA这种本来用fixed pipeline来完成的工作。因为shader有更高的并行能力和IO吞吐能力。我记得PS4好像就用了这种设计
作者: u571    时间: 2019-11-2 11:58

引用:
原帖由 Nigel 于 2019-11-2 10:07 发表


三角形已经小到比像素还小得多了,再堆更多更细的上去效果能有毛提升,唯一能有的提升就只有镜头拉近微距观察时。把资源省下来用来提升FPS才是正事。
之所以出现这种情况就是因为游戏机基本不用细分曲面,本身细分曲面就有LOD,如果几何细节都用细分曲面来做根本很难出现三角形比像素还小的情况
作者: evil84    时间: 2019-11-2 12:17

posted by wap, platform: VIVO
引用:
原帖由 @mjnaur  于 2019-11-2 11:48 发表
仔细看pipeline,曲面细分是用TES和TCS(DX就是HS和DS)算的,在VS之后。所以就算开了曲面细分,对VS也没啥影响
开了细分,vs基本就是原样输出,vs的功能ds来做了吧。
作者: mjnaur    时间: 2019-11-2 12:28

引用:
原帖由 evil84 于 2019-11-2 12:17 发表
posted by wap, platform: VIVO
开了细分,vs基本就是原样输出,vs的功能ds来做了吧。
vs还是原样输出。没有细分的情况下,vs输出的顶点属性是扔给光栅化器或GS,现在扔给了DS来产生新的顶点。新的顶点是根据VS传进来的顶点,以及DS,HS设置的参数来生成,其属性值是根据VS输出顶点的属性值插值插出来的。
因此,VS的功能不变,DS有自己的功能。如果说替代,也是有的,就是DS代替VS,来负责将数据传给pipeline的下一个阶段(GS或者光栅化器)
作者: u571    时间: 2019-11-2 12:31

引用:
原帖由 mjnaur 于 2019-11-2 11:48 发表


仔细看pipeline,曲面细分是用TES和TCS(DX就是HS和DS)算的,在VS之后。所以就算开了曲面细分,对VS也没啥影响
更确切的说,现在面临的问题是raster之前的几何处理性能平衡和不足问题,细分曲面在VS之后就造成一个问题,即是不在渲染帧中出现的三角形一样被镶嵌(类似于孤岛危机2那个几百万多边形的看不到的地下河)

这也是游戏机到目前为止基本和细分曲面绝缘的关键因素之一,开细分曲面对现在GPU来说尤其是几何性能较差的GCN来说性能影响很大,就算RDNA提升了几何性能但要想在游戏机上普及细分曲面,mesh shader这种技术必然要用到
作者: mjnaur    时间: 2019-11-2 12:41

引用:
原帖由 u571 于 2019-11-2 12:31 发表



更确切的说,现在面临的问题是raster之前的几何处理性能平衡和不足问题,细分曲面在VS之后就造成一个问题,即是不在渲染帧中出现的三角形一样被镶嵌(类似于孤岛危机2那个几百万多边形的看不到的地下河)

这 ...
几百万多边形的看不到的地下河这种东西绝对是不会往GPU里灌的,游戏引擎都优化好了的,他们有软件裁剪算法。可能不是特别精细,但是干掉99%看不到的三角形绝对是做得到的。

另外,NGG或是mesh shader的性能我们老早就测过了,也就那样吧

[ 本帖最后由 mjnaur 于 2019-11-2 12:43 编辑 ]
作者: samusialan    时间: 2019-11-2 12:44

不懂
现在的延迟渲染不是尽量转换到最终接近2d图像时再进行渲染以避免浪费吗(尤其是对比孤岛危机1那种浪费程度),本质上也是剔除不可见多边形的影响吧?
手机上powervr那类TBDR我一直以为是另一个概念,本质目的是为了节省带宽,隐面消除是副产品,所以才有强弱区别,缺点也正是多边形数量有限制
作者: Nigel    时间: 2019-11-2 14:21

引用:
原帖由 mjnaur 于 2019-11-2 11:57 发表
像那种VS成为瓶颈的例子也是有的,只是在游戏领域很少。大多数是workstation软件,比如AutoCAD这种。NGG,或者说这种mesh shader用处有限。IA和VS合并能做一些加速但是很有限。
你说的这种瓶颈叫primitive rate瓶颈,不叫VS瓶颈
作者: Nigel    时间: 2019-11-2 14:29

引用:
原帖由 u571 于 2019-11-2 11:58 发表



之所以出现这种情况就是因为游戏机基本不用细分曲面,本身细分曲面就有LOD,如果几何细节都用细分曲面来做根本很难出现三角形比像素还小的情况
细分曲面当然是好东西,但应用起来麻烦多。首先建模就不一样,以后还有个大麻烦是和光追不兼容,用了光追就没法曲面,无解问题。




欢迎光临 TGFC Lifestyle (http://tgfcer.com/) Powered by Discuz! 6.0.0