【发布时间】:2016-11-25 08:17:33
【问题描述】:
我记得当我看到关于 DirectX 12 的最初讨论时,我认为它消除了对纹理图集的需要。但是,现在我正在浏览文档,似乎没有那么明显的结论。
我见过的一个可以替代它的功能是 HLSL 中资源数组的动态非统一索引:
Texture2D<float4> textures[128];
SamplerState sampler;
textures[NonUniformResourceIndex(textureIndex)].Sample(sampler, uv);
另一个潜在功能是ExecuteIndirect,它将仍然是一堆单独的绘图和资源更改调用编码到缓冲区,并在单个 CPU 调用中立即将其提交给 GPU。
这两种方法都可以解决纹理图集的局限性(无法在图集区域上使用边框模式,有问题的 mipmapping),但我想知道性能特征或预期是否类似于纹理图集,或者该技术是否仍然存在有道理。
我也很想知道答案是否适用于 Mantle、Vulkan 和 Metal。
【问题讨论】: