[Unity]床屋のあれ(サインポール)シェーダーを作った

無題
Pocket

最初は真面目に球をカッコよく見せるシェーダを作っていたんですが、だんだん床屋のアレに見えてきたので作っちゃいました。

アレの正式名称は「サインポール」と言うそうです。

 

無題

 

シェーダー全文

 

解説

正剰余を定義しています。

正剰余については、詳しくは過去の記事を参考にして下さい。

 

ローカル座標を使うので、頂点シェーダを使ってピクセルシェーダへ座標を渡します。

 

Surface Shaderでalphatest:_Cutoffを指定しておき、アルファに値を代入することで、ピクセル単位でレンダリングするかを決められます。

サーフェイスシェーダでは、Y軸の回転を調べ、Y軸の座標でツイストさせ、時間で回転させています。

 

表面、裏面の2パスでレンダリングしています。

1パスにすると自動バッチングが働いてしまって座標がおかしくなる現象があるので注意しましょう。

あと、だれかこの現象の解決策を知っていたら教えて下さい。

 

使い方

1) マテリアルを用意します。

無題

無題

無題

無題

 

2) シリンダーにマテリアルをアタッチします。

無題

 

3) 合体!

無題

 

できあがり。

 

おまけ

こちらもどうぞ。

無題

 

▼ コード

 

 

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

(Required)

Proudly powered by WordPress   Premium Style Theme by www.gopiplus.com