問題タブ [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 投票する
5 に答える
8150 参照

opengl - GPU を使用してビデオ ストリームを効率的にレンダリングおよび処理する方法は?

C++、Qt、および OpenGL を使用して、リアルタイムでビデオを操作するためのツールを開発する予定です。フレーム処理にはシェーダーを使用する必要があるため、ビデオ オーバーレイはオプションではありません。現時点では、次の一連の手順を想像しています。

  1. ビデオのデコード (CPU)
  2. 前処理 (オプション、CPU)
  3. ビデオメモリに転送 (DMA を使用する GPU)
  4. 頂点シェーダーとフラグメント シェーダー (GPU) を使用してさらに処理する
  5. レンダリング (GPU)

ここで使用できるエクステンションやテクニックを説明する一般的なアドバイスを探しています。代わりに Direct3D を使用する正当な理由はありますか?

0 投票する
3 に答える
8180 参照

iphone - OpenGL ES 1.x シェーダー

OpenGL ES 1.x (特に iPhone) 用の単純なシェーダーを実装する方法の例を見つけようとしています。これまでシェーダーを使用したことはありませんが、シェーダーが何に使用されるかは理解しています。シミュレーターに単純なシェーダーをロードできるようになったら、そこから取り出して、必要なことを実行できるようになると思います。助けてくれてありがとう、〜エリック

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

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

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

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

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

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

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

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

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

編集:

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

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

wpf - WPFのピクセルシェーダーによる線画効果?

ラインアートエフェクトを作成したいのですが、頂点シェーダーを取得したため、現在WPFでサポートされていません。ピクセルシェーダーでラインアート効果を作成する方法はありますか?何か案が?

ありがとう。

0 投票する
6 に答える
88878 参照

graphics - 頂点シェーダーとピクセル シェーダーとは何ですか?

頂点シェーダーとピクセル シェーダーとは何ですか?

それらの違いは何ですか?どれが最高ですか?

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

direct3d - Direct3D 10 とシェーダー管理

DirectX 10 を使用して 3D アプリケーションをコーディングしていますが、Shadermanagement のタックリングがどうなっているのか疑問に思っています。

アプリケーションの起動時に存在するすべてのシェーダーをプリロードしてから必要に応じて使用するのが最も効果的ですか、それとも数値が高くなった場合にハードウェアのリソースをトレーニングしますか?

また、シェーダー スイッチが最小化されるように、シェーダーごとにレンダリングを注文するのは速度を考慮したものなのだろうかと思います。

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

opengl - GLSLフラグメントシェーダー構文エラー

次の単純なフラグメントシェーダーコードは失敗し、ログに情報のないメッセージが残ります。 ERROR: 0:1: 'gl_Color' : syntax error syntax error

次のものが機能している間:

Lighthouse3Dのチュートリアルでgl_Colorがvec4であると言われているように、これは私の頭を悩ませます。別のvec4に割り当てられないのはなぜですか?

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

opengl - GLSL: テクスチャリング + シェーダーの有効化/無効化

シェーダーから OpenGL の状態にアクセスする方法を探しています。すばらしいリソースであるGLSL クイック リファレンス ガイドは、これに関してはあまり役に立ちませんでした。

私が取り組んでいる例では、次の 2 つのシェーダーがあります。

バーテックス:

断片:

テクスチャが適用されていないポリゴンをレンダリングすると、アルファ値は正しいのに黒が割り当てられます。

vec4(1.0, 1.0, 1.0, 1.0)1、変数 'texel' が無効になっているときにテクスチャからサンプリングするのではなく、変数 'texel' が設定されるようにするには、どのような条件チェックを設定できますGL_TEXTURE_2Dか?

2、テクスチャリングモードごとに異なるシェーダーを作成し、glEnable/ glDisable( GL_TEXTURE_2D) を使用する場所でシェーダーを切り替えると、処理が速くなりますか?

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

c++ - Cg シェーダーのスタック

私のエンジンでは、頂点/ピクセル シェーダー ファイルのペアから Cg シェーダーを読み込みます。シェーダーをスタックして結合できるようにしたいと考えています (ライティング + マテリアルなど)。シェーダーを個別の関数に分割し、それらから単一のシェーダー スクリプト文字列を作成する以外に、Cg で異なるシェーダーをスタックする良い方法を知っていますか?