glTexCoordPointer:u和v的含义?

时间:2013-05-27 13:54:25

标签: opengl

我使用openctm来保存3d数据。在这里,我可以保存纹理坐标。

稍后以这种方式加载纹理:

const CTMfloat * texCoords = ctm.GetFloatArray(CTM_UV_MAP_1);
for(CTMuint i = 0; i < numVertices; ++ i)
{
  aMesh->mTexCoords[i].u = texCoords[i * 2];
  aMesh->mTexCoords[i].v = texCoords[i * 2 + 1];
}

texCoords是浮点数组(一个点2个浮点数)。 之后,纹理以这种方式使用:

glTexCoordPointer(2, GL_FLOAT, 0, &aMesh->mTexCoords[0]);

我的问题是我需要生成texCoords数组。你和v是什么意思?是像素位置吗?我需要将它们缩放1/255吗?

1 个答案:

答案 0 :(得分:0)

虽然与编程无关,但本教程对 UV坐标是一个很好的介绍:http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/UV_Map_Basics

通常,您不会以编程方式“创建”或“生成”UV贴图。您让3D建模艺术家在建模过程中创建它们。