|
|
为了完成一个实验匆忙学的OpenGL, 现在就是按照例子依葫芦画瓢做了个房间,在墙壁、地面、天花板纹理贴图。然后可以用上下键前进、左右键旋转、Page Down Up 绕x轴转。
现在的问题是我想在左下角加个小地图,在纹理贴图
glBindTexture(GL_TEXTURE_2D, texture[1]);
for (loop_m = 36; loop_m < numtriangles; loop_m++) //画墙壁
{
glBegin(GL_TRIANGLES);
glNormal3f( 0.0f, 0.0f, 1.0f);
x_m = sector1.triangle[loop_m].vertex[0].x;
y_m = sector1.triangle[loop_m].vertex[0].y;
z_m = sector1.triangle[loop_m].vertex[0].z;
u_m = sector1.triangle[loop_m].vertex[0].u;
v_m = sector1.triangle[loop_m].vertex[0].v;
glTexCoord2f(u_m,v_m); glVertex3f(x_m,y_m,z_m);
x_m = sector1.triangle[loop_m].vertex[1].x;
y_m = sector1.triangle[loop_m].vertex[1].y;
z_m = sector1.triangle[loop_m].vertex[1].z;
u_m = sector1.triangle[loop_m].vertex[1].u;
v_m = sector1.triangle[loop_m].vertex[1].v;
glTexCoord2f(u_m,v_m); glVertex3f(x_m,y_m,z_m);
x_m = sector1.triangle[loop_m].vertex[2].x;
y_m = sector1.triangle[loop_m].vertex[2].y;
z_m = sector1.triangle[loop_m].vertex[2].z;
u_m = sector1.triangle[loop_m].vertex[2].u;
v_m = sector1.triangle[loop_m].vertex[2].v;
glTexCoord2f(u_m,v_m); glVertex3f(x_m,y_m,z_m);
glEnd();
}
后面加上
glDisable(GL_TEXTURE_2D);
glLoadIdentity();
glColor3f(1.0f,0.0f,0.0f);
glBegin(GL_QUADS);
glVertex3f(-0.1f, 0.1f, 0.0f);
glVertex3f( 0.1f, 0.1f, 0.0f);
glVertex3f( 0.1f,-0.1f, 0.0f);
glVertex3f(-0.1f,-0.1f, 0.0f); // Bottom Left
glEnd();
glEnable(GL_TEXTURE_2D);
想画个矩形先,但是边长控制成0.2f还是整个屏幕都涂红了,这是怎么回事呀?
[em24] |
|