タグ付けされた質問 「hlsl」

Microsoft Direct3D APIで使用するためにMicrosoftが開発した独自のシェーディング言語。

1
スクリーンスペースデリバティブを使用して、ピクセルシェーダーでパラメトリック形状をアンチエイリアスするにはどうすればよいですか?
でバルブのアルファテスト済み倍率紙、それはアンチエイリアシングを行うための「ピクセル単位のスクリーン空間誘導体」を使用して言及しています。私の理解では、これがあることであるddxとddyHLSLでの組み込み関数? シェーダーでパラメトリックシェイプ(たとえば、円:x²+y²<1)を描画しようとしていますが、このテクニックを使用して、シェイプのエッジピクセルを正しくアンチエイリアスする方法がわかりません。誰かが例を提供できますか? 完全を期すために、私が作成している種類のピクセルシェーダーの例を次に示します。 float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0 { float dist = input.TexCoord.x * input.TexCoord.x + input.TexCoord.y * input.TexCoord.y; if(dist < 1) return float4(0, 0, 0, 1); else return float4(1, 1, 1, 1); }

4
シェーダーでベクトルを別のベクトルで回転する
地形の各ポイントの法線を含む地形サーフェスがあります。 地形に適用する2番目の詳細法線マップがあります。 これらの法線は3スペースです。 両方の法線のY値は 常に正です。 両方の法線のX、Z値は、正/負/ゼロにすることができます。 2番目のベクトル(オレンジ)を回転させる1番目の法線ベクトル(青)は、ほぼ水平にすることができます。 計算が簡単/高速になれば、おおよそのソリューションで大丈夫です。 上の画像では、青い表面法線(1番目の法線マップから)、オレンジ色の法線マップ法線(2番目の法線マップから)、および目的の緑の法線が表示されています。 オレンジ色のベクトルの回転量は、青の法線ベクトルがXZ平面(DirectX座標系のようにYが上にある)と形成する角度とほぼ(または可能であれば正確に)等しくなければなりません。 次に、2番目のシナリオを示します。 上の画像では、青い表面法線がほぼ水平なので、2番目の法線マップがほぼ垂直な表面に適用されているため、オレンジ色の法線マップベクトルはさらに回転しています。 ローテーションはHLSLシェーダーで実装されています。 2番目の青い法線の方向に基づいて1番目のオレンジの法線を回転させる方法を教えてください。 編集:たぶん私は正接だけでなく正接と正接が必要ですか? これが私が正常になる方法です: float4 ComputeNormals(VS_OUTPUT input) : COLOR { float2 uv = input.TexCoord; // top left, left, bottom left, top, bottom, top right, right, bottom right float tl = abs(tex2D(HeightSampler, uv + TexelSize * float2(-1, -1)).x); float …

2
HLSL-2Dでの影の作成
シャドウを作成する方法は、次のテクニックです。http: //www.catalinzima.com/2010/07/my-technique-for-the-shader-based-dynamic-2d-shadows/ しかし、HLSLに質問があります。私が現在行っている方法は、白黒の画像です。ここで、黒は「オブジェクト」を意味し、白は「何もない」を意味します。次に、チュートリアルのように画像を変形します。これはピクセルシェーダーで行いますが、画面にレンダリングするのではなく、テクスチャにレンダリングして、アプリケーションに戻します。次に、これを取得して影を作成し、グラフィックカードに送り返して歪みを元に戻します。影が追加された後、これが戻ってきて、影のステンシルがあります。これを元の画像の上に配置してグラフィックスカードに送り返すと、画面に表示されます。 私にとってこれはたくさんのやり取りです。これを回避する方法はありますか? 私が抱えている問題は、基本的にテクスチャのすべての位置を3回通過し、元のテクスチャの代わりに毎回新しい新しいテクスチャを使用する必要があることです。パスを読み上げてみましたが、正しい方向に進んでいるとは思いません。 助けて?
7 xna  2d  hlsl  gpu 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.