当前位置:网站首页>手机端出现Z-Fighting现象
手机端出现Z-Fighting现象
2022-08-10 22:39:00 【UWATech】
1)手机端出现Z-Fighting现象
2)不使用Scenes In Build的方式加载场景
3)同时打包Vulkan和OpenGLES会使得Shader内存翻倍吗
4)MaterialPropertyBlock修改多材质对象的问题
这是第306篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。
UWA 问答社区:answer.uwa4d.com
UWA QQ群2:793972859(原群已满员)
Rendering
Q:我们的游戏,手机端出现Z-Fighting现象,且不稳定出现。大部分的情况是刚进入大厅场景角色没闪烁,进行战斗一场后切出来容易出现闪烁现象。检查了美术的角色模型,的确有近距离面的问题。
美术提出来的问题是近距离面,尤其不规则面应该拉多远才行,为何在Unity PC端上一直是正常的?
A1:你可以先调整一下近平面和远平面,不要差值太大。
感谢1 9 7 [email protected]问答社区提供了回答
A2:参考以下几点:
1.移动端的深度Buffer精度问题,在PC DX下有usesReversedZBuffer,所以精度Buffer比较均匀,移动端GL稍远一点可能会丢精度,解决方案也是楼上说的调整近平面远平面。
2.如果模型导入器开了Mesh压缩,可以去掉试试。
3.如果是渲染顺序是固定的,可以考虑在Shader中使用Offset做偏移,也可能会好。
感谢范世青@UWA问答社区提供了回答
A3:手机上深度精度低,我们一般设置0.1到3000,就减少大部分闪烁,剩下的还闪的就美术做分离度高一些。
感谢[email protected]问答社区提供了回答
Script
Q:想要动态使用名称来加载场景。所以不使用在Scenes In Build的方式,在真机上是可以使用AssetBundle来加载指定名称的场景,但是编辑器里也想保持相同的加载方式,是否有不使用Scenes In Build的方式加载场景呢?
A:用这个接口就行了:
UnityEditor.SceneManagement.EditorSceneManager.LoadSceneInPlayMode(string path, SceneManagement.LoadSceneParameters parameters);
感谢[email protected]问答社区提供了回答
AssetBundle
Q:同时打包Vulkan和OpenGLES会使得Shader内存翻倍吗?
A:不会。试了一下对于同一个Shader资源,上图设置里只保留一种图形API和两种都有时的区别,和只有一种API时相比,保留两种图形API,会使打包时这个Shader的变体翻倍,从而使包体大小上升。但运行时该Shader的内存却不会因此翻倍。
感谢[email protected]问答社区提供了回答
Rendering
Q:MaterialPropertyBlock对SkinnedMesh上多材质球的其中一个修改会影响所有的材质球,请问如何解决?
A:对于这个情况我在Unity 2018.4、2019.4、2020.3和2021.1这四个较新稳定版本尝试复现,发现2018.4、2019.4和2020.3中都出现了楼主说的情况,直到2021.1版本中才能正常修改。因此推测为Bug,但去Unity的Release Note中搜索了一番,目前没看到相关的修复条目。
又试了一下MaterialPropertyBlock对一般MeshRenderer的多材质球的情况,在上述这些版本中都是可以只修改一个并只影响该材质球的,说明该Bug只存在于SkinnedMeshRenderer。
所以如果确实有分别修改SkinnedMeshRenderer的多材质球的需求,在不适宜通过升级Unity版本来解决该问题的前提下,为了优先实现功能的话,目前建议对于SkinnedMeshRenderer改为对材质本身进行操作(类似于material.SetColor),尽管这样确实会产生更多材质实例。
感谢[email protected]问答社区提供了回答
封面图来源于网络
今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。
官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859(原群已满员)
边栏推荐
- 【uniapp】uniapp微信小程序开发:启动微信开发者工具提示no such file or directory错误
- BM7 list entry in central
- 浅谈jsfuck编码
- Pro-test is effective | A method to deal with missing features of risk control data
- y93.第六章 微服务、服务网格及Envoy实战 -- Envoy配置(四)
- 配电网络扩展规划:考虑使用概率性能源生产和消费概况的决策(Matlab代码实现)
- geemap的详细安装步骤及环境配置
- CFdiv2-Common Number-(奇偶数二分+规律)
- 艺术与科技的狂欢,阿那亚2022砂之盒沉浸艺术季
- 自学软件测试不知道该如何学起,【软件测试技能图谱|自学测试路线图】
猜你喜欢

高学历毕业生,该学单片机还是plc?

二叉树 | 迭代遍历 | leecode刷题笔记

MySQL学习笔记(2)——简单操作

威纶通触摸屏如何在报警的同时,显示出异常数据的当前值?

leetcode:357. 统计各位数字都不同的数字个数

Pro-test is effective | A method to deal with missing features of risk control data

【640. 求解方程】

Power system power flow calculation (Newton-Raphson method, Gauss-Seidel method, fast decoupling method) (Matlab code implementation)

MySQL: MySQL Cluster - Principle and Configuration of Master-Slave Replication

PyQt5 窗口自适应大小
随机推荐
分享一个后台管理系统可拖拽式组件的设计思路
BM13判断一个链表是否为回文结构
Addition of linked lists (2)
web项目访问引用jar内部的静态资源
虎牙自动发弹幕换牌子
确诊了!是Druid1.1.20的锅,查询无法映射LocalDateTime类型(带源码解析及解决方案)
艺术与科技的狂欢,阿那亚2022砂之盒沉浸艺术季
mysql中的三大日志
【640. Solving Equations】
【MySQL】mysql因为字符集导致left join出现Using join buffer (Block Nested Loop)
gcc492 compile `.rodata‘ can not be used when making a PIE object; recompile with -fPIE
如何利用fiddler连接手机抓包APP
MySQL之JDBC编程增删改查
IFIT的架构与功能
Leave a message with a prize | OpenBMB x Tsinghua University NLP: The update of the large model open class is complete!
二叉树 | 迭代遍历 | leecode刷题笔记
【秋招】【更新中ing】手撕代码系列
HanLP词性表
常用代码扩展点设计方式
浅谈cors
