我用mfc + opengl 画三角形
代码如下:
怎么只能看到黑屏,却看不见三角形
void CTes1View::DrawScene()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕及深度缓存
glLoadIdentity(); // 重置视口glTranslatef(-1.5f,0.0f,-6.0f); // 左移 1.5 单位,并移入屏幕 6.0glBegin(GL_TRIANGLES); // 绘制三角形glVertex3f( 0.0f, 1.0f, 0.0f); // 上顶点glVertex3f(-1.0f,-1.0f, 0.0f); // 左下glVertex3f( 1.0f,-1.0f, 0.0f); // 右下
glEnd(); // 三角形绘制结束 glFinish();
}

解决方案 »

  1.   

    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕及深度缓存
    glLoadIdentity(); // 重置视口glColor4f(1.0f, 1.0f, 1.0f, 1.0f);glTranslatef(-1.5f,0.0f,-6.0f); // 左移 1.5 单位,并移入屏幕 6.0glBegin(GL_TRIANGLES); // 绘制三角形glVertex3f( 0.0f, 1.0f, 0.0f); // 上顶点glVertex3f(-1.0f,-1.0f, 0.0f); // 左下glVertex3f( 1.0f,-1.0f, 0.0f); // 右下
    glEnd(); // 三角形绘制结束 glFinish();
      

  2.   

    nehe教程学习变换矩阵的用途注意相机的位置, 在你的设置下,三角形很可能是在相机可视的范围外呢#include <e:/opengl/include/gl/glut.h>
    #include <stdlib.h>void init (void)
    {
    glClearColor(0.0, 1.0, 0.0,0.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(70.0, 1.0, 1, 1000);
    gluLookAt(0.0,500.0,0.0, 0.0,0.0,0.0, 1.0,0.0,0.0);
    }
    // ball statevoid display(void)
    {
    glClear(GL_COLOR_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    glBegin(GL_POLYGON);
    glNormal3d(0, -1, 0);
    glColor3f(0.0,0.0,1.0);
    glVertex3f(100, 0,  100);
        glVertex3f(100, 0, -100);
        glVertex3f(-100,0, -100);
        glVertex3f(-100,0,  100);
        glEnd();
    glFlush();
    }int main(int argc,char **argv)
    {
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
    glutInitWindowSize(500,500);
    glutInitWindowPosition(100,100);
    glutCreateWindow(argv[0]);
    init();
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
    }
      

  3.   

    对于你的例子,把gluLookAt修改为
    gluLookAt(0,0,0,   0,0,-1,  0,1,0);就可以了
    把你的代码移动到display函数里面,保留前面glMatrixMode(...);那两行就可以了