問題タブ [msaa]
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.
directx-12 - DirectX 12 デスクトップ アプリケーションで HDR と MSAA を組み合わせることは可能ですか?
DirectX 12 用の DirectX ツール キットを使用して、個々の MSAA および HDR チュートリアル サンプルを正常にコンパイルおよび実行できます。ただし、 MSAA コンポーネントと HDR コンポーネントの関連コードを 1 つのGame.cppファイルにまとめると、デバッグ レイヤー メッセージでコンパイルが失敗します。
D3D12 エラー: ID3D12CommandList::ResolveSubresource: 指定された形式は、ソース リソースと互換性がありません。
SDR ディスプレイ モニターに HDR サンプル コードを使用しているため、トーン マッピングを適用する必要があります。呼び出しの順序に関しては、MSAA レンダー ターゲットの解決を試みる前に、HDR シーンを終了する呼び出しを行います。
次に、MSAA 解決ブロックに続いて、トーン マッピング ステートメントを次のように配置します。
(3D シーン上で) 2D スプライトを描画するための記述子ヒープを設定する前にトーン マップを試行すると、次のエラーが発生することがわかりました。
D3D12 エラー: CGraphicsCommandList::SetGraphicsRootDescriptorTable: ハンドル 0x80000253a82ff205 を含む記述子ヒープ (0x0000025428203230:'DescriptorHeap') は、現在設定されている記述子ヒープ 0x0000025428203540:'EffectTextureFactory' とは異なります。[実行エラー #708: SET_DESCRIPTOR_TABLE_INVALID] D3D12:前のメッセージに対して有効になっているBREAK : [エラー実行 #708: SET_DESCRIPTOR_TABLE_INVALID]
HDR と MSAA を組み合わせる試みが初歩的だったことは認めますが、DirectX 12 ではこれらの機能に互換性がない、または相互に排他的である可能性があることを懸念しています。 HDR 用の浮動小数点レンダー ターゲットを使用します。m_msaaブール値をfalseに設定して MSAA コード ブロックをスキップすると、プログラムは HDR で正しく実行およびレンダリングされることに注意してください。
どなたかアドバイスをお待ちしております。プログラムに関する十分なコードやその他の詳細が必要な場合は、喜んで投稿を更新します。
opengl - MSAA で各サンプルの深さを取得する方法は?
フラグメントシェーダーで各サンプルの深度を取得する方法があるかどうか疑問に思っています。サンプルIDとサブピクセル座標を提供できる拡張機能を試しGL_ARB_sample_shading
ましたが、深さのルートが見つかりませんでした。を試してみgl_FragCoord
ましたが、ピクセル内のすべてのサンプル間で一定であり、(?.5,?.5,?,?) のようなものになります。
MSAA では、サンプルごとに深度が計算され、テストされると想定されています。私の質問は、フラグメントシェーダーで利用できるかどうかです。
2 つの深度マップで定義された深度範囲外のフラグメントを破棄したいと考えています。そのため、サンプルごとの正しい破棄を実行するには、各サンプルの深さが必要です。私の深度マップも MSAA で生成され、GL_ARB_texture_multisample
拡張機能を使用して、フラグメント シェーダーでマルチサンプリングされた深度をフェッチします。
ここにサンプルコードがありますが、実装方法がわかりませんgetSampleDepth
。