問題タブ [deferred-rendering]

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 投票する
1 に答える
681 参照

xna - 遅延レンダリング-個々の効果を持つモデルのレンダリング

XNAでの遅延レンダリングに関するいくつかのチュートリアル(Catalin ZimaTheCansin )を読みました。それらはすべて、モデルのレンダリングに遅延レンダリングパイプラインを使用しているようです。これは素晴らしいですが、通常のマップと鏡面反射マップのみを扱います。

私の考えが正しければ、たとえばグロー効果のあるモデルをレンダリングしたいが、グローシェーダーがある場合、遅延レンダリングパイプラインはこのシェーダーについて認識しませんか?

上記の質問が正しければ、遅延レンダリングパイプラインでグローを使用してモデルをレンダリングしてから、グローシェーダーを使用して再レンダリングする必要がありますか?

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

opengl - 遅延レンダリングと移動ポイントライト

同じ問題についてネット上にいくつかのスレッドがあることは知っていますが、実装が異なるため、これらのスレッドからの助けは得られません。

ビュースペースの色、法線、奥行きをテクスチャにレンダリングしています。次に、テクスチャをフルスクリーンクワッドにバインドし、ライティングを計算します。指向性ライトは正常に機能しているようですが、ポイントライトはカメラと一緒に動いています。

対応するシェーダーコードを共有します:

ライティングステップ頂点シェーダー

ライティングステップフラグメントシェーダー

ユニフォームとしてシェーダーにライト属性を送信します。

viewmatrixはカメラマトリックスであり、modelmatrixはここでは単なるアイデンティティです。

なぜポイントライトがモデルではなくカメラで変換されているのですか?

どんな提案でも大歓迎です!

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

opengl - テクスチャ内の初期化されていない/予約されていないGPUメモリ、OpenGL

(これは実際にはgamedevからのクロスポストですが、皆さんも役立つかもしれないと思いました!)

編集:オーバーレイの意味について詳しく説明しました。少し眠った後、glTexImage2Dへのポインタとしてnullを使用しているため、glGenerateMipmapsの呼び出しは役に立たないことがわかりました。

OpenGL 3.3、Ubuntu 11.04、nVidiaドライバー280.13、GeForceGT240。

遅延シェーダーを作成していて、画面の下部にある小さなオーバーレイにGバッファーを表示したいと考えています。この場合のオーバーレイは、z検定がなく、テクスチャスクリーンで整列されたクワッドであり、最後にレンダリングされることを意味します。

フルウィンドウでGバッファ(FBOテクスチャ)を(一度に1つずつ)レンダリングすると、正しく表示されます。これらのオーバーレイにレンダリングすると、ゴミが発生します(静的干渉としてランダムなGPUメモリのように見えますが、実行ごとに異なり、場合によっては鮮明な画像になります)。

たとえばファイルから別のテクスチャを作成すると、オーバーレイにゴミが表示されないため、コードは問題ありません。誰かが理由を説明できますか?GバッファのテクスチャにglGenerateMipmapを使用しました。

これでは十分な情報ではないかもしれませんが、これから始めます。関連情報についてはお問い合わせください。問題はFBOレンダリングとミップマップに関連している可能性がありますか?確かに私のコードは予約されていない/初期化されていないメモリを表示したいのですが、理由はわかりません。 以下の4つのテクスチャには、ゴミ箱のデータが含まれています。


フルウィンドウの緑色の画像は、GPUメモリが太いためにGPUメモリを節約するための解像度(256 * 256)での、照明段階からの現在の結果です。また、マテリアルシェーダー(Gバッファーの生成)では、「out vec4fragment [3]」を使用しており、テクスチャはさまざまな内部形式になっています。それは問題になる可能性がありますか?

PS。ライトは(-30,0,0)と(30,0,0)にありますが、「より近い」ようです。それは精度の問題になる可能性がありますか?法線にはGL_RGBA16F、位置にはGL_RGBA32F、深さにはGL_DEPTH_COMPONENT24、アルベドにはGL_RGBAを使用します(はい、膨大な無駄ですが、後で最適化します)。

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

3d - 遅延レンダリングを利用する見栄えの良い3DゲームまたはTechdemoはありますか?

遅延レンダリング/シェーディングのトピックに関する調査作業のために、例を作成できるオープンソースの3Dゲーム、ベンチマーク、またはTechdemoを探しています。もちろん、ゲーム/デモが視覚的に魅力的で、可能な限り現代のゲームグラフィックに近いものであればよいでしょう。

Doom3を検討しましたが、残念ながら、リリースされたバージョンは遅延レンダリングを使用していません。

遅延レンダリングをサポートするオープンソースのゲームエンジンはありますが、実際のゲーム/コンテンツを作成するには手間がかかりすぎるため、エンジンだけでなく、すでにコンテンツがあり見栄えの良いものを探しています。

誰かが何かを提案できますか?

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

opengl - 遅延シェーディングを使用して2Dスプライトをレンダリングする方法

遅延シェーディングを使用すると、深度、法線などの情報を保持するためのいくつかのバッファがあります。

最終段階では、それらを「組み合わせ」て照明を処理する必要がありますが、GUI用に2Dスプライトをレンダリングする必要がある場合、どのように実行されますか?

そのためにフォワードレンダリングにフォールバックする必要がありますか?または、そのために別のバッファーを使用する必要がありますか?

また、既存のフォワードレンダラーに遅延レンダリングを実装するには何が必要ですか?それはコードを置き換えるのでしょうか、それともその上に構築されるので、より多くのバッファーと他のシェーダーだけが必要になるのでしょうか?(モバイルデバイス用のフォワードレンダラーがまだ必要なため)

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

java - 遅延レンダリングでの光の蓄積

フォワード レンダラーを遅延レンダラーに変換することを検討していますが、見つからない (または概念化できない) 問題が 1 つあります。それは、シーン内のすべてのライトが蓄積される方法です。フォワード レンダリングでは、すべてのライトをシェーダーにアップロードしますが、さまざまなオブジェクトのサイズのために 4 つに制限されていました。蓄積されたライト情報を最終的なコンポジット シェーダーに取得するにはどうすればよいですか? 各シーン オブジェクトのレンダリング方法と同様の方法で各ライトをレンダリングする必要がありますか? 各ポイント ライトを球体としてレンダリングする例をいくつか見てきましたが、この方法でどのように減衰できるかわかりません。

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

jquery - 要素がユーザーに表示されたときに発生するイベントは?

私はたくさんの画像があるページを持っています。ユーザーがまだ画像がある場所までスクロールしていない場合、ブラウザーにそれらすべてをロードさせることは意味がありません。img含まれているものが表示されるときに発生するイベントハンドラーに要素をバインドすることを考えdivました(要素がビューポートにあるようにユーザーが十分にスクロールしたという意味で)。このハンドラーはsrc属性を書き換え、画像が読み込まれます。

私が探しているイベントは何ですか?

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

directx-11 - 放射照度ボリュームとタイル化されたディファード シェーディング

DirectX 11 のレンダラーを使用して、コンピューティング シェーダーでディファード シェーディングとタイル ライト カリングを使用しています。30 ~ 35 FPS の安定したフレームレートで 1024 ~ 2048 個のポイント ライトを実行できます。ただし、グローバル イルミネーションはありません。放射照度ボリューム (Crysis3 で使用) はより良い解決策ですか? シーンに 2000 の放射照度ボリュームを持ち、30 FPS を持つことはできますか? それとも、現在の方法に固執して、グローバル イルミネーションを忘れるべきでしょうか?

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

macos - ステンシル バッファをテクスチャに視覚化する

遅延レンダラーで使用するテクスチャにステンシル バッファを入れようとしています。

他のカラーと深度のアタッチメントを取得してglFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, textures[color1], 0);いますが、結果は正しいです。 ステンシル バッファーを使用しない正しいレンダリング

しかし、ステンシル バッファをテクスチャにアタッチしようとすると glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT ,GL_TEXTURE_2D, textures[stencil], 0);、FBO がバッファをクリアしていないかのように、文字化けした結果が得られます。

正しくない、文字化けしたレンダリング

何が問題なのかわからない。私の疑いは、ステンシル テクスチャの設定に問題があるということです...

セットアップでエラー コードが表示されないため、問題が何であるかがわかりません。

編集:多分私はこれを正しくやっていません。ステンシル バッファをテクスチャに書き込む方法を知っている人がいれば、別のコードを記述してもかまいません。機能する方法が必要です。

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

c# - XNA Deferred Shader、BasicEffect の置き換え

XNA 4.0 プロジェクトにディファード シェーディングを実装しました。つまり、すべてのオブジェクトを同じシェーダー " RenderGBuffer.fx " で開始する必要があります。カスタム コンテンツ プロセッサを使用して次のことを行うにはどうすればよいですか。

  1. デフォルトではテクスチャを読み込まない (手動で行いたい)
  2. BasicEffect の代わりに" RenderGBuffer.fx " をデフォルトのシェーダとして使用します

以下、これまでの作業です。