原文地址:http://blog.csdn.net/yanchezuo/article/details/77337755

4年前遇到的花屏问题,如今又遇到了。这次通过不断的测试、重现、修改、反思,终于得出了最终原因和最终答案!

  • 你的界面花屏了?
    去检查一下,你游戏中的相机clearFlag的设置,是不是没有clearFlag设置为SolidColor或者SkyBox的相机?
    解决方案:

    一定要有一个clearFlag设置为SolidColor或者SkyBox的相机,并且这个相机的depth为你所有相机中depth的最小值(保证这相机先渲染)

  • 原理
    Unity每个渲染帧的开始,并不会清空颜色缓冲区和深度缓冲区,是通过设置相机的clearFlag来起作用的,具体如下:

    ClearFlag 颜色缓冲区 深度缓冲区
    SkyBox 改变,设置为skyBox的颜色 不改变
    SolidColor 改变,设置为BackGround颜色 不改变
    DepthOnly 不改变 改变,清空深度缓冲

    因此,如果场景中没有一个改变颜色缓冲区的相机,在渲染的初始帧,颜色缓冲区会保留上一帧的结果。

    在此,给一种出现花屏的现象的实例:
    场景中有两个相机,设置分别为:

    相机 clearFlag depth Culling Mask
    gameCam depthOnly -1 GameScene
    uiCame depthOnly 1 UI

渲染顺序为:
颜色缓冲上一帧残留(A) -> 当前渲染帧开始 -> gameCame 渲染,修改颜色缓冲区 (B)-> uiCam渲染,修改颜色缓冲© -> 显示到屏幕上.
最终渲染的是A+B+C

  • 拓展:花屏和卡帧

    当然,如果在切换界面的时候,不卡帧,其实也不会出现花屏的现象。这一条先占上坑,改天详细说明。

  • 拓展:花屏和多线程渲染

    在我的测试中,如果开启了多线程渲染,一卡帧,很容易就出现花屏。相反,不开启多线程渲染,基本上是不会有花屏现象的。特别是开了垂直同步之后,cpu会等待gup渲染结束再进行下一帧的计算。
    ps.Unity3d垂直同步有个坑,和帧率相关
    垂直同步QualitySettings.vSyncCount的设置,值可以为0,1,2。

    vSyncCount 是否等待GPU渲染完成 游戏帧率
    0 不影响帧率设置
    1 是,一个缓冲buffer 影响,强制60fps
    2 是,2个缓冲buffer 影响,强制30fps
  • 拓展:花屏和GL.Clear()

GL.Clear()当然是可以清除颜色缓冲的。不过,由于不知道卡几帧,每帧都设置GL.Clear()也是挺奇怪的。
所以,在切换界面的时候调用一次GL.Clear()不能完全解决花屏的问题。
GL.Clear()是使用,参见:
http://blog.csdn.net/yanchezuo/article/details/12751917

Unity3d花屏处理相关推荐

  1. 相机录像出现花屏_[Unity3D]花屏问题解决

    "多年前遇到的花屏问题,通过不断的测试.重现.修改.反思,终于得出了最终原因和最终答案!" 你的屏幕花了? 去检查一下,你游戏中的相机clearFlag的设置,是不是没有clear ...

  2. Unity花屏解决方案

    Unity花屏解决方案 前言 花屏原因 解决方案 一.GL.Clear() 二.UI相机采用Solid color模式 三.不让游戏出现完全没界面的空窗期 结语 前言 上次在项目中,遇到了一次andr ...

  3. unity3d老电视花屏闪烁效果

    找到一般都是全屏的闪烁效果 于是就移植了一个shader可以用到模型上的 另外添加了一些控制参数 做了个小场景试试效果,如下图 Shader "Custom/Screen" {Pr ...

  4. 随笔:说说第一次在android中嵌入非全屏显示的unity游戏时的坑之——界面切换时出现延迟/卡顿/花屏等现象解决方法

    One 最近对接了个unity3D做的小游戏到android项目中:游戏嵌入项目的界面且非全屏显示,项目几经波折,到我手上的时候,已经采用了在同一个activity中用两个View来分别显示andro ...

  5. Windows10下安装unbuntu双系统 以及花屏解决办法

    文章目录 Windows10下安装unbuntu双系统 1 创建未分配卷,为ubuntu系统提供空间 2 制作ubuntu启动u盘 下载ubuntu 下载Universal-USB-Installer ...

  6. PPStream、PPlive等播放器花屏之解决办法

    PPStream.PPlive等播放器花屏之解决办法 解决方法1:打开"Windows Meida Player"播放器,找到"工具"->"选项 ...

  7. Android 布局错乱 Android花屏

    最近做项目,妈的,有个一个很难受的bug. 这个bug ,自己这里没有手机,没有办法复现,找到了手机之后.解决了. 我先给大家看下什么叫布局错乱,花屏: 来张正常的图片: 正常情况下是这样的.然后, ...

  8. 服务器上装centos系统花屏,CentOS系统如何解决鼠标花屏的问题

    因为有次在安装CentOS系统后,突然出现了花屏的现象,还有,就是鼠标也不能用管理.所以,我找了很多关于这个问题的资料,也找到了很多解决这个问题的办法,但是很多的方法不知道什么原因都不是很完整,或是根 ...

  9. LCD显示异常分析——开机闪现花屏【转】

    转自LCD显示异常分析--开机闪现花屏 最近在工作中,有同事遇到LCD开机瞬间会闪现雪花屏的问题,而这类问题都有个共同点,那就是都发生在带GRAM的屏上,同样的问题,在休眠唤醒时也会出现. 其实这类问 ...

最新文章

  1. 【错误记录】Android Studio 的 Flutter 代码界面没有 Logcat 面板
  2. airtest自动化测试_自动化测试必备实用工具,帮你提高工作效率|Gitee项目推荐...
  3. 故障模块名称kernelbase.dll_故障码都看不懂,你还修啥车?
  4. 算法简介、7种算法分类
  5. java雪崩_【并发编程】java 如何解决redis缓存穿透、缓存雪崩(高性能示例代码)...
  6. IE、Chrome、Firefox 三大浏览器对比
  7. ORA-00923: 未找到要求的 FROM 关键字
  8. Linux下虚拟打印机CUPS-PDF教程
  9. opencv python 灰度化,opencv-python 图像灰度化
  10. 计算机无法识别银行usb是,电脑不能识别USB设备(加密设备、网银U盾等)的解决方法...
  11. 老徐和阿珍的故事:CAP是什么?超级爱放P吗?
  12. 漫画 | Linux 内核,简直太形象了!
  13. 卡贴机变无锁教程_如何让“有锁”iPhone变“无锁”?“有锁”iPhone变“无锁”设置教程...
  14. Centos ansible部署,启动服务失败
  15. 百度站长平台"添加站点"提示"您无权访问该页面,点击确定按钮返回首页?"
  16. C语言大学期末考试重点,快点码住,再也不用担心挂科啦
  17. 2021玉林芳草中学高考成绩查询,「分数线」2020年成都玉林中学招生录取分数线...
  18. 10-赵志勇机器学习-meanshift
  19. java 遍历阿斯克吗_java学习笔记
  20. php查询友情链接,php实现首页链接查询 友情链接检查的代码

热门文章

  1. uniapp简单生成海报
  2. destoon功能模块
  3. 多通道网络KVM切换器集中管控系统
  4. Oracle显示中文出现问号(乱码)????
  5. 唱一曲归来未晚,歌一调湖海茫茫
  6. 电商巨头将被“肢解”?独立站私域电商的时代即将到来!
  7. 狼性创业:普通人创业失败最核心的根源是什么?
  8. WiFi抓包指南(cisco WUSB600N V2)
  9. 木偶然-2015.12.1
  10. java动态代理和反射