問題タブ [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.
c++ - フラグメントシェーダーを使用したテクセルのカウント
フラグメントシェーダーを使用して生成された2つのテクスチャがあります。ある色の強度を超えている各テクスチャのテクセルの数を数えることができるようにしたいと思います。
これはどのように行うことができますか?
私の最初の考えは、テクスチャを生成する前に、フラグメントシェーダーを使用してこれらのテクセルをカウントすることです。ただし、これにはある種のグローバルカウンターが必要になります。テクスチャは他のテクスチャから作成されているため、オクルージョンクエリを使用できません。OpenGL2.1を使用しています。
opengl - OpenGL シェーディング言語の後方互換性
GLSL バージョンが 130 未満の場合、GLSL シェーダーがコンパイルできないことに気付きました。
下位互換性のあるシェーダー ソースを持つための最も重要な要素は何ですか? 完全な後方互換性は望んでいませんが、GLSL が 130 未満の GPU で単純な (前方互換性のある) シェーダーを実行するための主なガイドラインを理解したいと思います。
もちろん、問題はプリプロセッサで解決できます
しかし、おそらく私が無視している多くの問題があります。
c++ - 頂点シェーダーを使用するときに補間されていないフラットな色を取得する方法
これを達成する方法はありますか (OpenGL 2.1)? このように線を引くと
望ましい結果 (エッジごとに異なる色) が得られますが、シェーダーでフラグメント値を計算できるようにしたいと考えています。シェーダー プログラムをセットアップした後に同じことを行うと、常に頂点間の色が補間されます。これを回避する方法はありますか?(クワッドを使用して同じ結果が得られればさらに良いでしょう)
ありがとう
c - テクスチャで HSL 変換を実行するにはどうすればよいですか?
OpenGL テクスチャがあり、テクスチャをレンダリングする前に HSL 変更を実行する必要がある場合、聞いたところによると、シェーダーが必要です。問題は、シェーダーについて何も知らないことです。私がどこを見る必要があるか知っている人はいますか?
テクスチャと 3 つの値、色相シフト (度単位)、彩度と明度の乗数 (0 ~ 2) を渡すことができる関数を作成し、その前にこれらの変換をテクスチャに適用するシェーダーを呼び出します。レンダリングします。インターフェイスは次のようになります。
procedure HSLTransform(texture: GLuint; hShift: integer; sMult, lMult: GLfloat);
しかし、ルーチンの中に何が入っているのかわかりません。HSL/RGB 変換に関連する基本的な計算は理解していますが、シェーダーの書き方や適用方法がわかりません。誰かが私を正しい方向に向けることができますか? Delphi の例が望ましいですが、必要に応じて C を読むこともできます。
opengl - フラグメントの現在の色を取得するにはどうすればよいですか?
私は GLSL のシェーダーについて頭を悩ませようとしています。いくつかの有用なリソースとチュートリアルを見つけましたが、基本的で些細であるべき何かの壁にぶつかり続けています。現在のフラグメント?
と言って最終的な色を設定しますgl_FragColor = whateverが、どうやらそれは出力専用の値です。計算を実行できるように、入力の元の色をどのように取得しますか? それはどこかの変数にある必要がありますが、その名前を知っている人がいるとしたら、これまでに出くわしたチュートリアルやドキュメントに記録されていないようで、私を壁に追いやっています.
c# - HLSL、異なる Texture2D ダウンスケーリング アルゴリズムを使用したプログラム ピクセル シェーダー
いくつかの画像補間アルゴリズムを HLSL コードに移植しようとしています。
問題は、現在の位置を制御できず、ピクセルを介した実際のループの「内部」部分しか制御できないため、ピクセルシェーダーのプログラミングには異なるアプローチが必要になることです。
私はほぼ一日中グーグルで検索してきましたが、ループで使用されるスケーリングアルゴリズムを備えたオープンソースライブラリは見つかりませんでした。いくつかのメソッドを移植できるライブラリはありますか?
http://www.codeproject.com/KB/GDI-plus/imgresizoutperfgdiplus.aspxを見つけましたが、問題に対する彼のアプローチを本当に理解していません。それを移植するのは面倒です...
ウィキペディアは数学的なアプローチを示しています。私の質問は次のとおりです。単純なスケーリング アルゴリズムを含む、移植が容易なグラフィック オープン ソース ライブラリはどこにありますか? もちろん、そのようなライブラリが存在する場合でも。
iphone - テクスチャを使用した OpenGL ES 2.0 レンダリング
iPhone SDK には、一連の (Vertex & Fragment) GLSL シェーダーで ES 2.0 を使用して、さまざまな色のボックスをレンダリングする例があります。この API を使用して単純なテクスチャをレンダリングする方法の例はありますか? 私は基本的にクワッドを取り、その上にテクスチャを描きたいと思っています。
古い ES 1.1 API はもうまったく機能しないので、始めるには少し助けが必要です。ほとんどのシェーダー リファレンスは主に高度なシェーディング トピックについて述べていますが、バインドされたテクスチャを使用するようにシェーダーに指示する方法と、UV を参照する方法についてはよくわかりません。
opengl - フラグメント シェーダーを使用したブロック フィルター
私はApple の OpenGL Shader Builder (Nvidia の fx composer に似たツールですが、より単純なツール) を使用してこのチュートリアルに従っていました。
フィルターを簡単に適用できましたが、正しく機能したかどうかはわかりません (もしそうなら、どうすれば出力を改善できますか)。たとえば、ぼかしフィルター: OpenGL 自体がテクスチャに対して何らかの画像処理を行うため、元の画像よりも高い解像度で表示される場合、OpenGL によって既にぼかしられています。次に、ぼやけた部分は処理されていない部分よりも明るいです。これは意味がないと思います。これは、直接の近隣からピクセルを取得するだけだからです。これは、
よくわかりません:ピクセルは浮動小数点値を使用してインデックス付けされていますか??
ぼやけた画像 http://img218.imageshack.us/img218/6468/blurzt.png
編集:使用した正確なコードを添付するのを忘れました:
フラグメントシェーダー
頂点シェーダー
shader - HLSL シェーダー間でデータを渡す/既存のカラー値を読み取るにはどうすればよいですか?
2 つの HLSL ps2.0 シェーダーがあります。簡略化すると、次のとおりです。
シェーダー 1
- テクスチャを読み取ります
- このテクスチャに基づいてカラー値を出力します
シェーダー 2
- 問題: Shader 1 から色を読み込む必要がある
- 入力色の関数である最終的な色を出力します
(1 つのシェーダーの最大頂点シェーダー出力に達したため、それらは異なるシェーダーである必要があります)
私の問題は、Shader 2 が既存のフラグメント/ピクセルの色にアクセスする方法を理解できないことです。
HLSL でこれらのことを行う方法を知っていれば、私の問題は解決します。
- 既存のピクセルの色を読み取る (これは可能ではないと思います)
- Shader 1 の結果を Shader 2 に float4 として渡す
- Shader 1 の結果をテクスチャとしてメモリにレンダリングし、Shader 2 にそれを読み込ませます。
math - 頂点の従法線は、その法線と接線の間の交差ですか?
グラフィックプログラミングのコンテキストで従法線が何であるかを調べようとしていますが、手短に言えば、あるサイトで、従法線が法線と接線の間の外積として計算されているのを見ました (つまり、クロス(法線、接線) )、これは従法線を計算する正しい方法ですか?