CGメソッド

CG制作に関してのヒント

MENU

【Unity】シェーダーを両面表示にする方法

f:id:min0124:20160828115925p:plain

Unityで演出作る場合、シェーダーを探すことになることが多いのですが割と手間がかかります。

そろそろ自前でシェーダー書けるようにとは思ってるのですがなかなか。

今回は板ポリを回転させたりする時に、表示を両面にしたい場合に使えます。

やり方

SubShaderのPassの中に、Cull Offのコード一行足すだけでOK。

Transparent_Cutoutシェーダーを両面表示に

Shader "Custom/Transparent_Cutout_DoubleSide" {
Properties {
    _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
    _Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
}

SubShader {
    Tags {"Queue"="AlphaTest" "IgnoreProjector"="True" "RenderType"="TransparentCutout"}
    Pass {
        Cull Off
        Lighting Off
        Alphatest Greater [_Cutoff]
        SetTexture [_MainTex] { combine texture } 
    }
}
}

ちなみに

Cull Backは裏面をカリング(デフォルト)

Cull Frontは表面をカリング

参考

ShaderLabの基礎:Culling & Depth Testingを理解する - Unityな日々(Unity Geek)