問題タブ [freeglut]

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 に答える
3062 参照

c++ - 既存のC++openGLプロジェクトをglut/freeglutからglfwに変換します

科学的な3DアプリケーションをFreeglutからGLFWにアップグレードしたいのですが、隠れた競合やデータの損失が心配でした。実際、私のアプリケーションはFreeglutの魅力のように機能し、問題はありませんが、GLFWは最新のOpenGL( 3.0+)すべての最新の本とチュートリアル。

GLFW APIを見ると、glfw*プレフィックスが付いたGlutのように見えますが、正確にはわかりません。だから私は3つの質問を念頭に置いています:

  1. GLFWのために既存のプロジェクトを中断する価値はありますか、それともフリーグルトに固執する価値がありますか?
  2. 過剰から機能を失うことはありますか?
  3. GLFWはGTK+と互換性がありますか?(私のGUIはGTKに基づいているため)
0 投票する
1 に答える
3255 参照

c - extern 関数のプロトタイプと静的定義

私は FreeGLUT を OSX でビルドする作業を行っており、同じ問題の多くのインスタンスに遭遇しています。関数の多くは、.c ファイルにのみ存在します。

これが例です

C についての理解は限られていますが、コンパイラ エラーは理にかなっているようです。

私の質問は、彼らがこのように設定した理由はありますか? 他のプラットフォームで正しくコンパイルされますか?

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

opengl - Windows で Freeglut を Haskell と連携させることができない

ここに私が仕事をしようとしている私のソースコードがあります:

Main.hs で:

Bindings.hs:

通常の glut32.dll を使用し、コードで freeglut 拡張機能を使用しない場合に機能しますが、freeglut 拡張機能を使用したいと考えています。

freeglut.dll を使用し、その名前を glut32.dll に変更して、.exe と同じフォルダーに配置すると、次のエラーが表示されます。

通常の glut32.dll を同じ方法で使用すると、エラーが発生します。

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

c++ - glDrawElementsを使用してWRL(VRML)ファイルからオブジェクトを描画する

OpenGLを使用してWRL(VRML)ファイルで記述されたオブジェクトをモデル化しようとしています。

私はファイルの解析にはあまり関心がありません。その部分はかなり簡単になると思います。この段階では、頂点配列とインデックス配列をハードコーディングして、これがどのように機能するかを十分に理解し、WRL入力ファイルを一般化できるようにしています。

まず、基本的な箱(直角プリズム)モデルを試しています。私は現在この頂点配列を持っています:

そしてこのインデックス配列:

Coordinate3 {point []}これは、WRLファイルとから直接取得されましたIndexedFaceSet {coordIndex []}

次に、次を呼び出して頂点配列機能を有効にします。

glEnableClientState(GL_VERTEX_ARRAY);

glVertexPointerを設定します。

glVertexPointer(3, GL_FLOAT, 0, vertices);

最後に、glDrawElements関数を使用してボックスを描画します。

glDrawElements(GL_POLYGON, 24, GL_UNSIGNED_BYTE, indices);

次に、頂点配列機能を非アクティブ化します。

glDisableClientState(GL_VERTEX_ARRAY);

したがって、この後、ボックスが描画されることを期待します。これを使用するglDrawElements(GL_POINTS, 24, GL_UNSIGNED_BYTE, indices);と、8つの頂点が期待どおりに表示され、正しい頂点が線で結合されている場合、期待されるボックスを表します(中央にポイントがある場合を除く)。 、しかし、カウント引数として26を使用すると、真ん中のポイントが消えます)

ただし、glDrawElementsの最初の引数でGL_POLYGONまたはGL_LINE_LOOPを使用すると、ゴミが発生します。8つの頂点は明らかにそこにありますが、それらは本当に奇妙な方法で結合されています。

私は今ではかなり混乱していて、これを正しく行っているかどうかさえわかりません。おそらく誰かが私を少なくとも正しい方向に向けることができるでしょうか?

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

c++ - Base::object リンカ エラー @ c++ w/ freeglut への未定義の参照

私はこのコードを持っています

////////////////////////////////////Gnome.cppファイル

//////////////////////////////////Living.hファイル

// リビング.cpp

// スプライト.h

// 実装が必要な場合はお知らせください

//そして最後にエンジンクラス

//そして部分的な engine.cpp

そのため、ビルドしようとすると、リンカーに次のエラーが表示されます: Undefined reference to Living::spriteImg

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

macos - Mac OS XでFreeGLUTをビルドすることは可能ですか?

FreeGLUTを使用するOpenGLのチュートリアルをいくつか行っています。

どうやらこれはあなたがそれを構築してMacにインストールする方法です:

make残念ながら、これだけでコマンドを実行するとエラーが発生します。Undefined symbols for architecture x86_64

少し作業を行った後、最初の行の改善点は次のとおりです。

残念ながら、makeコマンドを実行してもエラーが発生します。

これは以前にネット上で文書化されていますが、この場合、解決策はそれほど役に立ちません。また、OS Xに付属のGLUT.framworkと交換してみましたが、例ではFreeGLUT固有の関数を使用しています。

0 投票する
5 に答える
6784 参照

c++ - キー定数のリスト

押し上げ/押し下げなどのキーイベントを確認したい...

しかし、呼び出されるように作成した関数は、「unsigned char」を取得します。で W/A/S/D のようなキーを確認できますがkey == 'w'、他のキーを確認する方法がわかりません。

「\n」のような使用可能な文字のリストはありますか?

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

c++ - Glutkeyboard の入力が奇数ループなしで登録されない

私はキーボード入力を GLUT で動作させることに取り組んでおり、かなりの時間を費やしています。基本的に私の問題は、特定のキーに関連付けるように設定した操作が正しく機能しないことです。

これらは、glutKeyboardFunc と glutKeyboardUpFunc の私の宣言と定義です。

これらの目的は、キーが押されたときにキーを true に設定し、離されたときにキーを false に設定することです。

次に、押されたキーに基づいて実行することをいくつか定義します。

次に、私のglutDisplayFuncでkeyOperationsが呼び出されます。

あなたがまだ私と一緒にいるなら、私のメイン関数といくつかの変数は次のようになります。

メイン関数に含めた for ループは、keyStates 配列全体を 0 にリセットします。これは、最終的には glutKeyboardUpFunc と同じ効果を持つはずですが、何らかの理由で、この for ループがないと keyOperations が適切に実行されません。

私は glutKeyboardUpFunc を使用して私のものに似たコード例をいくつか検索しましたが、非常に類似したものを見つけるという点ではうまくいきませんでした。glutKeyboardUpFunc と glutKeyboardFunc 内の操作は、そのコードに到達したときに何らかの終了コマンドを挿入するだけで実行されることを知っています。

glutReshapeFunc(reshape); を削除すると、このコードは現在の形式でコンパイルされるはずです。

私の質問は具体的には次のとおりです。この for ループは、それなしでは発生しないように見える望ましい回転効果を引き起こしますか? また、知っている場合、どうすればこれを改善できますか?

また、a と d キーを押すことによる空白の平面での回転は目立ちませんが、w と s を押すと、いくらか回転するはずです。コンピューターの速度に応じて、xspeed と yspeed の回転速度を速く/遅くするには、その量を変更する必要がある場合があります。

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

opengl - glutのあるスレッド: glutPostRedisplayが無視される

プログラム出力を更新してからプログラムの状態を変更するプログラムがあります。これは、時間のティッカー (openGL タイマーではなく、スレッドに実装されたもの) が発生したとき、およびキーボード入力が glut から登録されたとき (glutKeyboardFunc コールバックを使用) に発生します。

これらのイベントはどちらもプログラムの状態を更新し、glutPostRedisplay を呼び出します。問題は、キーボードが押されたときに実際に何かを行うことだけです。タイマーが刻むと表示関数は無視されますが、キーボードが押されると表示関数が呼び出されます。

glutは他のスレッドを無視しますか? もしそうなら、それらを登録する方法があります。

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

c++ - C++ および OpenGL を使用した NetBeans / Windows 7 での Freeglut

最近、NetBeans 7 で freeglut を使用する方法を理解しようとしました。Google でよく検索しましたが、必要なものをそれにバインドする方法に関する適切なチュートリアルが見つかりませんでした。

現在、私はこれよりも多くの問題を抱えています:

最初の 1 つは: - freeglut 2.8 => コンパイルするには、MinGW と msys が必要です。両方をインストールしましたが、freeglut を「構成」または「すべて作成」して「インストールする」ことができません。そのタスクの読みやすいハウツーが見つかりませんでした。

次のもの: - ビルドしたら、どのファイルを特定のフォルダーに配置するか?

最後の 1 つ: - ファイルを対応するフォルダに配置したら、C++ プロジェクトで NetBeans 7 の下で finally freeglut を使用する方法は?

そのあたりの情報が少ない気がします。

私が見つけたのは、ダウンロード、ビルド、インストール、完了などの答えだけです。しかし、私はすでに「インストール」と「ビルド」に行き詰まっています。

解決策: NetBeans を閉じます。

  • mingw.org から MinGW をインストールしてダウンロードします。
  • インストール後、パスを SystemEnvironemt (例: C:\MinGW) に追加します。[スタート] -> [コンピューター] に移動し、マウスの右ボタンでプロパティを選択し、高度なシステム設定に移動し、次のダイアログで [環境変数] を押します。「システム変数」タブで、パス (または PATH) add: C:\MinGW; というエントリを見つけます。freeglut のコンパイル済みパッケージを入手してください: (http://www.transmissionzero.co.uk/computing/using-glut-with-mingw/) セットアップ方法に関する優れたチュートリアルがあります。

それではお楽しみください ( #include " だけで完了です。お楽しみください。

注 #1: make が見つからない場合、フォルダーは C:\MinGW\msys\1.0\bin\make.exe (C:\MinGW に MinGW をインストールした場合) です。

コマンドラインの「mingw-get install msys」はmsysを取得する必要があります...最後に、msys\binもパスに追加することを忘れないでください。:)

ここに完全なチュートリアルがありますが、ドイツ語です。 http://techchan.blog.de/2012/03/18/einrichten-opengl-netbeans-7-1-1-teil-0-start-13209096/

英語で必要な場合は、翻訳できるかどうかお知らせください;) そうでない場合は、自分で翻訳することを考えます.