Skip to content

第12回 統合制作

前回: 第11回 品質とパフォーマンス

今回の授業内容

  • 作品で必要なシェーダーの要件を定義する
  • 最小実装、発展実装、品質設定を分ける
  • 中間値の可視化と計測で問題を切り分ける
  • ゲームまたはエフェクトのシーンへ組み込む
  • 実装方法、比較結果、制約を発表する

制作テーマを選ぶ

次の3テーマから1つを選びます。過去回のコードを出発点にし、作品の目的に合わせて再設計します。

水面

  • 波の方向とスケール
  • 深度による色吸収
  • 屈折とフレネル
  • 岸やオブジェクトとの交差泡
  • 作品の世界観に合う色と速度

雲または煙

  • 大きな密度の形
  • FBM とドメインワープ
  • 光側と影側の色
  • ステップ数と内部解像度
  • シーン上のシルエットと移動

SDF オブジェクト

  • 基本形状の集合演算
  • Smooth Min とノイズによる有機的な形
  • 法線、ライティング、ソフトシャドウ
  • 時間による変形
  • ステップ数と描画距離

要件を実装順序に変換する

最初に見た目の希望ではなく、確認可能な条件として書きます。

分類記述例
用途ボスエリアの浅い水場に使う
最低到達水深で浅い色と深い色が切り替わる
発展プレイヤー周辺に泡を追加する
品質60 fps を維持する中品質設定を用意する
制約URP、指定シーン、フルHDで比較する

必須要件を先に実装し、動作確認後に発展機能を追加します。

制作の進め方

  1. テーマ、使用シーン、必要な見た目を決める
  2. 使用する既習技術を3つ以上選ぶ
  3. 最小実装の完成条件を書く
  4. 中間値の可視化モードを用意する
  5. 最小実装を完成させ、スクリーンショットを残す
  6. 発展機能を1つずつ追加する
  7. 低、中、高品質を比較する
  8. ゲームまたはエフェクトのシーンへ組み込む
  9. 組み込み後に再計測する

レビューの観点

ペアまたは教員のレビューで、次の順に確認します。

  1. 要件と見た目が一致しているか
  2. 入力値と中間計算を可視化できるか
  3. HLSL 関数の役割が分かれているか
  4. ループに最大回数と早期終了があるか
  5. 品質設定による差が説明できるか
  6. 作品内で表現が役割を持っているか

成果発表

発表は次の順番で2から3分にまとめます。

  1. どのような作品に使うシェーダーか
  2. 使用した主要な計算は何か
  3. 最小実装から何を改善したか
  4. 低・中・高品質で何が変わるか
  5. 現在残っている制約は何か

実装の結果だけでなく、比較画像と計測値を示します。

完成条件

  • 用途、最低到達、発展、品質、制約が記述されている
  • 後期で学んだ技術を3つ以上統合している
  • 中間値を可視化してデバッグできる
  • 低、中、高品質のいずれかで作品に組み込まれている
  • 比較画像、計測値、実装の制約を発表できる

後期のまとめ

後期は Shader Graph で見ていた計算を HLSL へ移し、ループ、ノイズ、視線レイ、SDF、レイマーチ、ボリューム、水面、レイトレースの原理へ発展しました。

シェーダーの完成は、画面に表示された瞬間ではありません。目的に応じて実装を分け、中間値を確認し、品質と負荷を計測し、作品の中で役割を持たせるところまでがシェーダー設計です。