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(原群已满员)