問題タブ [ssao]
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.
opengl - スケーラブル アンビエント オブスキュランスのレンダリングの問題
この SAO アルゴリズムを実装しようとしています。
次の結果が得られます。
鼻が壁の上にある理由がわかりません。Z バッファの問題のようです。
ここに私の入力値があります:
深度バッファーのミップマップの使用を無効にすることを除いて、元のシェーダーを変更せずに使用しています。
私の深度バッファ(別のシーンで、申し訳ありません):
opengl - SSAO をグローバル ライトおよびローカル ライトと組み合わせる
最近、エンジンに SSAO を実装しました (ディファード シェーディング) が、SSAO とグローバル ライトおよびローカル ライト (ポイント ライト) をどのように組み合わせるかについて非常に不安です。
私はこれを行う必要があります:
またはこれ:
xna - ワールド空間の代わりに通常のビュー空間を計算する
これについてお役に立てれば幸いです。私は現在遅延レンダラーを使用しており、SSAO を実装しようとしていますが、それにはビュー空間法線が必要であり、現在ワールド空間法線を持っています。それらを変換する方法を見つけようとしていますが、スタックし続けています。
これは私の頂点シェーダーの主要部分であり、instanceTransform
インスタンス化されたモデルにも同じコードが使用されるため、ワールド マトリックスまたはインスタンス マトリックスの転置のいずれかです。
ピクセル シェーダーでの通常の計算は次のとおりです。
助けていただけますか?
glsl - Vulkan を使用したフラグメント シェーダーでのテクスチャ フェッチが遅い
カーネル サイズ 64 の SSAO シェーダーを実行しています。
SSAO フラグメント シェーダー:
samplerposition テクスチャには の形式VK_FORMAT_R16G16B16A16_SFLOAT
があり、フラグを付けてアップロードされVK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
ます。
nvidia K1100Mグラフィックカードを搭載したラップトップを使用しています。コードを renderdoc で実行すると、このシェーダーには114 ミリ秒かかります。を 1に変更すると、 1 mskernelSize
かかります。
このテクスチャのフェッチ時間は正常ですか? それとも、どこかで何か間違った設定をしている可能性がありますか?
レイアウト遷移がうまくいかなかったようで、VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
代わりにテクスチャが入っていVK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
ます。
c++ - SSAO シェーディングがカメラで奇妙に動く (gbuffer の計算が間違っている)
このバージョンの ssao をこのチュートリアルで実装しようとしています:
http://www.learnopengl.com/#!Advanced-Lighting/SSAO
レンダー テクスチャの最終的な結果は次のとおりです。
カメラを動かすと影がついてくる
カメラである種の行列乗算が欠けているようです。
コード
gBuffer頂点
gBuffer フラグメント
SSAO頂点
SSAOフラグメント
私は周りを読んで、誰かが同様の問題を抱えていて、ビューマトリックスをssaoシェーダーに渡し、sampleDepthを掛けたのを見ました:
しかし、それは事態を悪化させるだけのようです。
影がカメラと共に移動するのを見ることができる上からの別のビューを次に示します。
カメラを特定の方法で配置すると、物事が整列します
c++ - OpenGL Computing Normals and TBN Matrix from Depth Buffer (SSAO 実装)
このチュートリアルに従って、OpenGL で SSAO を実装しています: Jhon Chapman SSAO
基本的に、説明されている手法では、フラグメントの法線に沿った向きの Hemispheric カーネルを使用します。次に、サンプルのビュー スペースの z 位置が、そのスクリーン スペースの深度バッファー値と比較されます。深度バッファの値が大きい場合は、サンプルがジオメトリで終了したことを意味するため、このフラグメントを遮る必要があります。
この手法の目的は、オブジェクトの平面がグレー表示される従来の実装アーティファクトを取り除くことです。
私は2つの小さな違いがある同じ実装を持っています
- カーネルを回転させるためにノイズ テクスチャを使用していないので、バンディング アーティファクトがありますが、今のところ問題ありません。
- ピクセル単位の法線を含むバッファーにアクセスできないため、深度バッファーのみを使用して法線と TBN マトリックスを計算する必要があります。
アルゴリズムは正常に機能しているようです。フラグメントがオクルードされているのがわかりますが、まだ顔がグレー表示されています... IMO TBN マトリックスを計算する方法から来ています。法線は問題ないように見えますが、カーネルが適切に位置合わせされていないようで、サンプルが顔で終わるため、何かが間違っているに違いありません。
スクリーンショットは、8 サンプルのカーネルと半径 .1 のものです。1 つ目は SSAO パスの結果のみで、2 つ目は生成された法線のデバッグ レンダーです。
これは、Normal および TBN Matrix を計算する関数のコードです。
そしてSSAOシェーダー
更新 1
TBN 計算関数のこのバリエーションでは、同じ結果が得られます