AlphaTest可以在手機上使用嗎?性能是否很差?
如上圖,項目是在安卓平台,當我選擇了帶AlphaTest的shader的時候就會提示:PerformanceChecks.ShaderWithClipAndroid是提示在安卓上面性能有可能出現問題嘛?如果不能推薦在手機上面使用AlphaTest,那麼如何實現圖中灌木的效果?試過alpha融合,ZWrite On時:
ZWrite Off時:效果都不對。。shader代碼
// Unlit alpha-blended shader.
// - no lighting
// - no lightmap support
// - no per-material colorShader "Mobile/UnlitAlpha" {
Properties {
_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
}SubShader {
Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
LOD 100ZWrite Off
Blend SrcAlpha OneMinusSrcAlphaPass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag#include "UnityCG.cginc"
struct appdata_t {
float4 vertex : POSITION;
float2 texcoord : TEXCOORD0;
};struct v2f {
float4 vertex : SV_POSITION;
half2 texcoord : TEXCOORD0;
};sampler2D _MainTex;
float4 _MainTex_ST;v2f vert (appdata_t v)
{
v2f o;
o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
return o;
}fixed4 frag (v2f i) : SV_Target
{
fixed4 col = tex2D(_MainTex, i.texcoord);
return col;
}
ENDCG
}
}}
都說可以使用融合代替alphaTest,應該怎麼做呢?
是的
對於PowerVR系列而言會影響HSR(隱藏面消除),打斷ISP處理覆蓋同一像素的幾何體(更具體一點,ISP要得到PS執行後的結果才能正確進行HSR,在這一過程中,所有覆蓋了帶有discard操作像素的幾何體全部都要等待)另外對於使用了類似early-z技術的GPU也是類似的影響
用alphablend的方法可能會有排序的問題,但是如果這些物體不是視覺關注點,可以不在乎。另外還有個較為暴力的處理方法:在不太複雜的情況下,把葉子用模型摳出來,用三角形數量換
alphablend和alphatest並不能無條件的相互替換,否則管線只留一個不就結了?移動端用alphablend代替alphatest實際是沒有辦法的辦法,並不是說完全可以做到alphatest的效果http://cdn.imgtec.com/sdk-documentation/PowerVR+Performance+Recommendations.The+Golden+Rules.pdfPowerVR的文檔有詳細解釋,同時說明了Alpha Test為什麼比Alpha Blend慢。
在PowerVR的GPU上性能影響比較大(主要是iOS一家),安卓千奇百怪的配置一言難盡,不過跑Unity總體來說性能普遍不如同時代iOS設備。能用AlphaBlend替換AlphaTest的地方盡量用,儘可能減少帶Alpha的貼圖在屏幕中覆蓋的區域。
這種樹葉,想保證效果是無法簡單用Alpha Blend 替換 Alpha Test的。
某些情況,沒有透明穿插,透明三角形圖元保證從後向前排序。這時可用Alpha Blend替換alphatest, 即簡單把要丟棄的像素alpha設置為0。結論:對於unity這兩個沒啥大的差別,但很多時候你只能選擇AlphaTest, 最好用三角形減少clip掉的區域。
當然兩個與不透明物體比差距還是比較大,能用三角形替換的情況盡量用三角形powerVR 的gpu採用一種Deferred Tile-Based-Rendering策略導致alphatest性能差參考:why the alphablend is a better choice than alphatest to implement transparent on mobile device?
推薦閱讀:
※計算機圖形學發展前景怎麼樣,現在研究領域一般都分哪些?
※如果量子通用機被發明了出來,那麼它會對計算機圖形學的研究產生影響嗎?
※3D 渲染裡邊緣切角效果 (Round Corner) 有什麼好的實現方法?
※圖像生成的整個過程在 OS 內核以及顯卡內的詳細執行流程是什麼樣的?
※數字圖像處理與CG有多大聯繫?與遊戲引擎有多大聯繫?