c-opengl白色窗口-Visual Studio 2010



我是opengl初学者。我设置了DLL、Library、Header,但是发生了错误。我的开发环境是win7(64位)。

供参考-dll:C:\Windows\System32,C:\Windows\SysWOW64//glu32.dll,glut.dll,glut32.dll,opengl32.dll

库:C:\Program Files(x86)\Microsoft SDK \Windows\v7.0A\Lib,C:\Program Files

标题:C:\Program Files(x86)\Microsoft SDKs\Windows\v7.0A\Include\gl,C:\Program Files

#include <Windows.h>
#include <gl/glut.H>
void DoDisplay ( void )
{
    glClearColor ( 0.0f, 0.0f, 1.0f, 1.0f );
    glClear( GL_COLOR_BUFFER_BIT );
    glBegin ( GL_TRIANGLES );
    glVertex2f ( 0.0, 0.5 );
    glVertex2f ( -0.5, -0.5 );
    glVertex2f ( 0.5, -0.5 );
    glEnd ();
    glFlush ();
}
int main ( int argc, char ** argv )
{
    glutInit ( &argc, argv );
    glutInitDisplayMode ( GLUT_RGB | GLUT_DOUBLE );
    glutInitWindowSize ( 300, 300 );
    glutInitWindowPosition ( 0, 0 );
    glutCreateWindow ( "OpenGL" );
    glutDisplayFunc ( DoDisplay );
    glutMainLoop ();
    return 0;
}

编辑:

白色窗口:https://i.stack.imgur.com/9GJoN.jpg

这段代码只是简单地输出白色三角形。

Win32项目->控制台项目。

问题未解决。。很抱歉

错误为https://i.stack.imgur.com/9GJoN.jpg

  • 您正在使用即时模式。您有glEnd(),但没有glBegin()
  • 正如PeterT也指出的,您没有呼叫glutInit
  • 如果指定的路径与打印方式类似,则会遇到问题。你有正斜杠和反斜杠,至少根据我的经验,这会破坏这条路
  • 您没有将屏幕清除为特定颜色,也没有将顶点设置为特定颜色。这可能是在暴风雪中画北极熊的情况

查看

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glClearColor(r, g, b, a);
  • 正如Drew McGowen所指出的,您没有指定任何变换或投影矩阵
  • 我强烈建议您查找OpenGL教程,以便很好地解释绘制三角形所需的所有操作,以及为什么。Lighthouse3d,Swiftless,OGLDev-有很多应该向你展示基础知识
  • 还有一点:您正在尝试学习已经弃用了大约7年的代码。你应该学习新的可编程管道,而不是固定功能管道,因为它更快,给你更多的控制权
void DoDisplay ( void )
{
    ...
    glFlush ();
}
int main ( int argc, char ** argv )
{
    ...
    glutInitDisplayMode ( GLUT_RGB | GLUT_DOUBLE );
    ....
}

当使用CCD_ 5时,CCD_。请改用glutSwapBuffers()

最新更新