1

コンピュータグラフィックスのパイプラインに関する質問があります。OpenGLではどのようにビューポートの変更が行われますか? (glViewport)

OpenGLでは、通常、reshapeコールバックでglViewport関数を使用します。 glViewportがビューポート変換に関連していると聞きました。

頂点シェーダでは、通常、頂点を計算し、これらの頂点をクリッピング座標(正規化されたクリッピングキューブ)で定義します。

ビューポート変換はいつ行われますか?

頂点シェーダが頂点情報をラスタライザに出力するかどうかは、パイプラインがこれらの頂点情報を変換するかどうかです。

x(v)=(x + 1)/ 2 *幅+左 y(v)=(y + 1)/ 2 * height + bottom。 (ビューポート変換)

したがって、glViewportは、頂点シェーダの作業を終了した後にビューポート変換を行う方法を設定したと考えました。

それは正しいですか?

答えて

1

は、OpenGLでは、我々は通常ありません、 "私たちは" ないリシェイプコールバック

にglViewport関数を使用します。ディスプレイ機能にはglViewportが属します。

したがって、glViewportは、頂点シェーダの作業を終了した後、ビューポート変換をどのように行うかを設定したと考えました。

はい、そうです。本質的に、ビューポートは、頂点変換ステップのパラメータを含む均一なものとあまり変わらない別の変数です。しかし、変換の最後のステップ以来、均質な除算とクリッピングは固定配線されており、ビューポート変換はの後に発生します。以降は、個別に設定する必要があります。

関連する問題