Unityシェーダー

Unityシェーダーお絵描き入門 - 円をアニメーションさせる

以前、フラグメントシェーダーで黒い円を描きました。 game-graphics.hatenablog.com 今回は黒い円をアニメーションさせたいと思います。参考記事はこちらです。 docs.google.com まずは黒い円を描くコードのおさらい。 float4 frag_test (v2f_img i) : SV_T…

Unityシェーダー - 四角形を描く

四角形を描きます。 前回のstep関数を応用すればできそう。 float4 frag_test (v2f_img i) : SV_Target{ float d = step(i.uv.x, 0.2) + step (0.8, i.uv.x) + step(i.uv.y, 0.2) + step (0.8, i.uv.y); return d;} 四角形の周囲の領域 (x <= 0.2 || x >= 0.…

Unityシェーダー - 黒い円を描く

シェーダーで下記のような黒い円を描きます。 前回、下記のような画像を作成したので、それを応用して距離が一定の閾値内は黒、それ以上は白にすればできそう。 最初に思いつたコードはこれでしたが、エラーになりました。数字のfloatを表すfはいらないらし…

Unityシェーダー - float4とは?

C#だと見慣れない float4 って何? 調べてみると float4 はベクトル型らしいです。 ベクトル型 (DirectX HLSL) 2 つの部分で構成される単一の名前。1 つめの部分では、スカラー型のいずれかを指定します。2 つ目の部分では、成分の数を指定します。その値は …

Unityシェーダーお絵描き入門 - 中心に向かって色を黒くする

今日はDistanceを使ったお絵描き! docs.google.com 前回のfrag_testの中身をこういう感じに書き換えると float4 frag_test (v2f_img i) : SV_Target { float d = distance(float2(0.5, 0.5), i.uv); return d; } こうなる。 distanceは中心座標(0.5, 0.5)…

Unityシェーダーお絵描き入門 - 板ポリの色を変える

楽しいというワードに魅かれて、これをやってみようかと思います。 docs.google.com 「適当な板ポリを置いてその上に絵を描く」をやってみます。 Quadを作った Mesh Renderer が Default-Material になっているので、 右クリック -> Create -> Material でこ…