イラスト、モデリング、Unity、VR関連

unityとかblenderとかvr関連の作業メモ

shader billboard

Quadに貼り付けての使用を想定

Shader "Custom/Billboard"{
    Properties{
        _MainTex ("Texture", 2D) = "white" {}
				_Scale("Scale",Range(0.1,1)) = 0.4
    }
    SubShader{
      Tags { "Queue"="Transparent" "RenderType"="Transparent" "DisableBatching"="True" }

      Blend SrcAlpha OneMinusSrcAlpha
		  ZTest always

      Pass{
			      Cull Off
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

            struct v2f{
                float4 pos : SV_POSITION;
                float2 uv : TEXCOORD0;
            };

            sampler2D _MainTex;
            float4 _MainTex_ST;
			      float _Scale;

            v2f vert (appdata_base v){
                v2f o;
				        //+ -で上下を逆転
				        o.pos = mul(UNITY_MATRIX_P, mul(UNITY_MATRIX_MV, float4(0,0,0,1)) + float4(v.vertex.x, v.vertex.y, 0.0, 0.0) * float4(_Scale, _Scale, 1.0, 1.0));
                o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target{
                fixed4 col = tex2D(_MainTex, i.uv);
                return col;
            }
            ENDCG
        }
    }
}