Я помню, когда я увидел первоначальные разговоры о DirectX 12, я подумал, что это устраняет необходимость в атласировании текстур. Однако теперь, когда я просматриваю документацию, это не кажется таким очевидным выводом.
Одна функция, которую я видел, которая могла бы заменить его, — это динамическая неравномерная индексация массивов ресурсов в HLSL:
Texture2D<float4> textures[128];
SamplerState sampler;
textures[NonUniformResourceIndex(textureIndex)].Sample(sampler, uv);
Еще одна потенциальная функция — ExecuteIndirect
, которая кодирует то, что по-прежнему представляет собой набор отдельных вызовов отрисовки и изменения ресурсов, в буфер и сразу же отправляет их в графический процессор в одном вызове процессора.
Оба они устранят ограничения текстурных атласов (невозможность использовать граничные режимы в областях атласа, проблемное мипмэппинг), но мне интересно, будут ли характеристики производительности или ожидается, что они будут аналогичны атласированию текстур, или этот метод все еще оправдан.
Мне также любопытно узнать, распространяется ли ответ на Mantle, Vulkan и Metal.