OpenGL/JOGL で、複数のクリッピング プレーンを使用すると、すべてのクリッピング プレーンの結合が適用されたように見えます。私が望むのは、適用されるすべてのクリッピング プレーンの交点です。これは可能ですか?以下の単純化された 2 次元の例を参照してください。
編集: 頂点シェーダーによるクリッピングの例 (以下のコメントを参照)。
を使用してglClipPlane
、いいえ。頂点が少なくとも1 つの平面の正の半空間の外側にある場合、頂点は切り取られます。それが起これば、他の飛行機が何であるかは関係ありません。
gl_ClipDistance
ただし、頂点シェーダーに適切な値を書き込むことで、この効果 (またはほとんどの他の効果) を得ることができます。
書き出す補間値が 0.0 未満の部分 (「負の半空間」) は切り取られ、好きな値を書き込めます。たとえば、点までの距離の 2 乗や 2 つの平面までの距離の合計などですまたはあなたが計算する他のもの。