問題タブ [fragment-shader]

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

opengl - GLSL texelFetchOffsetはisampler2Dで機能しますが、usampler2Dでは機能しませんか?

フラグメントシェーダーでは、以下が正常にコンパイルされます。

ただし、以下はコンパイルされません。

OpenGL 4.2ドライバーは、次のコンパイラエラーメッセージを表示します。

エラーC1115:互換性のあるオーバーロードされた関数 "texelFetchOffset(usampler2D、uvec2、int、uvec2)が見つかりません

これは、Quadro5010M用のNvidiaのLinuxドライバー290.*ですが、(初心者の)間違いを犯して、ここで何とか仕様を作成していなかったのではないかと思います。

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

opengl - GLSLVertexShaderは表示なしでコンパイルされます

私は無駄にフォンシェーディングを実装しようとしています。私はシェーダーを少しずつ構築しています(これ自体が問題になる可能性があります)が、現在ここにいます。これにより、結果(ユタティーポット)が黒い背景に白い画像として出力されると思います。頂点シェーダーからライン18を削除すると、これは正しく行われますが、ラインが存在する場合、出力はなく、エラーもありません。何か案は?

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

頂点シェーダー:

normalおよびnormalModelViewが現在設定されていないことにも言及する価値があるかもしれません。以前に有効にしてみたところ、同様の結果が得られました。私の理解では、これらはデフォルト値に設定する必要があります。

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

opengl - OpenGL フラグメント シェーダーの条件ステートメントがトリガーされない

http://arcsynthesis.org/gltut/Positioning/Tut03%20More%20Power%20To%20The%20Shaders.htmlのチュートリアルを進めています。

私は現在、三角形を作成し、それを円方向に動かし、徐々に白から緑に色を変えるレッスンを行っています。完全なサイクルの後、色は白に戻ります。白から緑へと徐々に色を変えようとしています。色の変化の方向を設定する条件ステートメントが true に評価されないように見えるため、変更が有効になりません。

これが私のフラグメントシェーダーです。

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

flash - 異なる Program3D を混在させると、一部のオブジェクトがレンダリングされない

Stage3D を使用していると、予期せぬ事態に遭遇しました。オブジェクト用に 2 つの異なるシェーダー プログラムを作成しました。プログラムの 1 つは、テクスチャ ビットマップと UV データを使用するためのものです。もう 1 つは単純にカラー データを使用します。2 つのオブジェクトは非常に異なります。最終的には、無地の色と単純なレンダリング ロジックを使用していくつかのもの (方向線、ハイライトなど) を表示し、他のもの (実際のオブジェクト、背景など) をミップマップでレンダリングするなどです。前方へ。問題は、これら 2 つの非常に異なるシェーダー プログラムを使用すると、どちらか一方しか機能しないことです。したがって、色のみのオブジェクトがすべて表示されるか、テクスチャのみのオブジェクトがすべて表示されます。もちろん両方出してほしいです。

テクスチャ オブジェクトの agal コードは次のとおりです。

頂点シェーダー:

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

これらのオブジェクトのレンダリング コードは次のようになります。

これは、プレーンな色のオブジェクト(つまり、テクスチャなし)の agal コードです。

頂点シェーダー:

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

これらのオブジェクトのレンダリング コードは次のようになります。

私が理解できない何らかの理由で、さまざまなデータをさまざまなレジスタ インデックス (va) に割り当てているという事実が原因で、レンダリング プロシージャの 1 つが失敗しています。テクスチャ ループで最初にテクスチャ オブジェクトをレンダリングすると、色付きのオブジェクトがすべて消え、その逆も同様です。オブジェクトは最初のフレームで正しく表示されます。しかし、レンダリング ループが 2 回目に再生されるとすぐに、この予期しない動作が発生します。

以下を追加してカラーオブジェクトのレンダリングコードを変更すると、次のことがわかりました。

できます。しかし、これは本当に良い解決策ではありません。プログラムのどこかで別のオブジェクトが n 個の可変レジスタでレンダリングされていることを知りたくないので、別の program3D インスタンスが n 個未満のレジスタを必要とする場合、未使用のすべての va を null に設定する必要があります。また、4 番目の va が必要なオブジェクト (光っているオブジェクトなど) 用に新しいシェーダー プログラムを作成した場合は、戻って他のすべてのシェーダー プログラムを変更し、va4 を null に設定して、すべてがレンダリングされるようにする必要があります。これは本当ですか?確かに私はここで何かが欠けています。すべてのテクスチャ レジスタ (ft) を設定する場合も同じです。

もっと多くの情報を提供できます...

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

opengl-es - 三角形の内側の点の gl_FragColor を計算したのは誰ですか?

頂点シェーダーとフラグメント シェーダーを使用してフォグを生成する場合、一般的な方法の 1 つは、頂点シェーダーで頂点の距離を計算し、フラグメント シェーダーでフォグ混合色を適用することです。

私の質問は、三角形の頂点の距離のみを計算したため、OpenGL は三角形内の点の色をどのように決定するのでしょうか? 自動的に計算される場合、計算を制御する方法はありますか?

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

glsl - GLSL シェーダー - 透明度のあるシャドウ (グラステーブル効果)

画像を約 180° 回転させて黒のグラデーションでオーバーレイできるシェーダーを作成しましたが、背景色として黒を使用する代わりに実際の透明度を作成したいと考えています。

これは私がこれまでに得たものです:

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

opengl - GLSLFragShaderに到達する誤った値

私は単純なOpenGl4プロジェクトであるべきものに取り組んでいます。私が探しているのは、マウスポインタの周りのアルファ値を変更してブレンドすることだけです。いくつかの作業の後、値を変更するために円を取得することができましたが、それは静的であり(マウスと一緒に移動しません)、(0,512)を中心としており、マウスの位置ではありません。私はpassiveMotionFuncを介してマウスの値を送信します。

ここで、MousePosは単なるフロートコンテナです。マウスの位置の値を確認できるように、printステートメントがあります。

私のフラグシェーダーは単純です:

私は絶対にこれに固執しています。FragCoordが台無しになった場合、円が生成されないため、fragシェーダーは更新されたマウス座標を取得していないと想定しています。

編集:main()のglutDisplayとglutPassiveFuncの前にあるinit()関数でブレンディングを設定しました。

EDIT2:これが私のvec2の定義です:

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

actionscript-3 - agal のフラグメント シェーダーで現在のバッファー深度を取得する

フラグメント シェーダーの AGAL で現在のフラグメントの深さを取得することは可能ですか?

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

opengl - 新しい GPU での glAlphaFunc のパフォーマンス

頂点配列のみを使用し、シェーダーを使用しないアプリはほぼ完成しています。glAlphaFunc を使用して多数のポリゴンを描画すると、予想外に遅くなります。これは減価償却されており、ハードウェアでサポートされていないためですか、それともテクスチャ シェーダーとフラグメントを破棄するアルファ テストがあれば同じくらい遅くなるでしょうか?

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

opengl - gl_FragCoord の 1/w 座標は何を表していますか?

gl_FragCoord 変数は、4 つのコンポーネントを格納します: (x, y, z, 1/w )

w座標とは何ですか? なぜ1/wとして保存されるのですか?