問題タブ [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.
xna - 遅延レンダリング-個々の効果を持つモデルのレンダリング
XNAでの遅延レンダリングに関するいくつかのチュートリアル(Catalin Zima、TheCansin )を読みました。それらはすべて、モデルのレンダリングに遅延レンダリングパイプラインを使用しているようです。これは素晴らしいですが、通常のマップと鏡面反射マップのみを扱います。
私の考えが正しければ、たとえばグロー効果のあるモデルをレンダリングしたいが、グローシェーダーがある場合、遅延レンダリングパイプラインはこのシェーダーについて認識しませんか?
上記の質問が正しければ、遅延レンダリングパイプラインでグローを使用してモデルをレンダリングしてから、グローシェーダーを使用して再レンダリングする必要がありますか?
opengl - 遅延レンダリングと移動ポイントライト
同じ問題についてネット上にいくつかのスレッドがあることは知っていますが、実装が異なるため、これらのスレッドからの助けは得られません。
ビュースペースの色、法線、奥行きをテクスチャにレンダリングしています。次に、テクスチャをフルスクリーンクワッドにバインドし、ライティングを計算します。指向性ライトは正常に機能しているようですが、ポイントライトはカメラと一緒に動いています。
対応するシェーダーコードを共有します:
ライティングステップ頂点シェーダー
ライティングステップフラグメントシェーダー
ユニフォームとしてシェーダーにライト属性を送信します。
viewmatrixはカメラマトリックスであり、modelmatrixはここでは単なるアイデンティティです。
なぜポイントライトがモデルではなくカメラで変換されているのですか?
どんな提案でも大歓迎です!
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レンダリングとミップマップに関連している可能性がありますか?確かに私のコードは予約されていない/初期化されていないメモリを表示したいのですが、理由はわかりません。
フルウィンドウの緑色の画像は、GPUメモリが太いためにGPUメモリを節約するための解像度(256 * 256)での、照明段階からの現在の結果です。また、マテリアルシェーダー(Gバッファーの生成)では、「out vec4fragment [3]」を使用しており、テクスチャはさまざまな内部形式になっています。それは問題になる可能性がありますか?
PS。ライトは(-30,0,0)と(30,0,0)にありますが、「より近い」ようです。それは精度の問題になる可能性がありますか?法線にはGL_RGBA16F、位置にはGL_RGBA32F、深さにはGL_DEPTH_COMPONENT24、アルベドにはGL_RGBAを使用します(はい、膨大な無駄ですが、後で最適化します)。
3d - 遅延レンダリングを利用する見栄えの良い3DゲームまたはTechdemoはありますか?
遅延レンダリング/シェーディングのトピックに関する調査作業のために、例を作成できるオープンソースの3Dゲーム、ベンチマーク、またはTechdemoを探しています。もちろん、ゲーム/デモが視覚的に魅力的で、可能な限り現代のゲームグラフィックに近いものであればよいでしょう。
Doom3を検討しましたが、残念ながら、リリースされたバージョンは遅延レンダリングを使用していません。
遅延レンダリングをサポートするオープンソースのゲームエンジンはありますが、実際のゲーム/コンテンツを作成するには手間がかかりすぎるため、エンジンだけでなく、すでにコンテンツがあり見栄えの良いものを探しています。
誰かが何かを提案できますか?
opengl - 遅延シェーディングを使用して2Dスプライトをレンダリングする方法
遅延シェーディングを使用すると、深度、法線などの情報を保持するためのいくつかのバッファがあります。
最終段階では、それらを「組み合わせ」て照明を処理する必要がありますが、GUI用に2Dスプライトをレンダリングする必要がある場合、どのように実行されますか?
そのためにフォワードレンダリングにフォールバックする必要がありますか?または、そのために別のバッファーを使用する必要がありますか?
また、既存のフォワードレンダラーに遅延レンダリングを実装するには何が必要ですか?それはコードを置き換えるのでしょうか、それともその上に構築されるので、より多くのバッファーと他のシェーダーだけが必要になるのでしょうか?(モバイルデバイス用のフォワードレンダラーがまだ必要なため)
java - 遅延レンダリングでの光の蓄積
フォワード レンダラーを遅延レンダラーに変換することを検討していますが、見つからない (または概念化できない) 問題が 1 つあります。それは、シーン内のすべてのライトが蓄積される方法です。フォワード レンダリングでは、すべてのライトをシェーダーにアップロードしますが、さまざまなオブジェクトのサイズのために 4 つに制限されていました。蓄積されたライト情報を最終的なコンポジット シェーダーに取得するにはどうすればよいですか? 各シーン オブジェクトのレンダリング方法と同様の方法で各ライトをレンダリングする必要がありますか? 各ポイント ライトを球体としてレンダリングする例をいくつか見てきましたが、この方法でどのように減衰できるかわかりません。
jquery - 要素がユーザーに表示されたときに発生するイベントは?
私はたくさんの画像があるページを持っています。ユーザーがまだ画像がある場所までスクロールしていない場合、ブラウザーにそれらすべてをロードさせることは意味がありません。img
含まれているものが表示されるときに発生するイベントハンドラーに要素をバインドすることを考えdiv
ました(要素がビューポートにあるようにユーザーが十分にスクロールしたという意味で)。このハンドラーはsrc
属性を書き換え、画像が読み込まれます。
私が探しているイベントは何ですか?
directx-11 - 放射照度ボリュームとタイル化されたディファード シェーディング
DirectX 11 のレンダラーを使用して、コンピューティング シェーダーでディファード シェーディングとタイル ライト カリングを使用しています。30 ~ 35 FPS の安定したフレームレートで 1024 ~ 2048 個のポイント ライトを実行できます。ただし、グローバル イルミネーションはありません。放射照度ボリューム (Crysis3 で使用) はより良い解決策ですか? シーンに 2000 の放射照度ボリュームを持ち、30 FPS を持つことはできますか? それとも、現在の方法に固執して、グローバル イルミネーションを忘れるべきでしょうか?
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 がバッファをクリアしていないかのように、文字化けした結果が得られます。
何が問題なのかわからない。私の疑いは、ステンシル テクスチャの設定に問題があるということです...
セットアップでエラー コードが表示されないため、問題が何であるかがわかりません。
編集:多分私はこれを正しくやっていません。ステンシル バッファをテクスチャに書き込む方法を知っている人がいれば、別のコードを記述してもかまいません。機能する方法が必要です。
c# - XNA Deferred Shader、BasicEffect の置き換え
XNA 4.0 プロジェクトにディファード シェーディングを実装しました。つまり、すべてのオブジェクトを同じシェーダー " RenderGBuffer.fx " で開始する必要があります。カスタム コンテンツ プロセッサを使用して次のことを行うにはどうすればよいですか。
- デフォルトではテクスチャを読み込まない (手動で行いたい)
- BasicEffect の代わりに" RenderGBuffer.fx " をデフォルトのシェーダとして使用します
以下、これまでの作業です。