» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 20 12
发新话题
打印

不懂就问,着色器是什么玩意儿,怎么那么多游戏都需要加载?

posted by wap, platform: iPhone
以前的游戏最多只要读取完就能玩,现在的游戏好像从dx12开始,都需要加载着色器
为什么以前不需要,现在变成了必需品?而且很费时间的样子,有的游戏还没次都得加载,真的很影响游戏体验的。


TOP

posted by wap, platform: GOOGLE Nexus 4
shader,就是所有运行在GPU上进行图形计算的程序

需要预编译着色器是因为现代游戏图形部分复杂,很多游戏shader变体数量众多,没有办法运行时需要使用时再编译

具体数量取决于游戏引擎shader系统设计,而DX12/VK这类的现代API因为有PSO这个设计,会进一步放大这个问题,尤其是vulkan,pso涵盖范围很广,改一点图形api状态信息就要重新生成pso,shader变体多的游戏pso cache体级会非常大

本帖最后由 ginaamix 于 2023-4-2 00:22 通过手机版编辑



TOP

posted by wap, platform: Firefox
以前一般是不预编译的。
当然现在确实量更大了,还实时编译会间歇性的卡顿。


TOP

posted by wap, platform: Samsung
Compile shader 用于游戏材质表现
主机游戏硬件稳定都编译好的,PC游戏显卡种类多,就现编译了。

TOP

以前固定管线,GPU无法运行自定义的代码,只能通过配置选项实现简单的效果,为了实现更复杂的视觉效果后来开放了编程能力,所谓的GPU代码就是shader。

TOP

posted by wap, platform: Android
那为啥ps5等游戏机上不用什么着色器?

TOP

引用:
原帖由 鱼丸 于 2023-4-2 21:46 发表
posted by wap, platform: Android
那为啥ps5等游戏机上不用什么着色器?
这话问的,都是完全一样的硬件配置,预先都把着色器内置在游戏里了啊

TOP

posted by wap, platform: Samsung
模拟器好像都要编译,但也没美末pc版这么慢啊

TOP

为什么蜘蛛侠不需要着色器,美末又需要呢?

TOP

posted by wap, platform: iPhone
发现顽皮狗画面那么好的黑科技
原来是着色器

233

TOP

posted by wap, platform: Chrome
现在连模拟器都玩这东西 滤镜一加 四代酷睿连个SFC模拟都跑不动

TOP

posted by wap, platform: iPhone
就是渲染画面的,显卡上运行的程序,也就是通常说的shader,以前不用是因为画面相对没那么复杂。
现在shader效果越来越复杂,3d管线也越来越偏底层,其实还有个重要的原因,就是以前shader是不支持代码的分支逻辑的,现在几乎都支持了,但是显卡的硬件架构决定了本身是不可能实现分支,那解决办法就是两个,一个是双倍的算力,把分支都计算一遍最后取正确的结果,另外一种就是在渲染前,把一些预定义的分支判断下条件,实时编译(也就是通常说的变体),就是你看到的编译着色器

TOP

shader变体不是为解决shader内分支问题的,那个粒度太粗了(预编译期发生的)。
解决shader内分支的性能,还是要从降低branch divergence方面入手,尽量让一个wave同一个分支,其实在有了compute shader后这个还是比之前容易解决。
PC上的shader需要现编译是因为这样可以由驱动针对硬件提供优化,这个打从将近20年前DX9时期,HLSL渐成主流时就是这样了。编译时间太长,那就是数量太多太复杂,或许还有bug了呗。

[ 本帖最后由 hourousha 于 2023-4-2 23:30 编辑 ]

TOP

posted by wap, platform: Android
引用:
原帖由 @红叶  于 2023-4-2 22:24 发表
现在连模拟器都玩这东西 滤镜一加 四代酷睿连个SFC模拟都跑不动
深有体会,开个3d shader跑ps模拟器不到5帧

TOP

posted by wap, platform: iPhone
喷了 感觉就是完全可以后台弄好的东西放前台恶心用户

TOP

 20 12
发新话题
     
官方公众号及微博