読者です 読者をやめる 読者になる 読者になる

CGメソッド

CG制作に関してのヒント

MENU

【Unity】加算とアルファブレンド モバイルシェーダーとの比較

Unity Unity-Effect

follow us in feedly

通常とモバイルのシェーダーの違いが気になったので比較してみました。

ビルドシェーダーからコードをダウンロード(4.x系)
Unity - Download Archive

違い

76行 ↔ 25行

コードが減っているだけで、基本的にアルファのアニメーション使うときは通常のシェーダーで良さそうです。 (そこまでパフォーマンスの大きな差はでないそう)

ちなみに通常版から、TintColor付きのモバイルになるようにコードを削除したのですが、断念しました。

unitech.hatenablog.com

加算とアルファブレンドの違い

基本的に、1行だけ変更すれば良さそうです。

<コードの違い>
Blend SrcAlpha One
Cull Off Lighting Off ZWrite Off Fog { Color (0,0,0,0) }(通常版のみ)

Blend SrcAlpha OneMinusSrcAlpha
Cull Off Lighting Off ZWrite Off(通常版のみ)

代用

TintColor付きのモバイルシェーダーはこちらのシェーダー(行数:68)で代用してみることにしました。

https://gist.github.com/keijiro/b91fd4c1a711a0fd3295/revisions

<Alpha Blendedに変更する>
下記のコードを差し替え

Blend SrcAlpha One → Blend SrcAlpha OneMinusSrcAlpha に変更

<4.xで使うには>
下記のコードをコメントアウト

UNITY_FOG_COORDS(1)
UNITY_TRANSFER_FOG(o, o.vertex);
UNITY_APPLY_FOG_COLOR(i.fogCoord, col, (fixed4)0);