日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2024/9/15 编程问答 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 相机录像出现花屏_[Unity3D]花屏问题解决 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

“多年前遇到的花屏問題,通過不斷的測試、重現(xiàn)、修改、反思,終于得出了最終原因和最終答案!”

  • 你的屏幕花了?

去檢查一下,你游戲中的相機(jī)clearFlag的設(shè)置,是不是沒有clearFlag設(shè)置為SolidColor或者SkyBox的相機(jī)?

解決方案:

一定要有一個(gè)clearFlag設(shè)置為SolidColor或者SkyBox的相機(jī),并且這個(gè)相機(jī)的depth為你所有相機(jī)中depth的最小值(保證這相機(jī)先渲染)
  • 原理

Unity每個(gè)渲染幀的開始,并不會清空顏色緩沖區(qū)和深度緩沖區(qū),是通過設(shè)置相機(jī)的clearFlag來起作用的,具體如下:

因此,如果場景中沒有一個(gè)改變顏色緩沖區(qū)的相機(jī),在渲染的初始幀,顏色緩沖區(qū)會保留上一幀的結(jié)果。
在此,給一種出現(xiàn)花屏的現(xiàn)象的實(shí)例: 場景中有兩個(gè)相機(jī),設(shè)置分別為:

渲染順序?yàn)?#xff1a; 顏色緩沖上一幀殘留(A) -> 當(dāng)前渲染幀開始 -> gameCame 渲染,修改顏色緩沖區(qū) (B)-> uiCam渲染,修改顏色緩沖(C) -> 顯示到屏幕上. 最終渲染的是A+B+C

  • 拓展:花屏和卡幀
    當(dāng)然,如果在切換界面的時(shí)候,不卡幀,其實(shí)也不會出現(xiàn)花屏的現(xiàn)象。這一條先占上坑,改天詳細(xì)說明。
  • 拓展:花屏和多線程渲染
    在我的測試中,如果開啟了多線程渲染,一卡幀,很容易就出現(xiàn)花屏。相反,不開啟多線程渲染,基本上是不會有花屏現(xiàn)象的。特別是開了垂直同步之后,cpu會等待gup渲染結(jié)束再進(jìn)行下一幀的計(jì)算。
    ps.Unity3d垂直同步有個(gè)坑,和幀率相關(guān) 垂直同步QualitySettings.vSyncCount的設(shè)置,值可以為0,1,2。

  • 拓展:花屏和GL.Clear()
GL.Clear()當(dāng)然是可以清除顏色緩沖的。不過,由于不知道卡幾幀,每幀都設(shè)置GL.Clear()也是挺奇怪的。 所以,在切換界面的時(shí)候調(diào)用一次GL.Clear()不能完全解決花屏的問題。 GL.Clear()是使用,參見:http://blog.csdn.net/yanchezuo/article/details/12751917

總結(jié)

以上是生活随笔為你收集整理的相机录像出现花屏_[Unity3D]花屏问题解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。