【Shader Graph】花の図形を描く
はじめに
Unity の Shader Graph を使って花の図形を描くシェーダーの作り方。
図形を描く方法の基本については 【Shader Graph】図形を描く の記事を参照。
曲線の極方程式
バラ曲線(※正葉曲線ともいう)の極方程式は以下の通り。
Rose Curve -- from Wolfram MathWorld
これを基にして とすると、 枚の花びらを持つ形を描くことができる。
さらに 乗 すると、花びらを細くしたり広くしたりすることができる。
また、 関数だけでなく 関数によって表すこともできる。
の値を変化させた時の様子は、以下の画像のように、Graphtoyを使って可視化すると分かりやすい。
シェーダー作成
環境
- Unity 2020.3.18f1
- Universal Render Pipeline 10.6.0
- Shader Graph 10.6.0
Custom Function
Graph
SubGraph
関数で描画される図形と 関数で描画される図形を切り替えられるように、Keyword ノード を使っている。
Keyword ノードを使うことで、シェーダーバリアント(Shader Variant)を作ることができる。
Keyword | Shader Graph | 10.0.0-preview.27
出力結果
Quadに描画した
参考資料
花びらの曲線の方程式について
花のCG - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社(1-3.極座標)シェーダーバリアントについて
Unity Shader Programming Vol.02(第8章 シェーダバリアントによる複数シェーダの生成) booth.pm