IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> unity升级版本后华为手机特效问题 -> 正文阅读

[游戏开发]unity升级版本后华为手机特效问题

最近参与的一个旧项目由5.5升级到了2020,遇到了一些问题,主要是特效的,稍微记录一下。
一、材质球丢失问题
这个很经典,就不讲了,找美术重新拖一下就行。
二、场景变暗了
这个查了下网上说是因为unity渲染大改了,在不同版本渲染会有差异,然后找美术重新渲染一个有问题的试了下,确实没问题了,所以找美术重新渲染就可以了。
三、特效变形问题
版本升级后有一部分特效变形了,在编辑器模式可以看到是特效的缩放出问题了,修复也没什么,让美术重新调一下就行,主要是花时间查为什么在5.5没问题,在2020有问题,在网上一顿查找没找到原因,后来把出问题的特效列了一下,发现出问题的特效原本的缩放都不是1,也就是说缩放不是1的特效升级到2020后会变形,估计原因也是unity底层渲染改了,里面的一些计算放式变了导致的,另外还有个小坑,升级后原先的UI裁剪失效了,原因是unity自带的shader命名变了,导致挂载了裁剪脚本的特效无法根据名字替换。
四、华为手机特效问题
写这篇东西主要就是为了记录这个问题,新打的包在华为手机跑的时候流光特效会有显示问题,主要表现为流光为锯齿状,而且时间越久特效看上去越离谱,首先反应就是精度有问题,一上网查果然如此。然后马上按文章说的通关宏增加精度和把纹理声明为高精度纹理:

#pragma fragmentoption ARB_precision_hint_nicest
sampler2D_float _CameraDepthTexture;

打包重新看,发现没效果,心想不会吧,阿sir,我看到好几篇文章里有人用这个方法解决问题了,没想到到我这不行,继续查,接着把原先声明为half精度的一些变量改为float,再试,还是不行,这下有点懵逼了,网友们的增加精度方式都试过了都不行,难道不是精度问题?后来一位群友告诉我可能是time的问题,说time越来越大会导致精度丢失,我查了下,time的问题也比较经典,时间越长特效越慢,不过我这个好像也有可能,因为时间久了那些特效显示会越来越离谱,先试试再说,改完后再看,还是没效果,更懵逼了,毫无头绪,没办法,准备下载renderdoc抓帧debug看看了。
第二天忘了因为什么原因,有个同事说打包要改的shader在xx文件夹,我他妈直接晕了,没人跟我说过,因为项目的资源是从UIproject软链过去的,所以我一直在UIproject里改。难怪没效果,这下好了,赶紧跑去那个目录改一下,这下还不搞定?然后一顿操作,打包,最后还不行。
那就只能下renderdoc来看了,在网上找了些教程学习怎么使用renderdoc后我就开始了,手机运行游戏抓帧后我发现没法像在电脑里一样单步debug,只能看数据,通过看fragshader发现数据没什么异常在这里插入图片描述
然后再看meshview,发现texcoord0看上去有点奇怪,莫非是这个原因?
在这里插入图片描述
所以我又找了一台正常的手机抓帧来看,发现正常的手机也会有这种数据,只是看上去好像没那么多,然后再继续对比,发现华为手机的glposition好像变化比较大,然后看了下shader代码position是fix精度的,难道这个也有影响吗?之前看的文章说华为手机不能用half,所以一直没改这个。因为frag的数据看上去没什么异常,mesh的数据只有这点差异比较大,那只能改下这个试试了。最后这个修改是对的,打包后就可以了。
事情还没完,打包后原先大部分有问题的特效都可以了,但挂了这个特效的模型会闪,去看了下,是因为会闪的特效混合了这个流光shader和其他shader,其他shader原先的精度也有问题,让测试弄了个超级号给我,把混合了的其他特效全部改了一下,至此特效问题就全部解决了。
因为之前的项目是自研引擎,这种问题一般有引擎部的人去看,我已经很久没研究这类问题了,所以解决了这种问题还挺开心的,顺手也算会用renderdoc debug了,之前也用过GPA抓过其他游戏,但那时不会看信息,现在的游戏特效这么炫,好像不会抓帧会显得自己不够高级。
最后,希望对遇到问题的人有帮助吧。
参考

记一个Adreno平台下GPU精度造成的问题
结合Bug,聊一下用RenderDoc进行安卓手机联调(二)
华为手机关于LOAD_TEXTURE2D的Bug
unity shader - GPU 不支持过高的精度运算导致 黑色噪点
关于Mali GPU的浮点数异常
华为手机Shader出错水面呈条纹状解决方案(深水坑)
渲染逆向工程:打造一台调试任意Android游戏的设备
renderdoc调试总结
记unity3d下shadowmap实现影子的路程

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-07-07 21:21:27  更:2021-07-07 21:21:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/8 18:29:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码