質問

ポリラインのネットワークがあり、特定のX-Yボックス内にあるラインのすべての部分を表示したい。現在、GL_LINE_STRIPを使用してOpenGLで線をレンダリングしていますが、うまく機能します。ただし、X-Yボックスの境界が線の1つ(頂点間)を横切る場合、ボックスの内側にある線の一部を表示するだけの良い方法はありますか?

ありがとう、

ジェフ

役に立ちましたか?

解決

ボックスが通常の2次元の軸に沿った長方形の場合、glScissor関数を使用できます。一言で言えば、すべての描画が行われる画面座標の2D長方形を定義します。

ケースがより複雑な場合(たとえば、3Dシーン内の平面に長方形がある場合など)、まず長方形をステンシルバッファーに描画し、ラインレンダリングのステンシルテストを有効にすることができます。このアプローチにより、描画を制限する形状について無限の柔軟性が得られますが、レンダリング中にわずかに遅くなり、セットアップにより多くの労力がかかります。

他のヒント

Nils Pipenbrinckはあなたに最高の2つのオプションを提供したと思いますが、完全を期すために別のものを捨てます:クリッププレーン( glClipPlane())。

とはいえ、 glScissor()は、常にウィンドウに揃えるのであれば、最も簡単なソリューションだと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top