問題タブ [glu]

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 投票する
1 に答える
2585 参照

opengl - 関数で参照されている未解決の外部シンボル _gluLookAt@72

glu ライブラリを使用してプログラムを作成していますが、コンパイルすると次のエラーが発生します。

GL/glu.h をインクルードし、lib と dll が存在するかどうかを確認しました。(それらはデフォルトです) Visual Studio 2012 を使用しています。

このエラーの原因はどこにありますか?

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

opengl - gluUnProjectは、特定の条件下で不正確なz座標を返します

不正確なZ座標を取得しているため、gluUnProjectで問題が発生しています。

関連するプログラムは、基本的に3Dビューアです。ロードされたモデルをクリックして、2点間の距離を取得できるようにする小さな関数を実装しました。

これはコードです:

ユーザーに垂直な面にある2点間の距離を測定しているときは、すべてが正しく機能します。zがユーザーを指し、yが上を指す、3軸システムをイメージすると、2つのポイントはXY平面上にあります。Zを中心とした回転に関係なく機能します。

ここに画像の説明を入力してください

たとえば、ここで小さな正方形の平面を作成しましたが、2つのポイントは両方とも同じ高さです(1つはラベルによって隠されています)。

世界座標P1:(0.019062456、0.03357359、0.08333321、1)

世界座標P2:(0.025983132、0.028048635、0.08333321、1)

しかし、シーン全体をグローバルX軸上で回転させると、取得されたZ座標は次のように変化します。

ここに画像の説明を入力してください

X座標とY座標は関係ありません。重要なのは、Z座標です。これ以上0.08333321ではありません。

世界座標P1:(0.026863147、0.027185505、0.0831252、1)

世界座標P2:(0.020072304、0.034560144、0.08312501、1)

さらに、グローバルXを回転した後、ズームもポイントのZ座標に影響します。

追伸:私はJOGLを使用しています。ズームインとズームアウトは、平行六面体のグロルトを拡大/縮小することによって実行されます。glReadPixelsによって生成されるZ深度fb.get(0)は、[0、1]に含まれています。

私はどこが間違っていますか?

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

c++ - キー コールバック関数に表示される opengl 関数

GLUTを使用してopenGLを使用しています。いくつかの関数を使用して独自のヘッダー ファイルを作成しています。そのうちの 1 つは、数字を入力して保存できる四角形です。ここでの問題は、どのキーが押されたか知りたい場合は、関数をkeyboardFuncコールバックに配置する必要がありますが、長方形も表示したいので、表示コールバックにも配置する必要があることです。キーボード コールバック関数で何も描画しないでください。

2 つの関数を作成できます。1 つは四角形を表示するためのもので、もう 1 つはキーのためのものですが、両方のために 1 つの関数が必要です。これどうやってするの?

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

visual-c++ - 間違った座標を与えるgluProject

2D で形状を描画しようとしています。gluProject を使用して 3D 座標と 2D 座標を変換しようとしています。基本的に、私の目標は (200,200) にポイントを描画することであり、ポイントは適切に描画されます (開始位置が 0,0,0 の場合)。

私はこのようにgluProjectを初期化しました -

そして、私はこのようなアニメーションメソッドでそれを呼び出しています

私が得た値は変です (-9e61、-9e61、-9e61)。本来あるべき行列とは異なる行列を掛けているためだと思います。何かアドバイス?

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

opengl - GLUquadricObj は、gluNewQuadric と gluDeleteQuadric の 1 回の呼び出しで再利用できますか?

質問 #6663300 から、glut 関数が適切ではないことを読みました。glut 関数の代わりに glu 描画プリミティブを使用する必要があります。

そのため、GLUquadricObj の使用方法についていくつか質問があります。どこに行っても、GLUquadricObj は通常ポインターとして使用され、1 つの描画フェーズの最後に新しいインスタンスが作成されて破棄されます。GLUquadricObj の参照を gluCylinder のような関数に渡すために、ポインタなしで GLUquadricObj が使用される特定の時間はありますか?

2 番目の質問では、プログラムが終了するまで継続的に更新されるアニメーションがあるとします。描画されるフレームごとに GLUquadricObj を作成して削除する必要がありますか? または、作成した GLUquadricObj を 1 つだけ残して、プログラムが閉じたときに削除することはできますか? アニメーション全体を通して GLUquadricObj ポインタを 1 つだけ保持したい場合、描画リストを使用する必要がありますか?

GLUquadricObj *qobj = 0; qobj = gluNewQuadric();

gluCylinder(qobj, CylinderRadius, CylinderRadius, 長さ, スライス, スタック);

gluDeleteQuadric(qobj);

GLUquadricObj をローカルではなくグローバルにする方が効率的ですか? または、描画されたフレーム内で GLUquadricObj を作成および破棄したままにする必要がありますか?

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

c++ - C++ OpenGL:gluPerspectiveを呼び出すと未定義の参照エラーがスローされますか?

FreeGLUT を使用して、C++ で OpenGL を使用して最初のキューブを作成しようとしています。「gluPerspective」を呼び出すたびに、コンパイラが次のエラーをスローするという問題があります。

誰かがこの問題を抱えていて、何も見つからないかどうかを確認するために周りを見回しました. だから、私はまた何かを忘れていると思います。関数を呼び出す場所は次のとおりです。

私はfreeGLUTを含め、その行を除いて他のすべてが機能します. ドキュメントを確認しましたが、正しく使用しているようです。私は途方に暮れています。

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

c++ - OpenGL glRasterPos が値を正しく受け入れない

基本的な HUD のようなテキストを OpenGL/C++ プロジェクトに追加しようとしています。

したがって、私は決めました

私の好きな武器になります。

最も簡単に使用するには、以前のレンダリング領域に 2D マトリックスを追加する必要があることに気付きました。

これで 10*10 の 2D 立方体ができあがります。

glutBitmapCharacter が最後の文字位置を記憶して次の文字位置を追加するときに問題が発生しました。文字列を書き込んでいる間はかなり賢く、明らかにこの位置を覚えていて、私のテキストを一度だけ画面全体に飛ばします:)いたずら。

私が聞いたように、これをリセットするのは通常のことです.

コードを実行すると、奇妙なことが起こります。

私のテキストは表示されません。実際、結果として得られる X、Y、および Z (Z が必要かどうかもわかりません..とにかく 0 にする必要があります) はすべて inf (無限大) です。独自の glRasterPos を設定しなければ、画面を離れる以外は問題なく動作します。私の戻り位置は、予想どおり、アップカウント X および 0 、 0 です。

それで、これについての取り決めは何ですか、私は正確に何を間違っていますか?

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

opengl - Ubuntu に ruby​​-opengl 0.60.1 をインストールしますか? ...「gl」、「glu」、および「glut」拡張子を追加するため

ruby-opengl-0.60.1 を Ubuntu にインストールするにはどうすればよいですか?

私は努力し続けます

次のエラーが発生しています。

おそらく、Rakefile の「package task」パラメーターを手動で変更してから、ローカルの gem インストールを試みることができますか?...

手動インストール用にパッケージをダウンロードできる次の URL を見つけました。

また、以下はパッチまたは小さな変更のようです。

ランチパッドの URL から gem をダウンロードしようとした後、ダウンロード フォルダーから $ gem install ruby​​-opengl-0.60.1.gem を試しましたが、大量のエラーが発生しました。

私は最終的に試しました: $ sudo apt-get install libopengl-ruby

$ gem list -r ruby​​-opengl を取得すると、次のようになります。

i386-mswin32 は Windows 用のバージョン 0.60.1 だと思います。

この構成で、Sapphire.rb を実行しようとしましたが、まだ動作しません。

すでに ruby​​-opengl バージョン 0.60.0 と 0.61.0 がインストールされていますが、いくつかの .rb ファイルを実行するために必要な「gl」、「glu」、および「glut」拡張子を作成するため、0.60.1 が必要です。私が他の人からコピーしたもの。これらの .rb ファイルは、Gosu gemで作成されたビデオ ゲームです。

これは特に Gosu gem で使用するためのものです。さらに具体的には、Texplay gemも必要とする Sapphire ゲーム (github.com/KoBeWi/Sapphire) を実行しようとしています。

または、「gl」、「glu」、および「glut」拡張機能をアクティブにする別の方法はありますか?

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

c++ - 私のウィンドウはOpenGLでサイズアップされています

ウィンドウのサイズ(800,800)を作成したいのですが、GLコマンド

コードに影響を与えていません。以下は全体のソースコードです。

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

opengl - glPushMatrixは非推奨、GL30-GL43ソリューション?基本ボックスの例

基本的なボックスをレンダリングするプログラムに取り組んでいますが、グーグルで画面に顔(または顔のグループ)を描画するための解決策が見つかりませんでした。

現在、私が見つけたすべてのチュートリアルでは、このようなglPushMatrix / glBegin / glEnd/glPopMatrixを使用しています。

OGL 3.0で、glPushMatrix / glBegin / glEnd / glPopMatrixが非推奨になったことを読みましたが、オブジェクトをレンダリングするための「適切な」方法が見つからないようです。使用すべき方法はありますか?