DirectX 12の最初の会話を見たときに、テクスチャアトラスの必要性がなくなったと思いました。しかし、今や私が文書を読むことになった今、明らかな結論にはならない。私はそれはそれはHLSL内のリソースの配列の動的な不均一なインデックスで置き換えることができます見てきましたDirectX 12はテクスチャアトラス処理の必要性を排除しますか?
一つの特徴:
Texture2D<float4> textures[128];
SamplerState sampler;
textures[NonUniformResourceIndex(textureIndex)].Sample(sampler, uv);
別の潜在的な機能はまだ別々の引き分けと資源の束であるかをコードし、ExecuteIndirect
です1回のCPUコールでバッファへの呼び出しを変更し、一度にGPUに送信します。
どちらもテクスチャアトラス(アトラス領域のボーダモードを使用できない、問題のあるミップマッピング)の制限に対処しますが、性能特性がテクスチャアトラスに似ていると思われますか、まだ正当化された。
また、回答がマントル、バルカン、メタルに一般化されているかどうか不思議です。
これはすべて非常に良い情報です!私の使用例は、スプライトシートを使用せずにスプライトを描画するようなものなので、テクスチャインデックスは異なる対の三角形(四角形)のピクセル間で分岐する可能性があります。私はスプライトがごくわずかではない場合、ATIでさえ、非常に少数のワープが発散することになると思います。 – Trillian
その場合、非一様なインデックスタグを使用する必要がありますが、ほとんどの波は単一のインデックスを参照し、シェーダのオーバーヘッドは無視してください。パーティクルで大量のオーバードローを行っている場合は、フルスクリーンの計算パスで手動でラスタライズすることもできます。 – galop1n