問題タブ [glulookat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
7213 参照

opengl - OpenGL gluLookAt() が意図したとおりに機能しない

私は OpenGL のスカイボックス内にジェットコースターを作成していますが、その機能やコンピューター グラフィックスに関するバックグラウンドがあまりないため、非常に難しいことがわかりました。Catmull-Rom スプライン補間を使用してジェットコースターを描き、glVertex3f で各点を描きました。update()ここで、50 ミリ秒ごとに関数を呼び出して、カメラをトラック上で移動させたいと考えています。gluLookAt()画面からトラックを削除したり、黒い画面を生成したりするなど、奇妙な結果が生成されます。マトリックス関数のいくつかを移動する必要があると思いますが、それぞれをどこに配置すればよいかわかりません。これまでの私のコードは次のとおりです。

アイデアはallpoints、スプラインの制御点と補間点を含むグローバル両端キューを保持しているということです。それが完了したら、update()50 ミリ秒ごとに呼び出し、 の各ポイントに沿ってカメラを移動しallpointsます。プロジェクトの以前のバージョンでは、ジェットコースターが正しく描かれていることがわかりました。それはgluLookAt()、私が望むように機能していないようです。上記のコードでは、プログラムはジェットコースターの一部があるスカイボックスの片側をカメラが見ている状態で開始し、update()が呼び出されると、ジェットコースターは消えますが、カメラは動きません。OpenGL マトリックス関数を配置する場所をいじっていますが、場所によってupdate()は空白の画面が表示されることもあります。

0 投票する
1 に答える
359 参照

c++ - gluLookAtの不連続性

これは、視線ベクトルとアップベクトルを計算する方法です。

傾きはxz平面からの視線ベクトルの角度であり、方位角はxz平面での角度です。

これは私の傾きが225度に達するまでうまくいきます。その時点で、何らかの理由で回転に不連続性があります。(注225度とは、逆さまのポイントを過ぎたことを意味します)

これがなぜそうなのかについてのアイデアはありますか?

編集:気にしないで、それを理解しました。方位角は180度を必要としません。上向きのベクトルを傾けます。

0 投票する
1 に答える
3244 参照

opengl - gluLookat()を使用したOpenGL

gluLookAt()のサポートが必要です。glOrtho()を呼び出した後(これは正しいと思います)、y軸のわずかに高いビューからz軸のビューを作成するために使用しようとしています。gluLookAt()について私が理解していることから、最初の3つのパラメーターはビューの元または「目」であり、次の3つは目が見ている場所であり、最後の3つは画角ですか。

私は多くの異なる設定を試しましたが、画面に何もレンダリングできず、すべての試行で空白の黒い画面が表示されました。私はその使用法の実際の例全体をウェブで検索しましたが、関数の説明しか見つかりませんでした(私は理解していると思いますが、動作することはできません)。

試した方法が多すぎるため、試したコードを投稿するつもりはありません。今ではコードがめちゃくちゃになっていて、率直に言って誰も作りたくないのです。目が出血します。

私の質問は、誰かがgluLookAt()を使用する小さなプログラムの例を投稿または説明することができますか?

これが私が現在持っているひどいコードです(それはテスト用です):

0 投票する
1 に答える
398 参照

c++ - どうすればスポットライトを作ることができますか

街灯を描く必要がありますが、それは環境全体を照らしているので、スポットライトのように見せることはできませんでした。以下のコードは私が試したものです

0 投票する
3 に答える
6116 参照

opengl - GL_PROJECTION マトリックスまたは GL_MODELVIEW マトリックスでの gluLookAt() の最適な使用法

OpenGL のドキュメントによると、gluLookAt() 呼び出しは GL_MODELVIEW マトリックスで行う必要があります。

http://www.opengl.org/resources/faq/technical/viewing.htm

実際、ドキュメントは、GL_PROJECTION マトリックスで gluLookAt() を使用することは非常に悪いと言う記事へのリンクです。

GL_PROJECTION の不正使用の根絶にご協力ください

一方、GL_PROJECTION マトリックスで gluLookAt() が実際に呼び出されるチュートリアルや例がたくさんあります。同時に、上記の記事では GL_PROJECTION マトリックスで使用しないようにと書かれていますが、そのような使用法のほとんどでは、使用しても目に見える問題はないと述べています。

私の質問は次のとおりです。実際のプロジェクトで gluLookAt() を使用する最良の方法は何ですか? GL_PROJECTION マトリックスでそれを使用することは、本当にそれほど多くないのでしょうか?

0 投票する
1 に答える
466 参照

opengl - OpenGLで視線の平面への法線ベクトルを決定する方法は?

アプリケーションの一種のカメラ周回機能に取り組んでおり、視線の法線ベクトルを知る必要があります。視線ベクトルと同じではないでしょうか。説明の仕方がわからなかったので、少し絵を描きました。

img http://img714.imageshack.us/img714/6233/explanationo.jpg

0 投票する
1 に答える
748 参照

android - OpenGL Android: X 軸が不可解に反転する

OpenGL を介して疑似 2D キャンバスにクワッドを表示しています。そのために、次の方法で正投影を使用します。

表示されたクワッドの座標は次のとおりです。

このクワッドは 2 つの三角形としてレンダリングされます (コードは割愛します)。うまく機能しているテクスチャも適用しています。「カメラ」は、次のようにクワッドをレンダリングする前に定義されます。

ご覧のとおり、ビューポートの中心は [-10, -10, 0] で、これはクワッドの左下隅に配置する必要があります。ただし、シーンをレンダリングすると、次のようになります。

OpenGL スクリーンショット

これは右下隅のように見えますが、そうではありません。確認したところ、X軸が反転していることがわかりました。私はgluLookAtで何か間違っていますか?それとも私は何かを逃しましたか?

0 投票する
1 に答える
1889 参照

android - OpenGL ES: glOrtho() はオブジェクトを表示するが、gluPerspective() は表示しない

[0,0,-10] を中心とした、幅と高さ = 10000 のテクスチャ付きの分隊を表示しています。カメラは [0,0,0] に配置され、負の z 軸を見下ろしています (eyepoint=[0, 0,0]、中心 = [0,0,-1]):

Lighting と Depth-Test は無効になっています。

正射投影モードでは、分隊はテクスチャも含めて完全に表示されます。ズームやパンもできます。ただし、パースペクティブ モードに切り替える場合は、次の方法で行います。

ビューは空白です。何が原因なのか誰にもわかりませんか?

アップデート:

gluPerspective の代わりに glFrustum を使用すると、次のように動作します。

しかし、なぜ gluPerspective は何も表示しないのでしょうか?

0 投票する
1 に答える
335 参照

opengl - OpenGL 透視投影とカメラの位置

OpenGL でマップ イメージを使用してシーンをレンダリングし、マップの緯度、経度を座標として直接使用しています。したがって、私のシーンは 0,0 から開始せず、幅、高さまで上がります。ポリゴン (非常に小さい) は見えますが、gluLookAt() で目の z 値を変更してもズームできません。

0 投票する
2 に答える
1182 参照

opengl - OpenGL透視投影の設定

表示プロジェクションの設定に問題があります。頂点が (0, 0, 0) (0, 0, 1) (0, 1, 1) (0, 1, 0) (1, 0, 0) (1, 1, 0) の立方体を描いています(1, 1, 1) および (1, 0, 1)。これは私がビューを初期化する方法です:

何らかの理由で、立方体が画面全体を埋め尽くしています。frustum メソッドと lookAt メソッドの値を変更しようとしましたが、立方体がまったく表示されないか、ビューポート全体に表示されます。glLookAt では、「目」が (10, 10, 10) に配置され、立方体の表面にあるポイント (0.5, 0.5, 0) を見ていると仮定します。立方体全体が見えるように、これで十分な距離が得られると思いました。私はこれについて間違った方法で考えていますか?また、立方体を z 方向に移動して、z = 10 から z = 11 になるようにし、クリッピング プレーンにも移動しようとしましたが、同様の結果が得られます。