打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

2023.08.04 辽宁

关注
为什么使命召唤,最后生还者等游戏需要在第一次进入游戏时编译着色器。而不是直接安装编译好的着色器文件
被浏览
4,131
你可以邀请下面用户,快速获得回答
委托刘看山邀请
开启后为你智能邀请潜在的回答者
秘银法王
TA 已帮助 125 人获得解答
黑梅蒂尔的主场
TA 已帮助 228 人获得解答
艾瑞克
曾在「游戏」话题获得 540 次赞同
Gameplay编程匠
腾讯 移动客户端开发工程师
3 个回答
Italink
X.Y
了解一下PSO缓存:
mike:UE4 PSO缓存
发布于 2023-05-03 00:19
idovelemon
Programmer,Gamer
简单的说,平时我们写的 shader 只是一种资源文件,需要通过硬件自带的 GPU compiler 编译成对应 GPU 的机器码来执行。不同的机器所需要的机器码不同,所以基本都只能让机器自己去编译,无法提前准备好。
一旦机器编译好了之后,就可以缓存下来,以后打开程序的时候就不用再编译了。
不过 steam 似乎有一个功能,会收集所有玩家对应机型的缓存数据,然后你下载的时候可以将这个收集到的数据直接下载下来,省去第一次的编译,不记得是在哪里看到的报告了。
另外苹果公司的 Metal API 最新版本中,已经准备支持将编译好的机器码直接放在资源里面,后面程序跑的时候,不用在编译了。它能这么做是因为 API 和 芯片都是自己造的,其他公司模仿不来。
发布于 2023-05-06 15:37・IP 属地上海
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
执行代码比编译慢,原因竟然是这些数字...
V8 Javascript 引擎设计理念
我也要学汇编语言-第一课:机器语言编程 - dodolook - 博客园
用PerfHUD来调试商业游戏
单片机寻址方式与指令系统
为什么我们需要了解x86机器码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服