Graphics 如何将不同的纹理应用于多个基本体?(Direct3D 9)

Graphics 如何将不同的纹理应用于多个基本体?(Direct3D 9),graphics,directx,direct3d,Graphics,Directx,Direct3d,我正在创建一个游戏,在这个游戏中,每一个原始元素都需要自己的纹理,但我似乎不知道怎么做。我在谷歌上搜索过,但它只显示纹理混合的结果。您能告诉我如何在多个非索引基本体上应用多个纹理吗?还是必须对它们进行索引?我认为使用索引可以解决您的问题。地图集基本上是由较小纹理组成的大纹理,如照片拼贴。顶点的UV坐标当然是指大纹理,但如果您知道“小”纹理的位置,这很容易计算。 当然,您必须首先创建atlas纹理。您可以通过在每个DrawPrimitives之前调用SetTexture来更改纹理。您可以通过在每个

我正在创建一个游戏,在这个游戏中,每一个原始元素都需要自己的纹理,但我似乎不知道怎么做。我在谷歌上搜索过,但它只显示纹理混合的结果。您能告诉我如何在多个非索引基本体上应用多个纹理吗?还是必须对它们进行索引?

我认为使用索引可以解决您的问题。地图集基本上是由较小纹理组成的大纹理,如照片拼贴。顶点的UV坐标当然是指大纹理,但如果您知道“小”纹理的位置,这很容易计算。

当然,您必须首先创建atlas纹理。

您可以通过在每个DrawPrimitives之前调用SetTexture来更改纹理。

您可以通过在每个DrawPrimitives之前调用SetTexture来更改纹理。有什么问题吗?谢谢。我以前也试过类似的方法,但我想我只是用错了。请将此作为答案发布,以便我可以将其标记为已接受。根据您拥有的不同纹理的数量,这意味着您将有大量的抽签调用。通常,您会尽量减少绘制调用的次数。好的,谢谢您的建议。U和V值是浮点数,对于我需要的精度来说,它们不够方便。这意味着您有这么多纹理,或者您的纹理太大,以至于浮点精度不允许寻址atlas纹理中的特定像素?浮点不足以寻址atlas纹理中的特定像素。也许是一个小地图集,但不是。是的,我需要很多纹理。