共计 1763 个字符,预计需要花费 5 分钟才能阅读完成。
1)应用 Sprite Packer 对 UI 图集进行打包的问题
2)Unity 解决视锥剔除的问题
3)Profiler 查看 Shader.CreateGPUProgram 的具体 Shader 信息
4)PPS 的 UberPost 内存占用较高
这是第 270 篇 UWA 技术常识分享的推送。明天咱们持续为大家精选了若干和开发、优化相干的问题,倡议浏览工夫 10 分钟,认真读完必有播种。
UWA 问答社区:answer.uwa4d.com
UWA QQ 群 2:793972859(原群已满员)
UI
Q:应用 Sprite Packer 对 UI 图集进行打包:
1. 应用零碎自带的 Sprite Packer 打包,图集大小设置成 1024,这样打进去的图集会分为好几个 Group,那么雷同图集不同 Group 可能合批吗?
2. 因为 Sprite Packer 是主动调配的 Group,这种状况下关上性能的时候是所有 Group 都会加载的,那么这种设置 1024 是否还有必要,改成 2048 会不会好一点?
3. 图集设置成 2048 变大了,对加载速度和内存有影响吗?这个须要按图集里图片数量多少做不同的设置吗?
A:能够参考以下答案:
- 不同 Group 是不会合批的,个别也没有 UI 图集大小的倡议。
- 最好本人手动管制图集的 Group,在 UI 制作时能够以 UI Prefab 为单位收集一下哪些 Group 的图集是以后 UI 须要应用的,加载 UI 预设时按需加载对应的 Group 就好了。
- 如果图集中的图片资源都用到了,同时图集的填充率也差不多,那加载 1 张 2048 和 4 张 1024,对加载影响可能并不是很显著,内存占用也是一样的,但如果 2048 填充率并没那么高,或者 1024 的会比拟好。
该答复由 UWA 提供
Rendering
Q:最近在钻研场景治理的问题,想理解 Unity 是否有解决视锥剔除,于是做了测试(Unity 2020.3.11f)。创立了两个 Cube,挪动第二个 Cube,比照顶点数量变动。
为什么同样在视锥体范畴内,批次和顶点数会不同?当第二个 Cube 不在视锥范畴内,顶点数也可能不同,那 Unity 是否有视锥剔除,其解决逻辑是怎么样的?
A:应该是灯光绘制 ShaowMap 时候,投影的范畴将那个相机外的 Cube 包进去了,受 Light 的影响,关了 Light 就能够了。
感激范世青 @UWA 问答社区提供了答复
Shader
Q:因为目前我的项目 Shader 挺简单的,变体也十分的多,如果用 ShaderVariantCollection 的形式解析一次耗时太高了,而且如果用 Shader.CreateGPUProgram 耗时很高并且频率也很高,所以就想问下:有没有什么方法能够晓得是哪个 Shader 造成的?这样我才好做策略去解决。
我以前 Unity 2017 是可能晓得哪个 Shader 造成的,在 Profiler 外面能够把 Shader.CreateGPUProgram 持续开展,然而当初 Unity 2018.4.36 不行。
A:Profiler 的 Timeline 视图能够看到。
感激黄晓文 @UWA 问答社区提供了答复
Shader
Q:URP 我的项目,上面这个 Shader 是做什么用的?有没有相干的变体算法和优化倡议,谢谢。
A:UberPost 是一个大杂烩,有好多解决都集中在这里,我的项目确定不必的变体之后,就能够用 #pragma skip_variants xxx 跳过。例如:#pragma skip_variants _TONEMAP_NEUTRAL _DITHERING。
感激怀特 @UWA 问答社区提供了答复
20211011
更多精彩问题等你答复~
- Unity 增量打包 AssetBundle 没变动的资源也会被从新打包
- 在模型有 UV2 的状况下开启 Generate Lightmap UVs
- 如何实现 AAB 包的增量更新
封面图来源于网络
明天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题兴许都只是冰山一角,咱们早已在 UWA 问答网站上筹备了更多的技术话题等你一起来摸索和分享。欢送酷爱提高的你退出,兴许你的办法恰能解他人的当务之急;而他山之“石”,也能攻你之“玉”。
官网:www.uwa4d.com
官网技术博客:blog.uwa4d.com
官网问答社区:answer.uwa4d.com
UWA 学堂:edu.uwa4d.com
官网技术 QQ 群:793972859(原群已满员)