[[cg:start|CG用語集トップ]] > [[cg:rendering:start|第3章 レンダリング]] ====== Zバッファ法 ====== ===== 概要 ===== Zバッファ法は、画素ごとに奥行き値を記録し、手前にある面だけを残す隠面消去の方法である。描こうとしている面の奥行きと、すでに記録されている奥行きを比較して表示を決める。 {{:cg:figures:chapter03:fig_3_6_z_buffer_memory.png?600|Zバッファ法に必要なメモリ領域}} {{:cg:figures:chapter03:fig_3_7_z_buffer_process.png?600|Zバッファ法の描画過程}} ===== 詳しい説明 ===== Zバッファ法では、画面の各画素に対応する奥行き値を[[cg:rendering:frame_buffer|フレームバッファ]]とは別の領域に記録する。新しいポリゴンを描くとき、その画素位置での奥行き値を調べ、現在記録されている値よりも手前にある場合だけ色を書き込み、Zバッファも更新する。奥にある場合は描かない。この方法では、ポリゴンをどの順番で処理しても、画素ごとに最も手前の面を残しやすい。[[cg:rendering:depth_sort_algorithm|奥行きソート法]]のようにポリゴン全体の描画順を決める方法とは考え方が違う。 ===== CG制作との関係 ===== CG制作では直接操作する用語ではないが、3Dモデルの前後関係が自然に表示される基礎になっている。面が重なっている場面でも、手前にある面だけが見えるのは、このような奥行き管理があるためである。 ===== ゲーム開発との関係 ===== ゲーム開発では、Zバッファ法はリアルタイム3D描画の基本である。不透明な3Dオブジェクトの描画では、Zバッファにより前後関係を自動的に解決できる。透明物体では別途描画順の注意が必要になる。 ===== 制作・実装での例 ===== DirectXなどの描画では、深度バッファとして実装される。深度テストを有効にすると、奥にあるピクセルは描画されず、手前にあるピクセルだけが残る。 ===== 検定対策ポイント ===== Zバッファ法は、画素ごとに奥行きを比較する方法である。[[cg:rendering:frame_buffer|フレームバッファ]]が色を保持するのに対し、Zバッファは奥行きを保持する点を区別する。 ===== 関連用語 ===== * [[cg:rendering:frame_buffer|フレームバッファ]] * [[cg:rendering:hidden_surface_removal_visible_surface_determination|隠面消去]] * [[cg:rendering:rasterization|ラスタ化]] * [[cg:rendering:z_buffer_algorithm|Zバッファ法]] * [[cg:rendering:depth_sort_algorithm|奥行きソート法]] ===== タグ ===== * CGエンジニア検定 * 第3章 ---- [[cg:rendering:start|← 第3章 レンダリング の目次に戻る]] [[cg:start|← CG用語集トップに戻る]]