我正在使用GL_TRIANGLE_STRIP将我的地形绘制到屏幕上,但是当我编译并运行程序时,我什么也得不到。当我将GL_TRIANGLE_STRIP更改为GL_LINES时,它显示并运行。我能做些什么来使它与GL_TRIANGLE_STRIP一起工作?隐形地形
void drawScene() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0f, 0.0f, -10.0f);
glRotatef(30.0f, 1.0f, 0.0f, 0.0f);
glRotatef(-_angle, 0.0f, 1.0f, 0.0f);
GLfloat ambientColor[] = {.5, .5, .5, 1.0f};
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientColor);
float scale = 5.0f/max(63.0,63.0);
glScalef(scale, scale*10, scale);
glTranslatef(-(float)(63.0)/2, 0.0f, -(float)(63.0)/2);
/*GLfloat lightColor0[] = {0.6f, 0.6f, 0.6f, 1.0f};
GLfloat lightPos0[] = {-0.5f, 4, 32, 0.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE, lightColor0);
glLightfv(GL_LIGHT0, GL_POSITION, lightPos0);*/
glColor3f(0.3f, 0.9f, 0.0f);
for(int x = 0;x<64;x++){
glBegin(GL_LINES);
for(int z = 0;z<63;z++){
glNormal3f(0,1,0);
Vertex(x,map[x][z],z);
Vertex(x,map[x][z+1],z+1);
}
glEnd();
}
for(int z = 0;z<64;z++){
glBegin(GL_LINES);
for(int x = 0;x<63;x++){
Vertex(x,map[x][z],z);
Vertex(x+1,map[x+1][z],z);
}
glEnd();
}
我不确定这是否重要,但对于我的地形我有使它成为3d高斯分布的代码。
截图。 – 2012-01-06 01:20:07
不要打扰使用固定功能,即使手机不使用它也如此陈旧。 – Puppy 2012-01-06 01:30:05
@DeadMG如果你想要做的就是在屏幕上获取一些东西,这很好。关于固定功能弃用的好处在于它使得OpenGL变得精益和敏捷(因为它应该与另一个API竞争),但是它为增加学习曲线做了很多工作。除非你购买超级圣经,当然:)。 – 2012-01-06 01:43:43