【知乎】为什么很多游戏在第一次进入时编译着色器? 您所在的位置:网站首页 很多游戏 【知乎】为什么很多游戏在第一次进入时编译着色器?

【知乎】为什么很多游戏在第一次进入时编译着色器?

2024-07-05 21:52| 来源: 网络整理| 查看: 265

为什么很多游戏在第一次进入时编译着色器?

为什么使命召唤,最后生还者等游戏需要在第一次进入游戏时编译着色器。而不是直接安装编译好的着色器文件

关注者

7

被浏览

4,131

关注问题写回答

邀请回答

好问题 1

2 条评论

分享

修改问题

收起 

你可以邀请下面用户,快速获得回答委托刘看山邀请

开启后为你智能邀请潜在的回答者

开启邀请

秘银法王

TA 已帮助 125 人获得解答

邀请回答

黑梅蒂尔的主场

TA 已帮助 228 人获得解答

邀请回答

艾瑞克

曾在「游戏」话题获得 540 次赞同

邀请回答

Gameplay编程匠

腾讯 移动客户端开发工程师

邀请回答

更多推荐结果

3 个回答

默认排序

Italink

X.Y

 关注

了解一下PSO缓存:

mike:UE4 PSO缓存

发布于 2023-05-03 00:19

赞同添加评论

分享

收藏喜欢

idovelemon

Programmer,Gamer

 关注

2 人赞同了该回答

简单的说,平时我们写的 shader 只是一种资源文件,需要通过硬件自带的 GPU compiler 编译成对应 GPU 的机器码来执行。不同的机器所需要的机器码不同,所以基本都只能让机器自己去编译,无法提前准备好。一旦机器编译好了之后,就可以缓存下来,以后打开程序的时候就不用再编译了。

不过 steam 似乎有一个功能,会收集所有玩家对应机型的缓存数据,然后你下载的时候可以将这个收集到的数据直接下载下来,省去第一次的编译,不记得是在哪里看到的报告了。

另外苹果公司的 Metal API 最新版本中,已经准备支持将编译好的机器码直接放在资源里面,后面程序跑的时候,不用在编译了。它能这么做是因为 API 和 芯片都是自己造的,其他公司模仿不来。

发布于 2023-05-06 15:37・IP 属地上海

赞同 2添加评论

分享

收藏喜欢

新生命

 关注

一般是因为这些项目的shader采用了大量的uber(变体)。会动态的根据用户硬件采用不同的shader。

发布于 2023-05-01 10:24



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有