問題タブ [opengl-3]
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.
opengl - glDrawElements() のインデックスを取得するにはどうすればよいですか?
Assimp ライブラリを使用して、VBO を使用する初歩的な OpenGL アプリケーションにモデルをインポートしようとしています。
私がそれを正しく理解していれば、glDrawElements は物事を描画するための理想的な現代的な方法の 1 つです。
しかし、一般的なインポート ライブラリからその情報を取得するにはどうすればよいでしょうか。
特定の Assimp ライブラリの知識がある場合は、それを歓迎します。
--
これらを生成する一般的なプロセスは何ですか?
opengl - コア プロファイル 330 の頂点シェーダーと入力頂点に関する OpenGL の特異な動作
NVIDIA で「#version 330 コア」を使用し、
glBindAttribLocation(program, 0, "in_Vertex"); を使用して 入力頂点は「in vec4 in_Vertex;」で機能します。ただし、クライアント アプリで OGL 関数呼び出しがなくても機能することに気付きました。「デフォルトの最初の入力変数」のようです。なんで?省略するか、glBindAttribLocation を介して明示的に接続する必要がありますか? 【規格上理想とは?】 また「vec4 gl_Vertex;」では 仕様が非推奨と呼んでいる間は機能し、シェーダーのコンパイラーは警告を出しません。なんで?少なくとも警告することを期待していたでしょう。最後の問題はコンパイラ (GLSL コンパイラ) のバグかもしれませんが、最初の問題は特に不可解です。
opengl - 最新の OpenGL カラー
古いコードには、GL_AMBIENT、GL_DIFFUSE、GL_SPECULAR などの glMaterialfv の入力があることに気付きました。これらは最新の GLSL コードでどのように置き換えられますか?
たとえば、モデルをインポートするライブラリ (Assimp) がそのような色カテゴリに直接値を与えると仮定すると、それらはまだ (コア コンテキストで) 直接使用できますか?
opengl - 各BindBufferの後にVertexAttribPointerが必要ですか?
VertexAttribPointerを再度呼び出さない限り、BindBufferの後にシェーダーへの入力がないことに気づきました。それは必要ですか?シェーダーは書き込みでは変更できませんが、使用されるバッファーのみが変更されます。
opengl - 最新の OpenGL でレイ トレーシングを行う方法は?
ですから、単色のモデルにライティングを開始する必要があります。テスト アプリケーションは、最新のメソッドのみを実装するためのテスト ケースであるため、理想的にはレイ トレーシングを実装する必要があることに気付きました (理論的には、数年後にはリアルタイム グラフィックスに最適になる可能性があるため)。
しかし、どこから始めればよいのでしょうか?
古い OpenGL でライティングを行ったことがないので、推奨されていないメソッドに直接進むとします。
アプリケーションは現在、頂点バッファー オブジェクト、頂点、法線、および色の入力を適切に設定しており、モデルを空間内で単色で正しく描画および変換しています。
フラットな色の頂点から GLSL を介して適切な最終結果を得るために必要なすべての情報を取得する情報源はありますか? 理想的には、それを補完するために必要になる可能性のある他の追加の照明方法を使用します。
opengl - GLSLはSLIを利用していますか?OpenCLはありますか?複数のGPU用のGLSLまたはOpenCLのどちらが優れていますか?
OpenGLのGLSLはSLIセットアップをどの程度利用していますか?それは実行の時点でまったく利用されていますか、それともエンドレンダリングのためだけに利用されていますか?
同様に、OpenCLはSLIとは無関係であることを知っていますが、1つに複数のGPUがあると仮定すると、マルチプロセッシングのGLSLとどのように比較されますか?
一般的な変換やレイトレーシングなど、アプリケーションによって異なる可能性があるため、アプリケーションの種類による違いについての洞察を提供できますか?
cygwin - cygwin で gl3 アプリをビルドする
標準の gnu ツール (gmake/gcc) を使用して Linux で開発している小さな opengl 3.2 アプリを持っています。コードはかなり移植性が高いようです。Mac mini gl ドライバーがサポートしていないように見える gl3 機能を使い始めるまで、osx で実行しても問題はありませんでした。同じ mini に Windows XP のブートキャンプ パーティションがあり、可能であればそこでアプリを実行したいと考えています。
Windows ドライバーは間違いなく gl 3.2 をサポートしていますが、リンクに問題があります。これは非常に一般的な問題のようですが、cygwin で opengl > 1.2 を使用して対処するオンラインの回答は見つかりませんでした。私は glew-1.5.5 を使用しており、次のようにリンクしています:
g++ -o glToy *.o -L/cygdrive/c/Program\ Files/glew-1.5.5/lib -lglew32 -lglut32 -lglu32 -lopengl32
しかし、私はこの種の出力をたくさん得ます:
私が間違っていることは何ですか?それとも、これは実行可能なセットアップではありませんか? これを Mac mini (2009 バージョン) で実行するための他のアイデアはありますか? ありがとう!
opengl - 最新の OpenGL の gl_LightSource[0].position.xyz
私は初心者です。古いコードで気づいた
それは動的に変化しているため、単に静的な vec3 でテストすることはできません。
最新の OpenGL で上記を置き換えるにはどうすればよいですか? 例をいただければ幸いです。
opengl - 最新の GLSL のピクセルごとの照明?
適切な簡単な例を探しています。
今、私はチュートリアルに基づいたものを持っていましたが、三角形の真ん中にバリエーションがありません. 各三角形の色が変化しているように見えますが、全体のみです。
.. 頂点シェーダーで。
と
およびフラグメント シェーダー:
しかし、私が言ったように、各三角形は単色に見えます (それは全体でのみ変化します)。
正規化が役割を果たす可能性があると聞きましたが、 normalize() vertex_normal を使用しても同じ結果になります。
opengl - 最新のOpenGLのgl_ModelViewMatrixおよびgl_ModelViewProjectionMatrixとは何ですか?
私はコンテキスト「#version330コア」であるこのコードを持っています
そのどの部分が古いgl_ModelViewMatrixで、どの部分がgl_ModelViewProjectionMatrixですか?(ModelViewProjectionの作成に使用されたgl_ProjectionMatrixとは何ですか?)