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

1
SSAO実装で望ましい結果が得られない
遅延レンダリングを実装した後、このチュートリアルを使用してSSAO実装を試してみました。残念ながら、SSAOのように見えるものは何も得られません。私の結果を以下で見ることができます。 奇妙なパターンが形成されており、オクルージョンシェーディングが必要な場所(つまり、オブジェクト間および地面)がないことがわかります。私が実装したシェーダーは次のとおりです。 #VS #version 330 core uniform mat4 invProjMatrix; layout(location = 0) in vec3 in_Position; layout(location = 2) in vec2 in_TexCoord; noperspective out vec2 pass_TexCoord; smooth out vec3 viewRay; void main(void){ pass_TexCoord = in_TexCoord; viewRay = (invProjMatrix * vec4(in_Position, 1.0)).xyz; gl_Position = vec4(in_Position, 1.0); } #FS #version 330 core uniform …

1
奇妙なSSAO効果(ビュースペース内の位置/通常のテクスチャが間違っていますか?)
主にホセマリアメンデスのgamedev.netチュートリアルに基づいて、ゲームエンジン(DirectX 11、C ++)でSSAO効果を作成しようとしています。残念ながら、テクスチャ作成の問題(法線、位置)はカバーしていません。 最初のパスでは通常のテクスチャを作成し、次に深度バッファもテクスチャとして読み取ります(2番目のパスでシェーダーリソースビューを作成し、深度バッファのバインドを解除するため可能です)。どちらもビュースペースにある必要があります。 ぼかしはまだ実装していません(後で実行します)が、現在いくつかの問題があります。テクスチャの計算が間違っているか、テクスチャからデータを変換する方法が間違っているためではなく、数式やパラメータの値が間違っているためと考えられます。 何がうまくいかなかったかについての私の推測: (ビュー空間での)通常のテクスチャ計算-しかし、それは見えます[OK]を、 位置テクスチャの計算(ビュー空間で)と位置から深度への変換 逆投影行列計算、 何かが正規化も飽和もされていないはずですが、 パラメータ(ただし、出力にそのような影響を与えるべきではありません)? 私のテクスチャ 拡散(textures[0]、ここでは実際には使用されません、比較のためにのみ): 通常(textures[1]、ビュー空間にある必要があります): 私はそれらを最初のパスの頂点シェーダーで取得します(ピクセルシェーダーはちょうどですoutput.normal = input.normal): output.normal = float4(mul(input.normal, (float3x3)world), 1); output.normal = float4(mul(output.normal, (float3x3)view), 1); 深度バッファテクスチャ(textures[2]、値の差が小さいため何も見にくいですが、問題ないと思います): それを表示するために私は使用します: float depth = textures[2].Sample(ObjSamplerState, textureCoordinates).r; depth = (depth + 1.0f) / 2.0f; color.rgb = float3(depth, depth, depth); 外部プログラムでのコントラスト補正後(私はシェーダーを使用しませんが、目には良いです): 深度バッファーの説明: //create depth …
8 c++  directx  directx11  hlsl  ssao 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.