unity, imageEffect在android上不顯示的問題


使用imageEffect做了個景深特效,原理很簡單,就是一張清晰大圖和一張模糊小圖根據z值進行混合,z值小的像素清晰大圖的比例高一些,z值大的像素模糊小圖的比例高一些。

在pc上是ok的,但打出android包安到android手機上景深特效就沒了。

后來折騰了半天,並請教了一些有經驗的人,終於搞好了:

1,在pc上和在android上通過render to texture渲染出來的depthTex正倒立情況是不同的,在pc上渲染出來的depthTex是倒立的,在android上渲染出來的depthTex是倒立的。所以shader里訪問depthTex的代碼應該這樣寫:

#if UNITY_UV_STARTS_AT_TOP
     float texcoord_y=1-i.texcoord.y;
    #else
     float texcoord_y=i.texcoord.y;
    #endif
    float depth=tex2D(_depthTex,float2(i.texcoord.x,texcoord_y)).r;

2,android的playersetting里Auto Graphics API后面的勾去掉,Graphics APIs改成只留OpenGLES2,(同時留OpenGLES2和OpenGLES3行不行我沒試)。

3,另外我還把unity從5.2.1升級到了5.2.4,這一步有沒有作用我現在不確定。

總之,使用以上三步,在android上后處理特效正常了。

----補充:

另外在調試android的時候,如果好點兒的android機和奇葩的android機同時出現了問題,建議先用好點兒的android機進行調試,在好點兒的android機上沒問題了再試奇葩android機,這樣避免奇葩手機問題太多而造成不好查找問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM