問題タブ [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.

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

xna - Screen Space Ambient Occlusion XNA 3.1 の例の SSAOeffect.fx が XNA 4.0 で機能しない

Screen Space Ambient Occlusion の例を XNA 3.1 から XNA 4.0 に変換しようとしています。シェーダー ファイルのこの奇妙な問題を除いて、ソースのすべての問題を修正しました。Shawn Hargreaves のブログのガイドに従って、シェーダーに関するすべての明らかな問題を調べて修正しましたが、コンパイルすると、512 の命令スロット制限をはるかに超える 620 の命令スロットを使用します。これが XNA 3.1 では機能したのに、XNA 4.0 では機能しなかったのはなぜでしょうか?

ファイルの 3.1 コピーからの変更は非常に最小限で、いくつかの関数の名前を変更しただけです。以下は、現在の形式の完全なシェーダー ソースです。これがコンパイルされる命令スロットの数を減らすための助けに非常に感謝します.


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

opengl - OpenGL GLSL SSAO の実装

ここにある R5 デモに基づいて、スクリーン スペース アンビエント オクルージョン (SSAO) を実装しようとしています: http://blog.nextrevision.com/?p=76

実際、私は彼らの SSAO - リニア シェーダーを自分の小さなエンジンに適合させようとしています。

1) ビュー スペース サーフェス法線とリニア深度値を計算します。 次のシェーダーを使用して RGBA テクスチャに保存します。

バーテックス:

断片:

線形深度の計算については、http: //www.gamerendering.com/2008/09/28/linear-depth-texture/を参照しました。

それが正しいか?テクスチャは正しいように見えますが、間違っているのでしょうか?

ここに画像の説明を入力

2) 実際の SSAO 実装: 前述のように、オリジナルはここにあります: http://blog.nextrevision.com/?p=76

またはそれ以上: pastebin http://pastebin.com/KaGEYexK

元のテクスチャとは対照的に、テクスチャの 1 つが RGB としての法線とアルファとしての Linear Depht の両方を格納するため、2 つの入力テクスチャのみを使用します。

私の 2 番目のテクスチャ、ランダムな通常のテクスチャは次のようになります: http://www.gamerendering.com/wp-content/uploads/noise.png

私はほぼ同じ実装を使用していますが、私の結果は間違っています。

詳細に入る前に、まずいくつかの質問をクリアしたいと思います。

1) ssao シェーダは、projectionMatrix とその逆行列を使用します。

これは、正射投影を介して画面に位置合わせされたクワッドにレンダリングされる後処理効果であるため、projectionMatrix は正射行列です。正しいか間違っていますか?

2) 2 つの別々のテクスチャではなく、結合された法線テクスチャと深度テクスチャを持つ。

私の意見では、これが R5 の実装と私の実装の試みの最大の違いです。これは大きな問題ではないと思いますが、深度テクスチャが異なるため、問題が発生する可能性が最も高くなります。

R5_clipRange は次のようになっていることに注意してください

オリジナル:

コードスニペットを理解していないことを認めざるを得ません。私の深さは私のテクスチャのアルファに保存されており、これを行うだけで十分だと思いました

正しいか間違っていますか?

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

ssao - Horde3d にアンビエント オクルージョン (SSAO) を実装するにはどうすればよいですか?

ssao 効果に関するブログ記事をいくつか読んだことがありますが、これまでのところ、GPU プログラミング全体の初心者としてどこから始めればよいかわかりません。誰でも私を助けることができますか?

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

three.js - Three.jsとssao

three.jsでssaoを使用することができません。webgl_postprocessing_dof.htmlの例に従おうとしました:これが関数initPostprocessingです

およびレンダリング関数:

多分私は何かを誤解しました。

0 投票する
2 に答える
2530 参照

three.js - SSAO [Three.js]を使用して、1つだけで複数のシーンをレンダリングする

Three.jsを使った継続的な実験で、乗り越えられないような別の壁にぶつかりました。

SSAO後処理効果のある前景シーンの下に、背景シーン(床が含まれている)をレンダリングしようとしています。背景シーンには後処理を適用しないでください。

私は(マスクなどを使用して)複数のアプローチを試しましたが、これをクラックすることはできません。私が見ている主な問題は、SSAOシーンの背景が不透明であるため、背景シーンが表示されていないことです。その透明性の問題が解決されたとしても、物事が期待どおりに機能することを私はまだ確信していません。

SSAOこれは、後処理なしで物事がどのように見えるべきかです:http: //jsfiddle.net/uJbPe/1/

そして、これは、SSAO後処理を有効にした状態で現在どのように見えるかです:http://jsfiddle.net/7hfdC/6/

私が間違っていることについて何か考えはありますか?

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

three.js - three.js SSAO シェーダーの使用方法

SSAO 後処理シェーダーを使用してシーンをレンダリングしようとしています。エラーはありませんが、SSAO パスを使用した場合と使用しない場合でレンダリングされたシーンに違いは見られません。次のようにレンダラーを初期化します。

render 関数では、次のようにシーンをレンダリングします。

前に言ったように、すべて正常に動作しているように見えますが、画面に AO 効果が表示されません。たぶん、間違ったパラメータ値を使用しているだけですか? depthTarget をシーンにレンダリングすることで、深度パスが更新されていることを確認しました。effectSSAO.uniforms.onlyAO.value をオンにすると、実際のシーン (テクスチャを含む) のかなり「フラットな」茶色がかったレンダリングが得られますが、AO はまだありません。次に何を試せばよいかアドバイスをいただけますか?

0 投票する
4 に答える
572 参照

three.js - MacBook Pro (Retina) でのみ Three.js で SSAO を使用したアーティファクト

現在、Three.js の例で提供されている SSAO シェーダーを使用しています。MacBook Pro Retina 以外のほとんどのマシンで完璧に動作します。MBP は、数週間前までは SSAO を完全にレンダリングしていました (おそらく MBP のファームウェア アップグレード後)。

現状では、MBP は次のように画面全体に大量のちらつきアーティファクトを含む SSAO シーンをレンダリングします。

シーンコードはこちら ここに画像の説明を入力

ここで見つけたシーン ここに画像の説明を入力

この同じコードは、他のマシンでも完全にレンダリングされます。この問題は他の MBP でも見られたので、単一の問題ではないと確信しています。

ファームウェアの更新は別として、この MBP が動作してからアーティファクトが表示されるまでの間、私はこの MBP を何も変更していません (コードは同じです)。

SSAO 効果を削除すると、シーンは完全にレンダリングされます。

何か案は?

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

google-chrome - SSAO - エッジのみをハイライトする理由

私は現在SSAOを実装しようとしています。しかし、私の現在の結果は、実際の ssao というよりもエッジの強調表示のように見えます。結果をまだぼかしていないことに注意してください。しかし、この小さな線をぼかすと、ほとんど消えてしまうと思います。半径などを変えて遊んでみましたが、何も変わりませんでした。:(

これが私の線形深度テクスチャ (far が 1000 であることに注意してください。これが非常に暗い理由です) と通常のテクスチャです。

線形深度と法線

現在の結果

最後に、ここに私の ssao シェーダーがあります: http://jsfiddle.net/Peters_Stuff/Bqx8X/

そして、これが私のサンプルカーネルを生成する方法です:

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

opengl - カメラアングルで劇的に変化するSSAO

私はOpenGLでSSAOに取り組んできました。このチュートリアルのSSAO をOpenGL で遅延レンダラーに実装することにしました。残念ながら、私はそれをうまく機能させることができませんでした。SSAOで暗くなる部分は、カメラの位置によって大きく変化します。カメラが動いたときに SSAO の出力に多少の変動があることは理解していますが、これは SSAO の他の実装で観察したよりもはるかに大きいです。

これがフラグメントシェーダーコードです

positionFromDepth()機能:

そしてocclude()機能:

positionFromDepth()完全に機能するレンダラーの照明ステージに同じコードを使用することを除いて、関数に問題がある可能性があると感じています(私は思います)。私はこのコードを何千回も調べましたが、間違っていると思われるものは何も見つかりませんでした。biasradiusintenisty、のさまざまな値を試しましたscaleが、問題はないようです。法線または位置が間違っているのではないかと心配しているので、それらのスクリーン ショットをいくつか示します。

再構築された位置: ここに画像の説明を入力 通常のバッファ: ここに画像の説明を入力

私はオクルージョン バッファの画像を含めますが、問題はカメラが動いている場合にのみ明らかになり、画像は表示に役立ちません。

ここで何が問題なのか誰にもわかりませんか?