Skip to content
第13回 レンダリングパイプライン入門

4 / 4 表示の問題と描画工程の対応 ​

このステップの目的

正常な表示と問題のある表示を比較し、最初に結果が変わる描画工程から原因候補を絞り込みます。

デバッグは最初の違いを探す作業 ​

完成画面だけを見ると、原因になりそうな場所が多すぎます。正常な条件と問題のある条件を一つずつ比較し、最初に結果が変わる段階を探すと、調査範囲を狭められます。

一度に一つだけ条件を変える ​

Material、Camera、Depth、描画順を同時に変えると、どの変更が結果へ影響したか分かりません。比較するときは一つの条件だけを切り替え、他の条件を固定します。

中間結果を確認する ​

Vertex Position、Normal、UV、Depth、Maskなどを色として表示すると、完成色になる前の値を確認できます。画面が黒い場合も、入力が届いていないのか、計算途中で0になったのか、出力先が違うのかを分けられます。

問題を五つの領域へ分ける ​

表示問題を、形状、表面、深度、描画順、画面効果へ分類します。この分類は正解を即座に決めるものではなく、最初に開く道具や確認する値を選ぶための入口です。

形状と表面 ​

輪郭や位置が違う場合は、Mesh、Transform、Vertex Stageを先に確認します。形は正しいが色や模様だけが違う場合は、Material、Texture、Fragment Stageを確認します。

深度と描画順 ​

手前の物体が消える、奥の物体が上に見える場合はDepth TestやDepth Writeを確認します。半透明同士の重なりだけが不自然な場合は、Render Queueや描画順を疑います。Render Queueは、Materialをどの描画グループと順序で処理するかを示す値です。

画面効果 ​

Scene内の個別Materialは正しく、画面全体だけが変化する場合はPost ProcessやFull Screen Effectを確認します。Frame Debuggerで、どのイベント以降に問題が現れるかを探します。

実習:切り替え前後で最初の違いを探す ​

  1. 正常設定の画面とFrame Debuggerのイベント順を記録します。
  2. Frame DebuggerをDisableにし、下の表から設定を一つ選んでInspectorで変更します。変更前の値を控えてください。
  3. 再度Enableにし、正常時と変更後で、最初に結果が変わるイベントを探します。
  4. 問題を五つの領域のいずれかへ分類します。
  5. 入力、中間値、出力のうち、次に確認する値を決めます。
  6. Frame DebuggerをDisableにしてUndoで設定を戻し、Gameビューが最初の表示へ戻ったことを確認します。
切り替え変化の手掛かり次に確認する対象
Directional LightのShadows > Shadow TypeをSoft ShadowsからNo ShadowsへCapsuleなどが床に落とす影が消えるLightの影設定、Shadow Map、影用Pass
Stanford BunnyのMesh Rendererのチェックを外すウサギが消え、Cube・Sphere・床が直接見えるRendererの有効状態、Transparentの描画
Main CameraのRendering > Post Processingのチェックを外す輪郭の色ずれやにじみ、画面全体の色が変わるCameraのPost Processing、Volume Profile、最終合成

Lightの影を無効にしても、表面の陰影やSSAOによる暗さは残る場合があります。Post Processingを無効にしても、Materialの色や照明による明るさは残ります。「暗い部分が残る」「まだ明るい」だけで操作の失敗と判断せず、別の工程による変化も区別してください。

Post Processingを無効にした画面でも、ウサギ越しの床の模様は曲がって見えます。この屈折はウサギのShaderで計算しているため、画面全体に適用する色収差やBloomとは別の処理です。

操作できないとき ​

Inspectorの変更が画面に反映されない場合は、Frame DebuggerをDisableにしたか、対象のGameObjectを選んでいるか、Gameビューを見ているかの順に確認します。イベントの表示名が本文と違う場合は、対象のMaterial、Pass、Render Targetから役割を追ってください。

編集モードで変えたSceneの設定やMaterial Assetの値は、そのまま残ります。Play中でもMaterial Assetの変更は残ることがあるため、各比較の直後にUndoで戻してください。Field PrefabやVolume Profileへ実験の変更を保存しないようにします。

Unity公式:URP Cameraの設定

観察記録を知識へ変える ​

記録には、操作だけでなく判断理由を書きます。「Depth設定を変更した」ではなく、「手前と奥の比較が崩れたためDepth Testを確認した」のように、見えた現象と確認箇所を結びます。

次回以降も、表示がおかしいときは完成Shaderを最初から書き直さず、問題が現れる最初の段階を探します。

チェックリスト
  • 正常条件と問題条件の違いを一つに絞った
  • 最初に結果が変わるDraw Eventを探した
  • 問題を五つの領域のいずれかへ分類した
  • 次に確認する中間値と理由を説明できる
  • 設定を戻して再確認した