問題タブ [opengl-4]

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

opengl - シェーダーを指定しないと OpenGL 3.x+ で何が起こるか

私は新しいコア OpenGL 4 を使用しているので、VAO のみを使用し、Vertex および Fragment Shaders を使用しています。

しかし、シェーダーをまったく指定しないとどうなりますか? システムはデフォルトのシェーダーを提供しますか? たとえば、現在の glColor と mvp でフラグメントを描画するシェーダーは?

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

opengl - OpenGL で STD140 を使用する必要があるのはいつですか?

OpenGL で統一ブロックに STD140 を使用するのはいつですか?

100% 確実ではありませんが、「Shared」と呼ばれる、同じことを実現できる別の方法があると思います。

コーダーの好みですか?または、どちらか一方を使用する理由はありますか?

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

opengl - ARB_separate_shader_objects 関数はどこにありますか? (例 glUseProgramStages、glCreateShaderProgramv)

システムでこれらの関数のプロセス アドレスを見つけることができないようです。すべてをサポートするGLEW 1.9を使用しています。コンテキスト用に 4.3 コア プロファイルをロードしています... 私の nVidia ドライバーは完全に最新です。GPU Caps というプログラムをダウンロードしたところ、拡張機能が利用可能と表示されました。何か案は?

更新 - glewExperimental を有効にして動作させる必要がありました。プログラムの分離は 4.1 からコアだと思っていました。洞察がない場合は、これを解決済みとしてマークします。

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

opengl - 現在バインドされている頂点配列オブジェクトを取得するには?

現在バインドされている頂点配列オブジェクトの名前を取得するにはどうすればよいですか?

マニュアルを調べましたが、glGet() で使用する列挙型が見つかりませんでした。

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

opengl - nvidia opengl で glGetTexImage と imageStore を混在させる際の問題

ここに貼り付けるには長すぎるコードを書きましたが、バインドレスの imageLoad と imageStore を使用するフラグメント シェーダーを介して 3D 1 コンポーネント フロート テクスチャにレンダリングされます。

そのコードは間違いなく機能しています。

次に、いくつかの GLSL コンパイラのバグを回避する必要があったため、上記の 3D テクスチャを glGetTexImage を介してホストに読み戻したいと考えました。はい、glMemoryBarrierEXT(GL_ALL_BARRIER_BITS) を実行しました。glGetTexLevelparameteriv() を介してテクスチャ情報を確認したところ、すべて一致していました。OpenGL エラーを確認しましたが、エラーはありませんでした。

残念ながら、glGetTexImage は、フラグメント シェーダーによって書き込まれたものを決して読み取らないようです。代わりに、テクスチャを作成するために glTexImage3D() を呼び出したときに入力した偽の値のみを返します。

それは期待される動作ですか?ドキュメントはそうでないことを暗示しています。

glGetTexImage が実際にそのように機能する場合、その 3D テクスチャ (デバイス上に常駐) のデータを読み戻すにはどうすればよいですか? 確かに、この単純なことを行う簡単な方法があります...


glGetTexImage がそのように機能するかどうかを尋ねていました。コードは次のとおりです。

バインドレス配列を作成するコードは次のとおりです。

配列を割り当て、OpenGL フラグメント プログラムを介してレンダリングし、dump_array() を呼び出してデータを読み戻します。悲しいことに、割り当て呼び出しでロードしたものしか取得できません。

レンダリングプログラムは次のようになります

フラグメントプログラムは次のとおりです。

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

opengl - テクスチャ ビューを使用する場合

新しいRed BookのTexture Viewsについて読んでいます。322ページに次のように書かれています。

OpenGL を使用すると、それぞれ独自の形式と寸法を持つ複数のテクスチャ間で 1 つのデータ ストアを共有できます。

(テクスチャ ビュー経由)

今、私の質問は次のとおりです。

単一のテクスチャ ソースが複数のインスタンス (この場合はテクスチャ ビュー) によって参照されているということですか?

たとえば、同じテクスチャ オブジェクトを異なるサンプラーで使用する場合とどう違うのでしょうか?

また、テクスチャ ビューを介してテクスチャ ピクセルを変更すると、元のテクスチャ オブジェクトのピクセルが変更されるということですか?