- COPと「カメラ」は同じものですか?次に、画面を見ている「ユーザー」を指すのはどれですか?
- 投影パースペクティブとビューポートの関係があれば、誰か説明してもらえますか? 現時点では、それらは同じものに見えるからです。それとも、PP はビューポートに合わせてスケーリングされるウィンドウですか?
- OpenGL では、gluPerspective を設定するときの zNear 値は、投影パースペクティブからのカメラの距離であるため、fovy と zNear の組み合わせがウィンドウのサイズを定義します (ウィンドウ == 投影パースペクティブであり、私は何かを理解していないと仮定します:/)世界へ。
- ウィンドウを作成するとき (gl と glu のみを使用)、レンダリング機能を持つ while(!quit) ループに入るすべてを初期化した後 (これはちょっとばかげた質問です)、すべての場合にこのレンダリングで描画されますか? glBegin() と glEnd() を持つ関数。多くの機能などを備えた大きな世界があると仮定しましょう。この Render 関数がやがて非常に大きくなる可能性があるように、描画する必要があるすべてのものがこれらの関数の間に収まりますか?
1 に答える
COPと「カメラ」は同じものですか?次に、画面を見ている「ユーザー」を指すのはどれですか?
COP には多くの意味がありますが、「投影の中心」を意味していると思います。アフィン投影の場合、COP は実際に「カメラ」の位置にあります。ただし、OpenGL にはカメラがなく、COP は通常原点にあります。「カメラ」の移動は、カメラを移動する方法とは逆に、世界全体を移動することによって行われます。
投影パースペクティブとビューポートの関係があれば、誰か説明してもらえますか?
Projection Perspective は、カメラに取り付ける「レンズ」のようなものです。また、動作が大きく異なる、まったく異なるプロジェクションを使用することもできます。
ビューポートは、投影境界が「整列」されているウィンドウの部分です。ビューポートが、レンダリングされた画像を配置/スケーリング/ストレッチするウィンドウ/スクリーンの一部であると想像してください (もちろん、レンダリングはビューポートに対して直接行われます)。
現時点では、それらは同じものに見えるからです。または、PP は、ビューポートに合わせてスケーリングされるウィンドウですか?
むしろ後者っぽい。
OpenGL では、gluPerspective を設定するとき、zNear 値は投影パースペクティブからのカメラの距離であるため、fovy と zNear の組み合わせがウィンドウのサイズを定義します (ウィンドウ == 投影パースペクティブであり、私は何かを理解していないと仮定します:/)世界へ。
そうではありません。プロジェクション ボリュームは、いわゆるフラスタム (先端を切り取った 4 面のピラミッド) によって定義されます。先端は原点にあります。つまり、すべてが先端に向かって投影されます。しかし、物事が投影される平面は近い平面です。ニア プレーンは原点からできるだけ遠くに、ファー プレーンはできるだけ近くに配置する必要があることは簡単にわかります。また、両方とも同じ符号でなければなりません。
ウィンドウを作成する場合 (gl と glu のみを使用)、
OpenGL と GLU だけでウィンドウを作成することはできません (GLU は OpenGL の一部ではありません!)。
レンダリング関数を持つ while(!quit) ループに入るすべてを初期化した後 (これは少しばかげた質問です)、すべての場合にすべてが、glBegin() と glEnd() を持つこのレンダリング関数に描画されます。多くの機能などを備えた大きな世界があると仮定しましょう。この Render 関数がやがて非常に大きくなる可能性があるように、描画する必要があるすべてのものがこれらの関数の間に収まりますか?
まあ、OpenGL はシーン グラフではありません。すでに理解したように、これは描画 API です。はい、画面に表示する必要があるものはすべて描画関数に入れる必要があります。ただし、シーンをコードに直接配置することは決してありません。いくつかの抽象データ構造を構築します。これに外部ソースからのデータを入力し、一連のレンダリング関数を用意して、これらの構造を反復処理して何をレンダリングするかを決定し、適切な描画呼び出しを行います。
ところで: イミディエイト モード、つまりglBegin
…glEnd
は、頂点配列を支持して OpenGL-2 以降非推奨になりました。即時モードは使用しないでください。それに関するすべての章とチュートリアルをスキップしてください。