饂飩コーディング

iOSアプリやら、Unityやら、Cocos2dやらごにょごにょ書いております

Shaderで透明部分を抜いたり、動きを持たせたりする

f:id:appdeappuappu:20181203215314p:plain
透明抜きパターン

↓まずは実行結果↓こちらをクリック
Unity WebGL Player | Learn_Shader


テクスチャーの画像ファイルに透明化部分を作成して、その部分を抜くようにShaderで実現する
3パターンを考えて見ました。



左(青) "Queue"="AlphaTest" パターン
PNGファイルで透明部分を作成して使うことができますが、Unityでは古い方法なので推奨はされていません。



中(赤) Vertex Shader でClipするパターン
フラグメンテーション処理部分で、透明化されている部分をClip関数で抜く方法。
Unityでは現在この方法がよく使われていると思われる。



右(緑) "Queue" = "Transparent" パターン
Photoshop等でアルファマスクを作成してそのアルファマスクを使って抜く場合はこちらでOK



右下の蝶はVertex ShaderでPanelを動かして、羽を羽ばたかせてそこにテクスチャーをつけています。
ParticleSystemにこのShaderを使って飛ばして見ました。

Vertex Shader Butterfly