我遵循了一个教程,让GLU tesselator工作。它的工作原理除了新点颜色的插值在创建随机多边形(从内存中读取错误...)后崩溃。
这是我的回调,它崩溃了:
void CALLBACK combineCallback(GLdouble coords[3], GLdouble *vertex_data[4],
GLfloat weight[4], GLdouble **dataOut)
{
GLdouble *vertex;
int i;
vertex = (GLdouble *) malloc(6 * sizeof(GLdouble));
vertex[0] = coords[0];
vertex[1] = coords[1];
vertex[2] = coords[2];
//crashes here
**for (int i = 3; i < 6; i++)
{
vertex[i] = weight[0] * vertex_data[0][i] +
weight[1] * vertex_data[1][i] +
weight[2] * vertex_data[2][i] +
weight[3] * vertex_data[3][i];
}**
//crashes here
*dataOut = vertex;
}
当它崩溃时我看着记忆但却无法准确地触及它的触发器。我遵循了本教程:http://www.flipcode.com/archives/Polygon_Tessellation_In_OpenGL.shtml
由于
答案 0 :(得分:0)
我的猜测是vertex_data是错误的。它是传递给gluTessVertex函数的相同指针。那个指针指向什么?