Когда я пытаюсь отобразить треугольные полосы в моей карте высот, они работают, когда читается необработанный файл, однако я не могу заставить их отображаться в окне. Что я делаю неправильно?
bruteForce *b = new bruteForce();
void render(void)
{
b->loadHeightField("height128.raw", 128);
b->setScalingFactor(1.0f, 1.0f, 1.0f);
b->render();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH| GLUT_DOUBLE |GLUT_RGBA);
glutInitWindowSize(800, 600);
glutInitWindowPosition(500, 500);
glutCreateWindow("Hello World!");
glEnable(GL_DEPTH_TEST);
glutDisplayFunc(render);
glutMainLoop();
return 1;
}
Визуализировать вызов (я думаю, может быть, я здесь что-то не так делаю?)
void bruteForce::render()
{
unsigned char hcolor; //color of the height
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glLoadIdentity();
//loop through z axis
for (int z = 0; z < getSize() - 1; z++)
{
//loop through the x axis
glBegin(GL_TRIANGLE_STRIP);
for (int x = 0; x < getSize(); x++)
{
//create the first point in the triangle strip
hcolor = getHeightColor(x, z);
glColor3ub(hcolor, hcolor, hcolor);
glVertex3f((float)x * scaleX, getHeight(x, z), (float)z * scaleZ);
//create the next point in the triangle strip
hcolor = getHeightColor(x, z + 1);
glColor3ub(hcolor, hcolor, hcolor);
glVertex3f((float)x * scaleX, getHeight(x, z + 1), (float)(z + 1) * scaleZ);
}
glEnd();
}
glFlush();
glutSwapBuffers();
}