Skip to content

シェーダー基礎 後期 ​

この授業は ​

前期は、Shader Graphを使って色、UV、法線、照明などの原理を学びました。後期は、それらの値が描画処理のどこから届き、どこで計算されるかを確認しながら、HLSLと表現の応用へ進みます。

第14回では、テクスチャの表示と簡易的なランバート照明が動くHLSLコードを受け取り、頂点位置・UV・法線から画素の色までをたどります。前期に学んだ処理を一から作り直すのではなく、コードの一箇所を変えて結果を確かめます。

Unity 6.6とURPを使用します。各回は、必要な前提を短く確認してから進めます。ほかの科目の受講や、前の回の課題の完成を、参加の必須条件にはしません。

授業計画 ​

全12回の授業計画を示します。第16〜21回の個別ページは再編前の内容から改訂中のため、この一覧では詳細ページへリンクしていません。第14回にはリンゴ、第24回には草原の表示サンプルがあります。配布プロジェクトの公開状況は配布ファイルで確認してください。

回内容学習の中心
13レンダリングパイプライン入門受講者は、描画順序と画面を構成する処理を観察します。
14HLSLによるテクスチャと簡易照明受講者は、完成コードのUV・法線・色の経路を読み、一箇所ずつ変更して結果を説明します。
15TriPlanar での自然物描画受講者は、位置からUV座標を作り、地形や岩塊へ共通の基準でテクスチャーを貼ります。
16複数回のサンプリングとループ受講者は、ブラーを例に、参照範囲・反復回数・負荷を区別します。
17Height MapによるParallaxとDisplacement受講者は、参照座標をずらす方法と頂点を動かす方法を比較します。
18深度の読み取りと交差表現受講者は、深度を同じ基準へそろえ、接触部分のMaskへ利用します。
19Ray Marchingの基礎受講者は、距離関数と反復処理を使い、視線上の表面と終了理由を求めます。
20SDFの形状合成と空間反復受講者は、距離関数の組み合わせと反復による形状の変化を確認します。
21Ray Marchingの法線と反射受講者は、探索した表面の向きと反射を使い、見た目と計算量を比較します。
22ボリュームの積算とゴッドレイ受講者は、視線に沿って空間内の寄与を積み重ねます。
23GPU負荷・品質調整・ライトベイク受講者は、実行時の負荷を測り、画質と事前計算の関係を比較します。
24草原の大量描画とGPU Instancing受講者は、草株で共有するMesh・Materialと個体ごとの配置を区別し、描画負荷を比較します。

学習の進め方 ​

各回の概要ページは、その回のゴールとポイントを示します。続くステップページは、目的、原理の解説、具体的な操作、確認事項を順に示します。

  • 受講者は、まず中心となる処理を確認します。
  • 受講者は、主要な値を一つずつ変更し、変化を説明します。
  • 余裕のある受講者は、発展的な処理や別の活用例へ進みます。

第14回は動作するHLSLコードを開始点とし、UVによるテクスチャ参照と法線による明暗を別々に変更します。第15〜18回は位置・法線・UV・深度の使い方を広げ、第19〜21回はRay Marchingを探索、形状、質感の順で扱います。第22回は空間内の積算へ進み、第23・24回で品質と負荷を比較します。

到達目標 ​

  • 受講者は、頂点データから画素の色までの流れを説明できます。
  • 受講者は、Shader GraphとHLSLの同等の計算を対応付けられます。
  • 受講者は、中間値を色へ置き換えて表示の問題を切り分けられます。
  • 受講者は、複数回のサンプリング、深度、距離関数を表現に使えます。
  • 受講者は、画質とGPU負荷を踏まえて処理を選べます。