しっぽを追いかけて

ぐるぐるしながら考えています

Unity と猫の話題が中心   掲載内容は個人の私見であり、所属組織の見解ではありません

Unity Shader Graph で奇数列分の市松模様を描く

※ これは 2020/08/22 時点の Unity 2020.1.3f1 の情報です

最新版では動作が異なる可能性がありますのでご注意ください

前回 Shader Graph でお手樽に市松模様を描いてみたが、Checkerboard ノードでは、偶数列分の市松模様しか描けない

これを3列とか5列とか奇数列でもできるようにしたい

スポンサードリンク

Checkerboard ノードは使えないので下記のようにする

f:id:matatabi_ux:20200823141135p:plain
奇数列分の市松模様

まずは縦軸が緑色(G)成分、横軸が赤色(R)成分となる UV ノードを入力にする

この UV に横列、縦列の列数を乗算(Multiply)、小数値を切り捨て(Floor)、R と G の値を加算(Add)、2で割った余りを求める(Modulo)という下記の計算式のような加工をするとご覧の通り

明るさ = { Floor ( R x Width ) + Floor ( G x Height ) } Mod 2

※ Width: 横列数、Height: 縦列数

乗算する列数を 5 と 7 に変えてみても完璧

f:id:matatabi_ux:20200823142150p:plain
多列の市松模様

ノードの数は増えたけどこっちの方が柔軟に使えそう

スポンサードリンク