ソフトウェアレベルでグラフィックパイプラインを実装しようとしています。現在、クリッピングとカリングに問題があります。
基本的に、2つの主な懸念事項があります。
裏面カリングはいつ行う必要がありますか?目の座標、クリッピング座標、またはウィンドウ座標?多くの後ろ向きの頂点がすでに破棄されているので、この方法でクリッピングプロセスの負担を軽減できると考えて、最初は目の座標でカリングプロセスを作成しました。しかし後で、この方法で頂点が2つの行列乗算を行う必要があることに気付きました。つまり、左乗算モデルビュー行列->カリング->左乗算遠近行列であり、オーバーヘッドがある程度増加します。
三角形をクリッピングして再構築するにはどうすればよいですか?私の知る限り、クリッピングはクリッピング座標(遠近法変換後)で発生します。つまり、x、y、z成分をw成分と比較することにより、すべての頂点を破棄するかどうかを決定する同次座標です。これまでのところ良いですよね?しかし、その後、1つまたは2つの頂点が破棄された三角形を再構築する必要があります。この場合、Liang-Barskyアルゴリズムが役立つとグーグルで検索しましたが、クリッピング座標では、どのクリッピング平面を使用する必要がありますか?クリップされた三角形を記録して、NDCで再構築する必要がありますか?
どんなアイデアも役に立ちます。ありがとう。