Я пытаюсь реализовать спрайты в DX11, но я не знаю, как продолжить их текстурирование.Как эффективно текстурировать несколько спрайтов?
Во-первых, может быть несколько спрайтов, каждый из которых использует другую текстуру (атлас). Но так как я не знаю, сколько спрайтов на экране, я не могу использовать Texture2D[x]
в моем шейдерном коде.
Итак, я посмотрел на использование Texture2DArray
, но тогда мне нужно инициализировать объект D3D11Texture2D
как массив текстур. Мне кажется, что это проблема, потому что в один момент спрайты A, B, C могут быть на экране, а в следующий момент спрайты B, C, D находятся на экране. Поэтому мне пришлось бы создать два объекта D3D11Texture2D
, оба из которых содержат текстуры B и C. И в любом случае, похоже, что текстуры в массивах должны быть одного размера.
И это абсолютная катастрофа. Итак - есть ли что-то, что мне не хватает в массивах? И каковы мои варианты для этого наиболее эффективным способом? Нужно ли устанавливать одну текстуру, рисовать все спрайты, которые используют эту текстуру, и повторять? Потому что это тоже кажется довольно плохим.
Заранее благодарен!
PS. Я знаю, что это может быть преждевременная оптимизация, но я новичок в DX, и мне очень интересно учиться хорошо кодировать/использовать библиотеку. Поэтому я предпочел бы потратить некоторое время, чем написать плохое решение.
Да, я думаю, это то, с чем я буду работать. На самом деле, похоже, это не элегантное решение ... или, по крайней мере, я не нахожу его, если он есть. Благодарю. –