gpt4 book ai didi

c++ - 我怎样才能有效地纹理化多个 Sprite ?

转载 作者:太空宇宙 更新时间:2023-11-04 13:55:17 31 4
gpt4 key购买 nike

我正在尝试在 DX11 中实现 Sprite ,但我不知道如何对它们进行纹理处理。

首先,可能有多个 Sprite ,每个 Sprite 使用不同的纹理(图集)。但是因为我不知道屏幕上有多少 Sprite ,所以我不能在我的着色器代码中使用 Texture2D[x]

所以我考虑使用 Texture2DArray,但随后我必须将 D3D11Texture2D 对象本身初始化为纹理数组。这在我看来是个问题,因为某一时刻, Sprite A、B、C 可能在屏幕上,而下一时刻 Sprite B、C、D 又在屏幕上。所以我必须创建两个 D3D11Texture2D 对象,它们都包含 B 和 C 纹理。无论如何,看起来数组中的纹理必须具有相同的大小......

那绝对是一场灾难。那么 - 关于数组我有什么遗漏吗?我以最有效的方式执行此操作的选项是什么?我是否必须设置一个纹理,绘制所有使用该纹理的 Sprite ,然后重复?因为那看起来也很糟糕。

提前致谢!

附言。我知道这可能是过早的优化,但我是 DX 的新手,学习很好地编写代码/很好地使用库对我来说很有趣。所以我宁愿花一些时间也不愿写出糟糕的解决方案。

最佳答案

当我们绘制 Sprite 时,一个非常常见的优化是合并通常同时出现在屏幕上的 Sprite 的纹理。所以你可以在一个 Draw Call 中绘制它们(你只需要改变你的 texcoords)。

关于c++ - 我怎样才能有效地纹理化多个 Sprite ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21763877/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com