86837


Zbuffer法 ＝ ポリゴンの面を描画画面のピクセル単位で分割し、1px毎に描画優先順位の決定（奥行方向の並び順の決定）を行う処理する。  
という認識をしておりますが、この方法以外でポリゴンの描画優先順位を決定する方法について探してます。

ネットで調べても調べ方が悪いのだと思いますがうまく見つけることができませんでした。

現状、下記条件での優先順位決定処理を考えています。

▼条件

  * １つの面は必ず3頂点（1頂点につきx,y,zの座標を持つ）で構成されている
  * 比較する面同士が片方の面を貫通する＝交差する場合を考慮しない
  * 面をピクセル単位に分割する処理を行わない（できない環境で再現しようとしているため）
  * 面の表裏の判定は考慮しない（前段階までで判定済みとする）

現状思いついた方法として、面の重心座標x,y,zを算出し、その座標とカメラの座標間の距離を比較する方法は考えました。しかしこの場合、カメラ座標を中心に球状の範囲に等距離の重心座標（面）がある場合、優先順位が狂ってしまうなと思ってます。

なので、シンプルに奥行方向の軸（私の場合はZ軸）の位置だけで順位付けする形しかないのかな？と考えています。


CC BY-SA 4.0
2022-03-15T02:08:08.043
86835
2022-03-15T06:33:35.177
51823
question
アルゴリズム 数学
Zbuffer法以外の方法でポリゴンの描画順位を決定する方法


下記ページでいろいろな陰面消去法が簡単に解説されています。

メモリが潤沢ではなかった時代は、メモリが必要なZバッファ法よりもスキャンライン法がよく使われていました。

[様々なレンダリング方式 < レンダリング < 知っておきたい機能 |
Blender入門(2.8版)](https://blender3d.biz/knowledge_rendering_renderingmethods.html)


CC BY-SA 4.0
2022-03-15T02:14:14.033
86837
2022-03-15T06:33:35.177
2022-03-15T06:33:35.177
3060
45045
86835
answer