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

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


1
AAAゲームはどのようにトーンマッピングシェーダーでこのテクスチャを使用しますか?
Battlefield 3とSaint's Row the Thirdが、最終的なトーンマッピング段階でこのテクスチャを使用していることがわかりました。このテクスチャの使用方法に関する記事へのリンクを誰でも共有できますか? 更新:ネット上にカラーグレーディングの実装例がほとんどないので、XNA 4.0の手早く汚れたサンプルを投稿します。これは、GPUでデフォルトの2Dカラーマップをゼロから構築し、そのコンテンツをCPUの3Dテクスチャにコピーし、回答で提供されている記事のシェーダーコードで実際の色補正を実行するだけです。 XNA 4.0色補正サンプル これで何ができるか知りたい場合は、こちらをご覧ください。 http://the-witness.net/news/2012/08/fun-with-in-engine-color-grading/ 要するに著者は、デフォルトのカラーグレーディングパレットを上に置いて通常のゲーム内画像のスクリーンショットを作成し、Photoshopでスクリーンショットのカラー補正を実行し、変形したカラー補正パレットをエンジンにカットアンドコピーして、その色補正は、ゲーム内のすべてのシーンに自動的に適用されます。
43 textures  hlsl 

5
ゲームの俳優は自分自身を描く責任がありますか?
私はゲーム開発は初めてですが、プログラミングは初めてです。 私は(再び)JavaScriptのcanvas要素を使用してPongタイプのゲームで遊んでいます。 Paddle次のプロパティを持つオブジェクトを作成しました... width height x y colour 次のPongようなプロパティを持つオブジェクトもあります... width height backgroundColour draw()。 draw()現在、メソッドはをリセットしてcanvasおり、そこで問題が発生しました。 必要があるPaddleオブジェクトが持つdraw()その描画方法は責任、または必要があるdraw()のPongオブジェクトがその役者を描くための責任がある(私が間違ってる場合、私はそれが正しい用語であると仮定し、私を修正してください)。 私はのためにそれがadvantagousだろうと考え出しPaddle自体を描画するために、私は2つのオブジェクトをインスタンス化するように、PlayerとEnemy。それはでなかった場合Pongのdraw()、私は二度同様のコードを記述する必要があると思います。 ここでのベストプラクティスは何ですか? ありがとう。

2
HLSLで広角/魚眼レンズを作成するにはどうすればよいですか?
さまざまな四肢の広角レンズの効果を達成するために実装する必要がある概念は何ですか? コンテンツパイプラインのさまざまな段階を参照する擬似コードと具体的な説明、およびソースコードからHLSLに渡す必要がある情報は非常に役立ちます。 また、広角レンズの実装と魚眼レンズの違いは何ですか?

12
HLSLの学習に役立つリソースは何ですか?[閉まっている]
HLSLを最後に学ぼうとしたとき、いくつかのシェーダーを作成し、自分がやっていることをほとんど理解しましたが、暗闇の中でつまずいているように感じました。私が学んだことのほとんどは、物事をあまりよく説明していないさまざまなブログ投稿から得たものです。 また、MSDNのドキュメントは、関数リファレンスのようです。 HLSLを書くだけでなく、シェーダーを書くためのテクニックをどこで学ぶことができますか?
28 shaders  hlsl 

3
XNAで2Dスプライトをマスクする最良の方法は?
現在、いくつかのスプライトをマスクしようとしています。言葉で説明するのではなく、いくつかのサンプル写真を作成しました。 マスクする領域(白) さて、トリミングする必要がある赤いスプライト。 最終結果。 今、私はXNAでこれを達成するために2つのことができることを知っています。 ステンシルバッファを使用します。 ピクセルシェーダーを使用します。 私はピクセルシェーダーを試してみましたが、これは本質的にこれを行いました: float4 main(float2 texCoord : TEXCOORD0) : COLOR0 { float4 tex = tex2D(BaseTexture, texCoord); float4 bitMask = tex2D(MaskTexture, texCoord); if (bitMask.a > 0) { return float4(tex.r, tex.g, tex.b, tex.a); } else { return float4(0, 0, 0, 0); } } これは画像を切り取るように見えますが(画像が動き始めると正しくありませんが)、私の問題は画像が絶えず動いている(静的ではない)ので、この切り抜きは動的である必要があります。 シェーダーコードを変更して、その位置を考慮する方法はありますか? あるいは、ステンシルバッファーの使用について読んだことがありますが、ほとんどのサンプルはレンダーターゲットの使用に依存しているようです。(私はすでにゲームの残りの部分で3または4を使用していますが、その上にもう1つ追加すると過剰に思えます) 私が見つけたRendertargetsを使用しない唯一のチュートリアルは、Shawn …
24 xna  2d  hlsl  masking 

7
モダンシェーダーブック?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 シェーダーについて学ぶことに興味があります。シェーダーとは何ですか、いつ/何のために、そしてどのように使用するのか。(具体的には、水とブルームの効果に興味がありますが、シェーダーについては0に近いことを知っているので、一般的な紹介が必要です)。 数年前の本をたくさん見たので、それらがまだ当てはまるかどうかわかりません。現時点ではXNA 4.0をターゲットにしています(Shader Model 4.0のHLSLシェーダーを意味すると思います)が、一般にDirectX 11とOpenGL 4をターゲットとするものは役立つと思います。

2
モデルの周りの奇妙な白い輪郭
私はXNA 4でゲームに取り組んでおり、最近このガイドに従って遅延シェーディングの実装に切り替えました。奇妙な白い輪郭が私のモデルに今現れており、私はこれを引き起こしているものがわからない。通常のレンダーターゲットやデプスレンダーターゲットの精度が不足しているのではないかと思っていましたが、32(カラー)ではなく64ビット(Rgba64)に増やしても役に立ちませんでした。また、鏡面反射の計算に問題があるかもしれないと思ったので、鏡面反射光を0に設定しようとしましたが、それも助けにはなりませんでした。PIXでピクセルをデバッグすると、拡散値がそのピクセルに対してほぼ白として計算されていることがわかります。何か案は?以下に問題の写真を含めました。フルサイズで見た方が簡単です。 ピクセルシェーダー: float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0 { input.ScreenPosition.xy /= input.ScreenPosition.w; float2 texCoord = 0.5f * (float2(input.ScreenPosition.x, -input.ScreenPosition.y) + 1) - halfPixel; float4 normalData = tex2D(normalSampler, texCoord); //Transform normal back into [-1, 1] range float3 normal = normalize(2.0f * normalData.xyz - 1.0f); float specularPower = normalData.a; float specularHardness = …
19 xna  hlsl 

1
油性/汚染水をレンダリングしていますか?
そこにあるシェーダーウィザードには、これに似た油性/汚染された水の効果を実現する方法のアイデアがあります。 理想的には、水は均一に油性ではなく、代わりに油が何らかのソース(化学プラントからの汚染排水など)から生成され、水域全体に拡散する可能性があります。この部分の私の考えは、「オイルマップ」を水面上の各ポイントでオイルの密度を決定する2Dテクスチャとして保持することです。拡散し、その速度で水の速度とともに自然に移動します(動的波の波動粒子シミュレーションがあり、水面の泡についても同様のことを既に行っています)。ただし、オイルが水と同じ速度で移動しない可能性があるため、物理的にどの程度正しいかはわかりません。 そして、私はそれらのすべての奇抜な色を作る方法がわかりません:-)。考え?

3
このような照明効果を作成するにはどうすればよいですか?
これは私が今まで見た中で最も美しい2Dライティングであり、このようなライティングも実行したいと思います。どうすればいいのですか? 物理学やパーティクルのシミュレーション方法は気にしません。照明についてのみ知りたいです。 参照用のビデオを次に示します。 http://www.youtube.com/watch?v=BIQRhOFkvQY http://www.youtube.com/watch?v=tnTYXPuecMs http://www.youtube.com/watch?v=rhC_jVM8IYU http://www.youtube.com/watch?v=_Aw5BdjWqqU または、Polluted Planet 2をここからダウンロードできます。
18 xna  lighting  hlsl 

1
ddx(hlsl)は実際に何をしますか?
私は少し混乱しています。公式ドキュメント(http://msdn.microsoft.com/en-us/library/windows/desktop/bb509588(v=vs.85).aspx)は、ddx(input)が入力の部分的な派生物であると述べています「スクリーン空間のx座標」に。 私の計算は問題ありませんが、入力が何から来ているのかをどのように判断できますか?それに関数を渡した場合、それは何をするか想像できますが、数値の導関数は常にゼロです...? それは単なるスケーリングですか?たとえば、これはこの距離でサイズの10分の1にスケーリングされるため、1/10を返しますか?しかし、その後、それは入力を必要としません... 誰かが実際に何が起こっているのか簡単に説明できますか?
17 hlsl 

4
HDRはどのように機能しますか?
HDRとは何か、どのように機能するかを理解しようとしています。 私は基本的な概念を理解しており、D3D / hlslを使用してどのように実装されるかについて少し理解しています。 しかし、まだかなり霧がかかっています。 地球のテクスチャと、星として機能する頂点の小さなポイントリストで球体をレンダリングするとします。これをHDRでどのようにレンダリングしますか。 以下に、私が混乱しているいくつかのことを示します。 シェーダーでは値が[0、255]に制限され、[0、1]に固定されるため、テクスチャに基本的な画像形式だけを使用することはできません。バックバッファについても同じことが言えます。フォーマットは浮動小数点フォーマットである必要がありますか? 関係する他のステップは何ですか?確かに、浮動小数点形式を使用してレンダーターゲットにレンダーし、後処理としてブルームを適用する以上のことが必要ですか?(出力はとにかく8bppになると考えています) 基本的に、HDRの手順は何ですか?どのように機能しますか?このプロセス以外に、プロセスを説明する優れた論文や記事を見つけることはできないようですが、基本を少し読み飛ばしているようで、混乱を招きます。
17 c++  hlsl  directx11  hdr 

7
パーリンノイズによって作られた世界のスポーンユニット?
Perlinノイズベースのゲームで出会ったいくつかの問題があります。以下の添付のスクリーンショットをご覧ください。 あなたが見る白い領域は壁であり、黒い領域は歩行可能です。中央の三角形がプレーヤーです。 このゲームでは、物理学を実装して、テクスチャ(白または黒のピクセル)に描画し、それをCPUから取得します。 しかし、今は別の問題に直面しています。画面の端で、ユニット(またはクリープと呼びます)が常に出現するようにします。ここでのポイントは、最終的なゲームでは、プレイヤーがそこまで見ることができない「戦争の霧」があるということです。 画面の端のピクセルをスキャンして、その物理テクスチャが黒かどうかを確認し、そこにランダムに物を生成できると考えました。ただし、スクリーンショットをもう一度見ると、(左上隅に)クリープが生成されないようにする例があります(そこからプレイヤーに到達できないため) 。 どういうわけかGPUにこれらのスポーンスポットを決定させることは可能ですか、それとも別の方法ですか?画面の端にある提案されたポイントとプレイヤーの間にベクトルを作成し、10ボクセルごとにそれをたどって、そこにユニットをスポーンする前に壁が衝突するかどうかを確認することを考えました。 ただし、上記の提案されたソリューションは、CPUに負荷がかかりすぎる可能性があります。 この問題に関する提案はありますか? 注1 スポーンされるユニットについては、これらのユニットがプレイヤーに向かって走る際の壁の衝突を避けるために、いかなる形態の経路探索も使用したくありません。したがって、ユニットは画面の端に、プレイヤーに向かって直線的に歩いても壁と衝突しない場所に出現する必要があります。
16 xna  path-finding  hlsl  gpgpu 

5
DirectX 10シェーダーのifステートメントを避けますか?
ステートメントの両方の部分が実行され、間違ったものがドロップされるため、シェーダーでステートメントを回避する必要があると聞いたことがあります(パフォーマンスに悪影響を及ぼします)。 DirectX 10ではまだ問題ですか?誰かが私に言った、その中で正しいブランチだけが実行されるだろう。 説明のために、私はコードを持っています: float y1 = 5; float y2 = 6; float b1 = 2; float b2 = 3; if(x>0.5){ x = 10 * y1 + b1; }else{ x = 10 * y2 + b2; } より高速にする他の方法はありますか? もしそうなら、どうやって? 両方のブランチは似ていますが、唯一の違いは「定数」の値です(y1, y2, b1, b2ピクセルシェーダーのすべてのピクセルで同じです)。

1
「Life is Strange」のようなアウトラインシェーダーを作成するにはどうすればよいですか?
人生のようなスケッチシェーダーを奇妙にしたい。 シェーダーには2つの部分があります。 1.アニメーションの破線 2.騒々しい輪郭 ノイズの多いアウトラインを作成する方法を知りたいですか? オブジェクトの概要を見る 最初に、入ってくる頂点データをコピーしてアウトラインを作成し、法線方向に合わせてスケーリングしてからカルバックしましたが、アウトラインはオブジェクトの内部で移動することがあるため、イメージ効果のようなものだと思います。とにかく、誰かがこのシェーダーを実装するのを手伝ってくれれば感謝します:) 私が試したもの エッジ検出を使用し、頂点シェーダーでアニメーション化しましたが、これは上記のgifのようには良くありません。
13 unity  shaders  hlsl 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.