iOS包ShaderVariantCollection预热慢问题

1)iOS包ShaderVariantCollection预热慢问题
2)使用SBP打Bundle如何读取AssetBundleManifest
3)如何将一张贴图经过Shader处理后的结果输出给另外一个Shader使用
4)为什么我的水这么干净,和UE教程里的有差别


这是第392篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

Rendering

Q:ShaderVariantCollection变体集合,大概400个变体数据,ShaderVariantCollection.WarmUp(),卡顿大概40秒。单个Shader变体编译需要100ms,拆分为多个SVC,分段预热后,单个Shader编译时间基本没变化,总耗时基本无差别。

同样的包,Andorid就算低端机型,预热总时间也不会超过10s。

预热Unity也没有提供异步方法,只有同步,现在不管在哪个阶段去预热都会有超长的空置卡顿时间。

有没有人遇到过?是不是iOS需要设置什么?

A:是iOS的问题,iOS的第一次要生成Metal的Shader,这里不管中高端基本上都差不多耗时,最好是自己找时机分段预热,不要放在首场景。

感谢司马老师@UWA问答社区提供了回答


AssetBundle

Q:升级到2019之后,使用BuildPipeline.BuildAssetBundles方法打Bundle变得很慢。我们发现Unity新推出的Scriptable Build Pipeline有更快的打包速度(1个小时降为15分钟),但是作为兼容之前AssetBundleManifest的新类型CompatibilityAssetbundleManifest并没有被打成Bundle,而是一个Yaml格式的文件:

想请教一下,这里是如何处理的,或者说资源的依赖关系是如何存储的。

(PS:没用Addressable,因为是线上运行项目,资源的路径都配在了Excel里,需要改的地方太多。)

A:可以从Result中获取依赖信息,自定义保存依赖列表:

复制代码
`public static ReturnCode BuildAssetBundles(IBundleBuildParameters parameters, IBundleBuildContent content, out IBundleBuildResults result, IList<IBuildTask> taskList, params IContextObject[] contextObjects)
`

感谢啊哩啵啵@UWA问答社区提供了回答


Rendering

Q:如何将一张贴图经过Shader处理后的结果输出给另外一个Shader使用?例如有一张贴图A,经过Shader A处理后加了个外描边,想把这个含有外描边的结果输出成Texture给另外一个Shader B使用,可以这样操作吗?

A:可参考下述方法:

1:内置管线使用GrabPass,只需要一个Shader和一个Mesh Pass1加外描边,Pass2 Grabpass抓屏,Pass3使用抓屏纹理。

2:后处理Blit方式,需要创建一个RT,另一个Shader直接使用这张RT。

感谢hxwaa@UWA问答社区提供了回答


Rendering

Q:图一是UE教程的水,图二是我的水,为什么我的水这么干净,是什么功能没打开嘛?

A:我不确定哪里是水,大概猜一下,你的"水面"的"脏"的东西是环境反射,因为"反射"效果过于出现大范围Pattern化的内容,所以是法线图的Tiling。你应该调整Tiling, 让Tiling数值更小一些,同时调整法线强度,或者直接删了。

感谢Renderman@UWA问答社区提供了回答

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com

相关推荐
健了个平_2413 小时前
iOS 27 适配笔记
ios·xcode·wwdc
Tr2e14 小时前
🐱 从 0 到 1:用 Swift 手搓一个 macOS 桌面宠物(附源码)
macos·ios·swift
iOS开发上架哦16 小时前
Jenkins 自动上传 IPA 到 App Store 把发布步骤融入 CI/CD
后端·ios
ZJPRENO17 小时前
2026 苹果 WWDC 完整总结
ios
REDcker18 小时前
WWDC2026系统更新综述
macos·ios·开发者·apple·wwdc·ipados·wwdc2026
星星电灯猴20 小时前
全面解决Charles抓取HTTPS请求响应中文乱码问题的方法与技巧
后端·ios
人月神话-Lee20 小时前
【WWDC】Core AI:iOS 端侧大模型新纪元
人工智能·ios·ai·swift·wwdc·core ai
2501_9160074721 小时前
iOS 开发工具选择指南 从编辑器、编译器到自动化构建
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
库奇噜啦呼1 天前
【iOS】源码学习-YYModel源码学习
学习·ios·cocoa
风华圆舞1 天前
一个 Flutter 项目同时保留 Android、iOS、HarmonyOS 支持的实践
android·flutter·ios