T.TAO
ブログへ戻る
/2 min read/Technical Art

Unity Shader #4 UV 上での図形描画

#Unity#Shader#TechnicalArt
Unity Shader #4 UV 上での図形描画

Unity Shader #4 図形描画

この記事では、UVを使って簡単な図形を描画する基本的なシェーダー演習を行います。主に擬似コードを使用するため、通常のShaderLabファイルではコンパイルできない場合があります。具体的な関数はUnityのドキュメントを参照してください。

基本関数

よく使う3つの基本関数、step(edge, n)、smoothstep(min, max, n)、lerp(a, b, delta)を理解します。これらはシェーダーで大量に使うため、習得が重要です。

Step

step(edge, n)は、edge <= nのとき1、edge > nのとき0を返します。鋭いエッジが得られます。

Smoothstep

smoothstep(min, max, n)は、n ∈ [min, max]を[0,1]にリマップし、それ以外のnは0と1にクランプします。シェーダーで滑らかなエッジが欲しいときによく使います。

Lerp

lerp(A, B, delta)は線形補間(Linear Interpolation)を行います。deltaは計算におけるBの重みと考えることができます。

円を描く

UV上で円を考えると、原点(0,0)からの距離が半径より小さい点は円内、大きい点は円外です。length(x,y)とstepを使って円内かどうかを判定し、円内なら円の色、そうでなければ黒で着色します。

このシリーズの記事

Unity Shader
  1. 01Unity Shader #0 数学の基礎
  2. 02Unity Shader #1 レンダーパイプライン
  3. 03Unity Shader #2 コードの基礎
  4. 04Unity Shader #2.1 基本コマンド
  5. 05Unity Shader #3 URP へのアップグレード
  6. 06Unity Shader #4 UV 上での図形描画
  7. 07Unity Shader #5 リムライト
  8. 08Unity Shader #6 スキャンとホログラム
  9. 09Unity Shader #7 アニメトゥーンシェーダー
  10. 10Unity Shader #8 ディゾルブ
  11. 11Unity Shader #9 レンズの雨滴
  12. 12Unity Shader #13 ポストプロセス
  13. 13URP #1 Universal Lit と URP ShaderLab