0

left と bottom を両方とも 0 に設定するglviewportと、負の頂点が表示されるのはなぜですか?

例えばglviewport(0,0, width,height)

これは、X と Y がゼロ以上の場合にのみビューを設定していることを意味します。しかしもちろん、それは実際に起こることではないので、この呼び出しがどの座標系を作成しているのか正確にはわかりません。

4

1 に答える 1

2

glViewport()正規化された座標、別名クリップ空間 (つまり、視錐台が x/y で -1 から 1 の場所) からスクリーン (ピクセル) 座標への変換を定義することによって、描画されるウィンドウの領域を定義します。これは単なる 2D 変換であり、3D パイプラインの結果をラスター化できるものにスケーリングおよびオフセットします。それを変更しても、表示されるものは変更されませんが、表示される場所だけが変更されます。

射影行列 (以前に適用された他の変換と組み合わせて) は、ポイントが最初にクリッピング スペースに変換される方法を定義し、世界のどの部分が実際に表示されるかを決定します。

したがって、射影行列がビュー錐台内にあるように負の座標を持つポイントを変換する場合、ビューポートが適用されたときにそれらは引き続き表示されます。

于 2012-12-29T10:22:09.280 に答える