如果加载的模型的顶点值大于1,在使用opengl绘制时可能会出现问题。解决方法是将顶点值进行归一化,确保它们的值在0到1之间。可以使用以下代码示例来将顶点值归一化:
float maxVal = 0.f;
for (unsigned int i = 0; i < numVertices; i++)
{
if (vertices[i].x > maxVal)
maxVal = vertices[i].x;
if (vertices[i].y > maxVal)
maxVal = vertices[i].y;
if (vertices[i].z > maxVal)
maxVal = vertices[i].z;
}
for (unsigned int i = 0; i < numVertices; i++)
{
vertices[i].x /= maxVal;
vertices[i].y /= maxVal;
vertices[i].z /= maxVal;
}
这段代码首先找到xyz中最大的值,然后将每个顶点的xyz值除以这个最大值,以便将它们归一化到0到1之间。这样,在使用opengl绘制时就可以正确地渲染模型。