rendered paste bodyvoid Terrain :: createGLList(){ if(glList != 0) glDeleteLists(glList, 1); glList = glGenLists(1); glNewList(glList, GL_COMPILE); if(isTextured == true) { glGenTextures(1, &glTexture); glBindTexture(GL_TEXTURE_2D, glTexture); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); gluBuild2DMipmaps(GL_TEXTURE_2D, 3, width, height, GL_RGB, GL_UNSIGNED_BYTE,texture); glBindTexture(GL_TEXTURE_2D, glTexture); glEnable(GL_TEXTURE_2D); } glPushMatrix(); glScalef(1.0, 1.0, heightScale); glBegin(GL_TRIANGLES); for(uint j(0); j < height - 1; j++) { for(uint i(0); i < width - 1; i++) { vec3 & p1 = getCoords(i , j ); vec3 & p2 = getCoords(i + 1, j ); vec3 & p3 = getCoords(i + 1, j + 1); vec3 & p4 = getCoords(i , j + 1); vec3 & n1 = getNormal(i , j ); vec3 & n2 = getNormal(i + 1, j ); vec3 & n3 = getNormal(i + 1, j + 1); vec3 & n4 = getNormal(i , j + 1); glNormal3fv(n1); if(isTextured == true) glTexCoord2f(i / (float)(width - 1), j / (float)(height - 1)); glVertex3fv(p1); glNormal3fv(n2); if(isTextured == true) glTexCoord2f(i / (float)(width - 1), (j + 1) / (float)(height - 1)); glVertex3fv(p2); glNormal3fv(n3); if(isTextured == true) glTexCoord2f((i + 1) / (float)(width - 1), (j + 1) / (float)(height - 1)); glVertex3fv(p3); glNormal3fv(n1); if(isTextured == true) glTexCoord2f(i / (float)(width - 1), j / (float)(height - 1)); glVertex3fv(p1); glNormal3fv(n3); if(isTextured == true) glTexCoord2f((i + 1) / (float)(width - 1), (j + 1) / (float)(height - 1)); glVertex3fv(p3); glNormal3fv(n4); if(isTextured == true) glTexCoord2f(i / (float)(width - 1), (j + 1) / (float)(height - 1)); glVertex3fv(p4); /* std::cout << "u, v : " << (float)i / (width - 1) << ", " << (float)(j) / (height - 1) << std::endl; std::cout << "u, v : " << (float)(i + 1) / (width - 1) << ", " << (float)(j) / (height - 1) << std::endl; std::cout << "u, v : " << (float)(i) / (width - 1) << ", " << (float)(j + 1) / (height - 1) << std::endl; std::cout << "u, v : " << (float)(i + 1) / (width - 1) << ", " << (float)(j + 1) / (height - 1) << std::endl << std::endl; */ } } glEnd(); glPopMatrix(); if(isTextured == true) { glDisable(GL_TEXTURE_2D); } glEndList();}