問題タブ [glsl]

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

emacs - EmacsのGLSLメジャーモード?

このリンクhttp://artis.imag.fr/~Xavier.Decoret/resources/glsl-mode/を見つけましたが、「単純」であることを除けば、その周りには多くの説明がありません。

理想的には、それを実行できる CcMode の拡張機能、または少なくとも自動スタイリングを処理でき、CcMode への同様のショートカットを持つモードが必要です。

ない場合は、自分で書き始めるのに役立つ良い elisp リファレンスがあれば大歓迎です。

編集: David の応答により、glsl-mode.el を詳しく調べるようになりました。これは実際には cc-mode に基づいているため、まさに私が最初に探していたものです。

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

graphics - glslで2つの法線間の角度をどのように計算しますか?

glslで2つの法線間の角度をどのように計算しますか? オブジェクトの外縁にフレネル効果を追加しようとしています (その効果をフォン シェーディングと組み合わせます)。欠けているのは角度だけだと思います。

フラグメント シェーダー:

頂点シェーダー:

さまざまな vec3

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

shader - HLSLにGLSLのftransform()変換はありますか?

GLSL頂点シェーダーを使用する場合、シェーダーを固定関数パイプラインとして機能させる方法は、次のように呼び出すことです。

ftransform();

働き。HLSLの頂点シェーダーに同様の機能はありますか?

ありがとうございました

0 投票する
4 に答える
26039 参照

opengl - OpenGL では、シェーダー プログラムで使用されるすべてのユニフォームと属性のリストを取得する方法はありますか?

シェーダー プログラム オブジェクトで使用されるすべてのユニフォームと属性のリストを取得したいと考えています。 glGetAttribLocation()&glGetUniformLocation()を使用して文字列を場所にマップできますが、本当に欲しいのは、glsl コードを解析する必要のない文字列のリストです。

注: OpenGL 2.0 ではglGetObjectParameteriv()、 は に置き換えられglGetProgramiv()ます。そして列挙型はGL_ACTIVE_UNIFORMS&GL_ACTIVE_ATTRIBUTESです。

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

opengl - キューブ マップへのレンダリング

ARB_geometry_shader4によれば、ジオメトリ シェーダーを使用してキューブ マップの 6 つの面にシーンをレンダリングし、キューブ マップをフレーム バッファー オブジェクトにアタッチすることができます。この方法でシャドウ マップを作成したいと思います。ただし、解決できない競合があるようです。

  1. 内部タイプとして GL_DEPTH_COMPONENT を持つテクスチャのみを GL_DEPTH_ATTACHMENT_EXT にアタッチできます。
  2. 深度テクスチャは 1D または 2D のみです。
  3. キューブ マップをアタッチする場合、アタッチされている他のすべてのテクスチャもキューブ マップである必要があります。

そのため、キューブ マップにレンダリングする場合、深度テストを使用できないようです。または、ここで何が欠けていますか?

編集:新しい Nvidia ドライバー (180.48) は深度キューブ マップをサポートしているようです。

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

opengl - GLSL バージョン変更ログ?

バージョン 1.1 から 1.2 および 1.2 から 1.3 の GLSL で行われた変更と追加について読むことができる場所はありますか?
Google はこれについて途方に暮れているようで、完全な仕様を読み始めたくありません。

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

opengl - どうすればキューブマップにレンダリングできますか?

キューブマップにレンダリングしようとしていますが、ここで手順を見つけました: http://www.opengl.org/wiki/GL_EXT_framebuffer_object#Quick_example.2C_render_to_texture_.28Cubemap.29

上記の方法に従ってキューブマップの面を fbo にバインドしましたが、エラー GL_FRAMEBUFFER_UNSUPPORTED_EXT が発生しました。これは、グラフィック カードがこの機能をサポートしていないためなのか、それともコードにバグがあるためなのか?

また、6 つの個別の 2d fbo テクスチャにレンダリングし、これらのテクスチャを使用してキューブマップを作成することは可能ですか?

ありがとう

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

opengl - Intel での詳細な GLSL シェーダーのコンパイル

GLSL シェーダーを使用するプロジェクトがあります。

このプロジェクトは、何か問題が発生したり、追加のデバッグ出力を明示的にオンにしない限り、stdout に何も出力しないように設計されています。

シェーダーのコンパイルが失敗した場合、指定されたログの長さglGetProgramInfoLogは >0 になり、成功した場合は >0 になり、代わりにコンパイルの警告が表示されます。完全にコンパイルされたシェーダーがある場合、ログの長さは 1 未満です...これは、私の開発マシンの NVidia カードでどのように機能するかです。

私の罪のために、Intel統合グラフィックスカードを搭載したラップトップで開発も行っています。コードは正常に実行されますが、シェーダー コンパイルを行うたびにログに次のものが含まれます。

「シェーダーはハードウェア上で実行できるように正常にコンパイルされました」

ある種の文字列分析を除いて、文字列を出力する必要があるかどうかを判断する方法がないため、これは非常に面倒です。

それが望ましくない理由が明らかであることを願っています。OpenGL api を使用してメッセージを出力する価値があるかどうかを判断するにはどうすればよいですか?

編集:

使用するglGetShaderiv(shaderobj,GL_COMPILE_STATUS,&err);と、コンパイル警告は表示されず、エラーのみが表示されます。