問題タブ [glew]
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.
c++ - OpenGLを使用したC++でのプリミティブリスタートインデックスエラー
私はOpenGlを学び、プリミティブリスタートインデックスがどのように機能するかについての簡単なテストを実装しようとしています。何を試しても、g++では「`__glewPrimitiveRestartIndex'への未定義の参照」というエラーが表示されます。
問題のコードは次のとおりです。
私はg++の使用に少し慣れておらず、その切り替えとインクルードメカニズムを完全には理解していないことを認めます。コンパイルに使用しているg++コマンドは次のとおりです。g++-otest test.cpp -lGL -lglut
コマンドに「-lGLEW」を追加すると、プログラムはコンパイルされますが、セグメンテーション違反が発生します。「glPrimitiveRestartIndex(0xffff);」という行を削除します コードから、-lGLEWがコンパイルコマンドに追加された場合、エラーなしで(もちろん、プリミティブ再起動インデックスが機能せずに)コンパイルおよび実行されますが、なしで試行した場合も同じエラーが発生します。
これにより、最初の問題は-lGLEWが含まれていないことが原因であると私は信じています。したがって、残っている唯一の問題は、なぜ私がセグメンテーション違反を渡されているのかを理解することです。0xffff以外のさまざまな値で試しましたが、問題は解決していません。
opengl - glewとglfwを使用したopenglのcmakeフラグ
私はこの簡単なコードを持っています:
そして私のCmakeLists.txtで:
「cmake」を実行しています。エラーは発生しませんが、make を実行すると次のように表示されます。
実行中:
エラーなしでコードを正常にコンパイルします。自分のコードで cmake を実行するにはどうすればよいですか?
また、これらの行をメイン関数に追加すると:
同じフラグを指定して gcc を実行しても、エラーが発生します。
kubuntu 10.04、cmake v2.8、libglfw-dev、libglfw2、libglew1.5、libglew1.5-dev、glew-utils に基づいて Linux ミントを実行しています。
私はcmake、glew、glfwが初めてです。助けてくれてありがとう!
乾杯!
P
c - GLEW の動作に問題がある
注: glGetString(GL_VERSION) が返されました: 2.1.0 - ビルド 8.15.10.2361
GLEW を System32、VCDir/lib および VCDir/include ディレクトリにインストールしました。そのため、リンカは GLEW の必要なビットを見つけるのに何の問題もないはずです。私が抱えている問題は、次のコードです。
次のエラーが表示されます。
このエラーが、私が GLEW をインストールすることを決めたすべての理由でした。参照:未解決の外部シンボル _glGenBuffers エラー
このエラーに加えて、少し気になる警告がいくつかあります。
また、GLEW で行ったように、VC inc と lib および System32 ディレクトリに SDL をインストールするだけでよいでしょうか?
ファイルの先頭にある #include は次のようになります。
ただし、必要な場合に備えて、コード全体を次に示します。
linker - glew と CodeLite のリンクに関する問題
glew を Windows 上の C++ CodeLite プロジェクトにリンクしようとしましたが、ほとんど成功しませんでした。まず、MinGW を使用して glew ソースを libglew32.a と glew32.dll にコンパイルしました。これらは C:/glew-1.6.0/lib 内にあります。
プロジェクト設定内では、コンパイラ タブのインクルード パスは C:/glew-1.6.0/include であり、リンカー タブ内ではライブラリ パスの下に C:/glew-1.6.0/lib があります。リンカー オプションには -lglew があります。
この時点では、main.cpp 内に glew を含めたり、glew に関連するコードを書いたりしていません。しかし、プログラムを実行するとスタックし、「実行中のプログラム: ./TestProgram」という単一の出力メッセージが残りますが、何も起こりません。
リンカ オプションから -lglew フラグを削除すると、プログラムは正常に実行されます。glew のリンク方法に問題があるようですが、何が原因かわかりません。
linux - Linux での静的ビルド glew & glfw
私のプロジェクトディレクトリには、次のものがあります。
- ソースから glew をコンパイルした (make を実行した) ./external/glew
- ./external/glfw には、glfw もソースからコンパイルされています (make x11 を実行)
私の.cソースコードで:
私はGCCを使用してコンパイルしようとしました:
./external/glew/lib は libGLEW.a の場所で、./external/glfw/lib/x11 は libglfw.a の場所です。
エラーなしでコンパイルされます。しかし、次に ./test1 を実行しようとすると、次のようになります。
glew と glfw を静的にコンパイルするにはどうすればよいですか?
EDIT 1助けてくれてありがとう。stackoverflow と古い nabble の人々の助けを借りて、静的にリンクされた GLFW と GLEW に何をする必要があるかを書き留めて、http: //www.phacks.net/static-compile-glfw-and-glew に置くことができました。 /
qt - QT OpenGL、頂点バッファオブジェクトおよびGLEW?
古いopenGLコード(イミディエイトモード)をVertext-Buffer-Objectsに移行中です。これには、OpenGL3 API呼び出し(GL_ARB_vertex_buffer_object)を使用する必要があることに気付きました。そのため、拡張機能の読み込みライブラリとしてGLEWを使用する予定でした。
私の質問は、OpenGL3 contexTのQGLWidgetを初期化する特別な方法はありますか?
c++ - CodeBlocks を使用して GLEW を SFML プロジェクトにリンクする際の問題
そのため、シェーダーを作成して OpenGL プログラムに組み込む方法を学ぼうとしています (GLUT をいじくり回すのではなく、有効な OpenGL 環境を作成するために SFML 1.6 を使用しています。私の IDE は Codeblocks です。私のカードは OpenGL 3.1 と GLSL 1.3 をサポートしています)。ただし、問題が発生しました。GLSL シェーダーをプログラムに組み込むには、GLEW が必要なようです。そこで、GLEW のソース コードを見つけて、CodeBlocks を使用してスタティック ライブラリとしてコンパイルしました。ここでの最後のコメントの指示に従ってください(c. ファイルに追加#define GLEW_STATIC
しました。追加する場所が明確ではなかったからです)。 it)、これで 4 つの .a ファイルができました。
libglew32.a、libglew32d.a、libglew32mx.a、libglew32mxd.a
関連するディレクトリを Settings- >コンパイラとデバッガ...->検索ディレクトリ。私のプロジェクトでは、[Build Options] -> [Linker Settings] -> [Link Libraries] の下で、上記の 4 つもリンクしました。
上記のすべてを実行して、glewInit() を呼び出そうとすると、次のエラーが発生しました。
「_imp__gewInit」への未定義の参照
前にを追加する必要があると読んだことがあったので、それを行ったところ、「wglGetProcAddress@4」エラーへの未定義の参照が大量に発生します (私のプログラムの GLEW コードの唯一の行は です):#define GLEW_STATIC
#include <glew.h>
glewInit();
私は途方に暮れています。これらすべての技術的側面 (リンク/コンパイル/その他) は、まだ新しく、私にはわかりにくいものです。
SFML OpenGL プロジェクトに GLSL シェーダーを組み込むことができるように、GLEW を機能させるために何をする必要がありますか? (または、GLEW やその他の外部ライブラリを使用せずに、どうにかしてより簡単に行うことができますか? どちらが素晴らしいでしょう!)
c++ - GL VBO の問題: 三角形の最初と最後のストリップが正しく表示されない
私は C++ も OpenGL も初めてではありませんが、VBO の使用は初めてです。今まで、私は怠け者で、ほとんどすべてにディスプレイ リストを使用していました。
私の問題はおそらく非常に単純ですが、面倒です!三角形の最初と最後のリストが正しく表示されていないようです。この例では、単純な波面モデルの obj ファイルから球を読み込んでいます。表示リストと VBO の両方でまったく同じ方法で obj ファイルからロードし、obj ファイルからまったく同じ数値を取得していることを確認しました。
この例では、頂点と頂点インデックスを格納するために STL ベクトルを使用しました。ただし、以前にも float* と int* を使用してみましたが、まったく同じ結果が得られました。
これは、VBO から描画された球体の画面です。
編集:私のアカウントはまだ新しいので、2つ以上投稿できないため、このハイパーリンクを削除しました... ご覧のとおり、球の真ん中に入る向こう側から巨大な円錐が描かれています。見にくいですが、最も近い側から最も遠い側への三角形のストリップも間違っています。これは、次のいくつかの画面のいずれかで明らかになります。これは、DL から描画されたまったく同じ球です。
編集:私のアカウントはまだ新しいので、2つ以上投稿できないため、このハイパーリンクを削除しました...
DL が正しく描画されていることがわかります。ここでは、両方が同時に描画されています。線が緑色になっているところに最大の違いが見られます。これが本来あるべき姿です。
編集:私のアカウントはまだ新しいので、2つ以上投稿できないため、このハイパーリンクを削除しました...
ここでは、トップ ストリップが VBO から間違って描画されていることがより明らかです。
次に、各頂点の y 値に大きな数値を追加してみました。これは、球内の円錐の頂点が決して動かないため、VBO に間違いなく何か問題があることを示しています。
さて、問題の視覚的なアイデアが得られたので、ここにコードを挿入すると思いましたが、おそらくステップを見逃したか、番号が間違っているだけです。ご覧ください
これが私がvboを作成する方法です
{
}
m_vertices は、単純に x、y、z を保持する Vec3f の STL ベクトルです。これをベクターとしても試してみましたが、同じ問題が発生したため、ベクターまたは float* に変更しても問題はありません。
わかりました、今、私がそれを描いているところに来ました。
{
}
glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ); を使用して描画しています。間違った三角形の問題を最もよく示しているため、単にデバッグ目的のためです。
私が何か間違ったことをしたかどうか、誰でも見ることができますか? 何かを間違って初期化しましたか? 手順がありませんか?私はさまざまなチュートリアルを見て、これをかなりグーグルで検索しましたが、他の人と大きな違いはないようです。ほとんどのチュートリアルでは、stl ベクトルの代わりに float* を使用しましたが、繰り返しますが、既にそれを行っており、まったく同じ結果が得られました。
私が提供しなければならない情報が他にあるかどうかはわかりませんが、glew と freeglut を含めています (両方の最新版.. Windows 上)。
c++ - Visual Studio でのビルド エラー
私に提供された以前の c++ プロジェクトの解決策があります。Visual Studio でソリューションを開いてビルドしようとすると、次のエラーが表示されます。
プロジェクトの入力リンカー設定を変更して、glew32d.lib を含める必要がありました。これで修正され、適切にコンパイルおよび実行されます。
ただし、example1.cpp を変更すると (コメントを追加するだけでも)、ビルドできなくなり、次のエラーが発生します。
glew32d はまだリンクされているため、エラーが発生している場所とビルドできない理由がわかりません
opengl - OpenGL/GLEW: コンパイル時エラーを引き起こさずに正しい/既存の列挙型を選択する方法
私は現在 glew を使用して、バインドされた openGL コンテキストの GPU 機能を検出しています。
利用可能な場合はopenGL 3.0列挙型を使用し、opengl 3.0が配置されていないが拡張機能が次の場合は拡張機能にフォールバックするテクスチャクラスを想像してください。
GL_R8UI
opengl 3.0がサポートされていない場合は存在しないため、明らかにこれはコンパイル時エラーを引き起こします.-これを解決する一般的な方法は何ですか?