本文整理汇总了C++中VertexArray::loadTextureCoords方法的典型用法代码示例。如果您正苦于以下问题:C++ VertexArray::loadTextureCoords方法的具体用法?C++ VertexArray::loadTextureCoords怎么用?C++ VertexArray::loadTextureCoords使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VertexArray
的用法示例。
在下文中一共展示了VertexArray::loadTextureCoords方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getNumFaces
VertexArray* Lib3dsLoader::buildVao()
{
VertexArray* vao = 0;
Lib3dsVector* verts = 0;
Lib3dsVector* norms = 0;
Lib3dsTexel* tex = 0;
Lib3dsMesh* mesh = 0;
//bool hasTexture = false; // TODO
unsigned int numFaces = 0;
unsigned int doneFaces = 0;
numFaces = getNumFaces();
verts = new Lib3dsVector[numFaces * 3];
norms = new Lib3dsVector[numFaces * 3];
tex = new Lib3dsTexel[numFaces * 3];
mesh = model->meshes;
// For all meshes, calculate normals and extract vertices.
// Taken from http://www.donkerdump.nl/node/207
while(mesh != 0)
{
lib3ds_mesh_calculate_normals(mesh, &norms[doneFaces*3]);
// For all faces
for(unsigned int i = 0; i < mesh->faces; i++)
{
Lib3dsFace* face = &mesh->faceL[i];
for(unsigned int j = 0; j < 3; j++)
{
memcpy(&verts[doneFaces * 3 + j],
mesh->pointL[face->points[j]].pos,
sizeof(Lib3dsVector));
if(mesh->texels) {
memcpy(&tex[doneFaces *3 + j],
mesh->texelL[face->points[j]],
sizeof(Lib3dsTexel));
}
}
doneFaces++;
}
mesh = mesh->next;
}
vao = new VertexArray();
vao->loadVertices(verts, numFaces);
vao->loadNormals(norms, numFaces);
vao->loadTextureCoords(tex, numFaces);
delete[] verts;
delete[] norms;
delete[] tex;
return vao;
}