我试图在DX11中实现精灵,但我不知道如何继续纹理它们。如何有效地纹理多个精灵?
首先,可能会有多个精灵,每个精灵使用不同的纹理(图集)。但是因为我不知道屏幕上有多少个精灵,所以我不能在我的着色器代码中使用Texture2D[x]
。
所以我看着使用Texture2DArray
,但然后我必须初始化D3D11Texture2D
对象本身作为一个纹理数组。在我看来,这似乎是一个问题,因为在某个时刻,精灵A,B,C可能在屏幕上,下一个精灵B,C,D在屏幕上。那么我将不得不创建两个D3D11Texture2D
对象,它们都包含B和C纹理。无论如何,它看起来像阵列纹理必须是相同的大小..
而这是一个绝对的灾难。所以 - 我有没有关于数组的东西?我有什么选择以最有效的方式做到这一点?我是否必须设置单个纹理,绘制所有使用该纹理的精灵并重复?因为那看起来也很糟糕。
提前致谢!
PS。我知道这可能是过早的优化,但我对DX很陌生,并且学习良好编码/使用库对我来说很有意思。所以我宁愿花一些时间,而不是写一个不好的解决方案。
是的,我想这就是我要去的。真的似乎没有一个优雅的解决方案,或者至少我没有找到它,如果有的话。谢谢。 –