我正在尝试在 DX11 中实现精灵,但我不知道如何对它们进行纹理处理。
首先,可能有多个精灵,每个精灵使用不同的纹理(图集)。但是因为我不知道屏幕上有多少精灵,所以我不能Texture2D[x]
在我的着色器代码中使用。
所以我查看了 using Texture2DArray
,但随后我必须将D3D11Texture2D
对象本身初始化为纹理数组。这在我看来是个问题,因为在某一时刻,精灵 A、B、C 可能会出现在屏幕上,而下一时刻精灵 B、C、D 会出现在屏幕上。所以我必须创建两个D3D11Texture2D
对象,都包含 B 和 C 纹理。无论如何,看起来数组中的纹理必须具有相同的大小..
这绝对是一场灾难。那么 - 我对数组有什么遗漏吗?我有什么选择以最有效的方式做到这一点?我是否必须设置一个纹理,绘制所有使用该纹理的精灵,然后重复?因为那看起来也很糟糕。
提前致谢!
PS。我知道这可能是过早的优化,但我是 DX 新手,学习如何编写好代码/很好地使用库对我来说很有趣。所以我宁愿花一些时间也不愿写一个糟糕的解决方案。