【发布时间】:2013-05-09 18:47:43
【问题描述】:
在 DirectX 中,我一直在使用以下结构处理带纹理的四边形:
struct TLVERTEX
{
float x;
float y;
float z;
D3DCOLOR colour;
float u;
float v;
};
但是,我想制作更复杂的 2D 网格并对它们进行纹理处理,但我不知道如何在其上对齐纹理。在纹理四边形中,结构体的 u 和 v 属性决定了纹理的方向。
理想情况下,我最终想要做的是要么拥有一个带有纹理的 2D 网格,要么我需要什么新的结构属性,纹理拉伸/操纵以完全适合网格,无论它多么扭曲可能最终看起来。
我想做的另一件事是说有一个带有纹理的 2D 网格,没有拉伸纹理等。我只想对齐它,所以如果纹理不适合网格的形状,位会丢失等。
我尝试过 Google 搜索,但只能找到与 3D 图形相关的内容。虽然我意识到我在技术上是在 3D 空间中工作,但我最终想要做的是创建 2D 图形。如果可能的话,我会很感激从哪里寻找/开始实现这一目标的建议到完成示例的任何答案。
【问题讨论】:
-
老实说,您的问题有点含糊。如果您有一个顶点,您可以在网格中拥有任意数量的顶点/三角形。通常,模型/地图/对象导出器会以您读取的文件格式列出 uv 的位置。
-
是的,但我有一个只有四个顶点的纹理四边形。问题是有四个以上。 u 和 v 属性决定了四边形上纹理的方向,但是当有超过 4 个顶点时如何实现呢?或者你是说 u 和 v 属性可以应用于纹理四边形以外的东西?如果是这样,我将如何在这种情况下使用它们?
标签: c++ directx 2d textures mesh