Shader 勉強メモ 「定義済値と組み込み関数」
前回まででシェーダーの扱いがなんとなくわかってきたので、次のサンプルをやる前に少し遊びます。 UnityのシェーダーはHLSLの組み込み関数を利用でき、Unity独自の定義済みの値も使えます。
これらを使って、グニャーと変形させるシェーダーを作りました。前回のものに二行加えただけです。
グニャ〜と変形するユタティーポット pic.twitter.com/zAuzoKrHLL
— miyamo (@DMiyamo3) 2017年3月8日
Shader "Tutorial/DisplayNormalTransform" { SubShader { Pass{ CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct v2f { float4 pos : SV_POSITION; fixed3 color : COLOR0; }; v2f vert(appdata_base v) { v2f o; v.vertex.x *= 1 + pow(sin(_CosTime*v.vertex.y), 2); // 追加 v.vertex.z *= 1 + pow(sin(_CosTime*v.vertex.y), 2); // 追加 o.pos = UnityObjectToClipPos(v.vertex); o.color = v.normal * 0.5 + 0.5; return o; } fixed4 frag(v2f i) : SV_Target{ return fixed4(i.color,1); } ENDCG } } }