首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用一张图片渲染多个不同的纹理?(例如字体)

用一张图片渲染多个不同的纹理?(例如字体)
EN

Stack Overflow用户
提问于 2009-12-04 01:53:02
回答 3查看 211关注 0票数 0

假设我有一个纹理,它是一个单独的20px*20px块的文件。在这些块中的每一个都是一个新字符,我想使用这些块在屏幕上渲染不同的字符作为纹理。如何使用directx渲染纹理文件的不同部分?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-04 02:49:49

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

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

代码语言:javascript
复制
|\ |
| \|

并且您希望绘制指定顶点UV坐标的整个纹理:

代码语言:javascript
复制
TopLeft: 0,0
TopRight: 1,0
BottomLeft: 0,1
BottomRight: 1,1

如果要将字母位置为40,60,宽度和高度为20,纹理宽度和高度为200的字母指定给该四边形,则UV坐标将为:

代码语言:javascript
复制
TopLeft: 40/200,60/200
TopRight: TopLeft.x + 20/200, TopLeft.y
BottomLeft: TopLeft.x, TopLeft.y + 20/200
BottomRight: TopRight.x, BottomLeft.y
票数 1
EN

Stack Overflow用户

发布于 2009-12-04 02:05:58

纹理坐标已规格化,因此纹理的左上角为(0,0),右下角为(1,1)。找出代表字体纹理中每个字形的边界框的纹理坐标。如果要将某个字形渲染到四边形上,请将该四边形的每个顶点的UV(纹理坐标)设置为要渲染的字形的纹理坐标。这是很难解释没有图片,所以如果你需要更多的信息,谷歌“纹理映射”。

票数 1
EN

Stack Overflow用户

发布于 2009-12-04 01:56:25

绘制2tris(即一个四边形)与UV,只围绕你想要的角色。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1841689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档