顯示不全,到個人Github: https://github.com/garsonlab/RenderTuxture-AlphaBlendphp
解決Unity粒子在使用AlphaBlend模式時,在攝像機拍攝渲染RenderTexture時與相機背景融合問題git
原 UGUI研究院之在UI上使用RenderTexture顯示模型+AlphaBlend特效(二十五)
有一個解決方案,可是實測效果很是很是不理想,位置對不上,尤爲是當模型和特效須要顯示在一個透明背景上時,幾乎是無解的。github
故,另闢蹊徑,參考AnimationToPNG
設計思路:spa
Blend SrcAlpha OneMinusSrcAlpha // Traditional transparency設計
顏色混合方程式:C = Cs*scrA + Cd*(1-srcA) //式1 //若是,在相機渲染時,分別設置相機的背景爲 Cd=(0,0,0,1) 和 Cd=(1,1,1,1) //就能夠獲得兩個C,分別爲Cblack, Cwhite, 即: Cblack = Cs*srcA + (0,0,0)*(1-srcA) = Cs*srcA //式2 Cwhite = Cs*srcA + (1,1,1)*(1-srcA) = Cblack + (1,1,1)*(1-srcA) //式3 //即: Cwhite.r = Cblack.r + (1-srcA) //式4 srcA = 1 - (Cwhite.r-Cblack.r) //式5 //此處求得原Alpha, 帶入上 //式2 Cs = Cblack/srcA
以上便可完整獲得完整的渲染圖,避免重現對位置,單對不一樣的混合就又尷尬了,須要從新計算3d
附上一個自動建立RenderTexture的腳本:GRender,需配合GRenderShader一塊兒使用code
以及原代碼 AnimationToPNGget