gpt4 book ai didi

c++ - 用一张图像渲染多个不同的纹理? (比如字体)

转载 作者:行者123 更新时间:2023-11-28 03:59:02 25 4
gpt4 key购买 nike

假设我有一个纹理,它是一个包含单独的 20 像素 x 20 像素 block 的文件。在这些 block 中的每一个中都有一个新角色,我想使用这些 block 在屏幕上将不同的角色渲染为纹理。如何使用 directx 渲染纹理文件的单独部分?

最佳答案

您需要渲染一个四边形(两个三角形),并将 UV 坐标映射到您正在渲染的每个字母的纹理中的正确位置。

所以如果你有这样的四边形:

|\ |
| \|

并且您想绘制整个纹理,您将为其分配顶点 UV 坐标:

TopLeft: 0,0
TopRight: 1,0
BottomLeft: 0,1
BottomRight: 1,1

如果您想将 40,60 处的字母分配给该四边形,宽度和高度为 20,纹理宽度和高度为 200,则 UV 坐标为:

TopLeft: 40/200,60/200
TopRight: TopLeft.x + 20/200, TopLeft.y
BottomLeft: TopLeft.x, TopLeft.y + 20/200
BottomRight: TopRight.x, BottomLeft.y

关于c++ - 用一张图像渲染多个不同的纹理? (比如字体),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1841689/

25 4 0
文章推荐: javascript - 将