我正在使用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