小さなソフトウェアレンダラーを実装して、プログラム可能なレンダリングパイプラインを学習しています。私はそれを「ハードウェア」スタイルで実装しようとしています。しかし、私はGPUパイプラインに慣れておらず、均一クリッピングの問題がいくつかありました。
同種のクリッピングスペースには、各頂点でさまざまなw変数が含まれます。各頂点オブジェクトの同種座標(射影行列とwによる同種除算の間)は、独自のクリッピング空間にありますか?もしそうなら、どのようにラインと三角形をFrustumよりも近く、またはカメラの後ろに伸ばすかをクリップする方法(つまり、w <= frustum_znear)?
更新:このスレッドは、同種空間でのクリッピングは4D同種空間での交差問題に直接つながると述べています。つまり、交点はp_vec4 = t * point1_vec4 + (1 - t) * point2_vec4
です。言う私はP0(-70, -70, 118, 120)
とP1(-32, -99, -13, -11)
して4D均質な空間で、交点plane w = -z
(NDCにおけるZ = -1である)である(-35, -96, -1, 0.9) t = 0.99
NDC空間においてcorrresponding頂点オブジェクトを取得する方法、?
そして、正しい交点を取得したら、頂点シェーダーによって生成された頂点オブジェクト間の補間を行って、新しい頂点オブジェクトを取得する必要がありますか?