GL_TRIANGLE_STRIPを使用して画面に地形を描画していますが、プログラムをコンパイルして実行すると何も表示されません。 GL_TRIANGLE_STRIPをGL_LINESに変更すると、それが表示され、動作します。 GL_TRIANGLE_STRIPで作業するにはどうすればよいですか?Invisible Terrain
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();
}
これは重要なことではありませんが、私の地形では、3次元ガウス分布にするコードがあります。
スクリーンショットをご覧ください。 –
固定機能を使用しても構いません。電話機でも使用されていなくても古いです。 – Puppy
@DeadMGあなたがしたいのは、画面上に何かを得ることです。固定機能の廃止についての大きな点は、OpenGLをリーンで俊敏に(別のAPIと競合する必要があるように)作っていることですが、学習曲線を増やすためには多くのことがありました。あなたがスーパー・バイブルを買わない限り、もちろん)。 –