問題タブ [hlsl]

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

c# - C#でのfrac関数の最速の実装

C#でfrac関数を実装したいのですが(ここではhslの関数のようにhttp://msdn.microsoft.com/en-us/library/bb509603%28VS.85%29.aspx)、非常にプロセッサを集中的に使用するアプリケーション私は可能な限り最高のバージョンが欲しいです。私は次のようなものを使用していました

しかし、精度の問題があります。たとえば、2.6fの場合、単体テストで返されます。

期待値:0.600000024fしかしだった:0.599999905f

値を10進数に変換し、最後にfloatに変換して、次のような正しい結果を取得できることを知っています。

しかし、小数に頼らずにもっと良い方法があるのだろうか...

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

directx - HLSL:空のfxファイル:X3000:予期しないトークン'{'

次のエラーが表示されます。Test.fx(1,1):エラーX3000:構文エラー:予期しないトークン'{'

Text.fxにはこれが含まれています:何もありません。

また、別のテストプロジェクトで正常に機能するエフェクトファイルで試してみました。

結果と同じエラーで。

両方のプロジェクトに同じdxsdkからのdxファイルが含まれています。同じヘッダーとライブラリを含めてリンクします。

テストプロジェクトからロード関数を文字通りコピーしました。テストプロジェクト全体を自分で作成しました。

グーグルはこのようなものには出てこない。私のウェットウェアから短剣を取り除いていただければ幸いです。

アントーン

0 投票する
5 に答える
2931 参照

opengl - シェーダー言語間に大きな違いはありますか?

私は現在GLSLを学んでいます。シェーダー言語の1つを学習したら、他の言語の1つを学習することはそれほど難しくないように思われます。これは、wxWidgetsなどのウィジェットツールセットを学習してからQtに切り替えることに似ていますか?あるウィジェットツールセット内で何が起こっているかを理解すると、別のツールセットは、ある時点で最終的にほぼ同じことを実行するため、同様のことを実行しますか?あるシェーダー言語から別のシェーダー言語に移行したときの経験は何ですか?

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

c++ - directX 11 計算シェーダーを使用して何かを表示するにはどうすればよいですか?

directX 11 計算シェーダーからテクスチャに書き込もうとしています。ただし、これを画面に表示する方法がわかりません。また、これを行うためにどのような種類のバッファを使用する必要があるかもわかりません。

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

reflection.emit - Reflectio.emit で変数を格納する System.AccessViolationException

空き時間にreflection.emitでコンパイラを構築していて、理解できない問題に遭遇しました。

ちょっとしたコンテキストですが、いくつかの型を持つランタイムがあり、そのうちの 1 つは Float2 です。これは、2 つの float 値 (X と Y) を持つ単純なベクター構造体です。値を入れ替えることができるプロパティをいくつか作成しました (hlsl 風)。たとえば、新しい Float2(1.0f, 2.0f) がある場合、(new Float2(1.0f, 2.0f)).YX のようなものを作成すると、Float2(2.0f, 1.0f) が取得されます。 '私の言語でこのタイプを使用しており、現在このケースをテストしています (言語の細かい詳細は省略されています):

新しい呼び出しで float2(1.0, 2.0) を変換し、.yx で Float2 型のプロパティ YX にアクセスしています。

問題は、「System.AccessViolationException : 保護されたメモリの読み取りまたは書き込みを試みました。これは、多くの場合、他のメモリが破損していることを示しています。」というメッセージが表示されることです。このようなものを作成すると、理由がわかりません。

すべてがうまくいきます。

私が生成しているILコードは次のとおりです(問題は「L_0014:stloc.0」で発生すると思いますが、なぜ発生するのかわかりません):

検証の結果:

[IL]: エラー: [オフセット 0x0000000F] [値 'Bifrost.Psl.Compiler.Runtime.Float2' が見つかりました][値 'Bifrost.Psl.Compiler.Runtime.Float2' の予想されるアドレス] スタックに予期しない型があります。

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

c++ - D3D10 HLSL: リフレクションを介してテクスチャをグローバル Texture2D にバインドするにはどうすればよいですか?

わかりましたので、シェーダーのどこかに次のようなステートメントがあると仮定します (DX9 と DX10 の間でシェーダーを共有するためのレガシー サポートを有効にしていることに注意してください)。

問題なくシェーダーをコンパイルできますが、ShaderResourceView を "DiffuseMap" にバインドする方法について少し迷っています。シェーダーを「リフレクト」するとき、定数バッファー内の変数の中で現れると思いました。そうではありません。実際、私はそれをどこにも特定できないようです。では、ShaderResourceView もバインドする必要があるテクスチャの「ステージ」(DX9 用語を使用) をどのように知ることができるでしょうか?

編集:「GetResourceBindingDesc」を使用してサンプラー名を識別できることを発見しました。それが私をまったく助けてくれるかどうかはわかりません:(

Edit2: 同様に、DX9 でも同じであることに気付きませんでした。つまり、サンプラーしか入手できません。

Edit3: 私の Texture2D とサンプラーは次のようになります。

これで、エフェクト フレーム作業で、セマンティック「DiffuseTexture」によって Texture2D を取得できました。その後、ResourceView(D3D10)/Texture(D3D9) を Texture2D に設定できます。残念ながら、沼地の標準シェーダーを使用して「セマンティクス」を処理する方法はないようです (D3D がどのようにそれを行うかを知ることは素晴らしいことですが、D3D11 効果フレームワークを研究しても、これまでのところどこにも行きませんでした。それを読んでいるようですバイナリ、つまりコンパイルされたデータから出て、そこには「DiffuseSampler」しか見えません)。

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

c# - Silverlight: ポリゴンとピクセル シェーダーの組み合わせ

Silverlight は初めてで、ポリゴンと組み合わせたエフェクトで小さな問題が発生しました。シェーダーのレンダリングがエッジの外側ではなく、エッジの内側のみになるようにしたいと考えています。ご覧のとおり、ブラシはこれを行っていますが、シェーダーの出力ではありません。これを修正する解決策を知っている人はいますか?ピクセル シェーダーの出力を取得し、それをポリゴンの塗りつぶしプロパティにプッシュする方法はありますか?

結果: http://img64.imageshack.us/img64/2831/achieve.jpg

これは私のxamlコードです:

これはHLSLの私のシェーダーです

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

xna - XNA+ピクセルシェーダーの問題

基本的な2Dピクセルシェーダーを作成しましたが、機能しないようです。エフェクトをアクティブにして描画すると、画面には何も描画されません。しかし、無効にすると、テクスチャが期待どおりに画面に描画されます。

私の目的は、画面に任意のテクスチャを描画し、このピクセルシェーダーに、範囲などのオーバーレイシステムで使用するために、ピクセルの円形の塊を「刻む」ことができるようにすることです。

これが私のピクセルシェーダーコードです:

SolidCirclesテクニックのASMバージョンは次のとおりです。

これが私のゲームクラスの描画関数の関連部分です。

最後に、位置と半径のリストを作成する私の関数は次のとおりです。

私のテクスチャを作る線:

PositionsおよびRadiiは、それぞれサイズ64のベクトルとフロートのリストです。pixTexは1ピクセルの黒一色のテクスチャです。

シェーダーが機能しないのはなぜですか?

0 投票する
0 に答える
1797 参照

resources - HLSL 2D シェーダー チュートリアルの提案はありますか?

2Dシェーダーを作成するためのリソースを探しています (3D ではないため、頂点シェーダー コードなどへの参照は避けてください)。私はHLSLを使用していますが、良いチュートリアルを見つけるのに苦労しています。

助言がありますか?

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

language-agnostic - ビット演算子なしで右回転

ビット単位の演算を使用せずに、32ビット整数に対して右回転(および左回転)演算を実装するにはどうすればよいですか?

High Level Shader Language(HLSL)では数値に対するビット単位の操作が許可されていないため、これが必要です。また、実装しようとしている特定のシェーダーに対して右回転する必要があります。