c - opengl 白色窗口 - Visual Studio 2010

标签 c opengl

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

供引用- DLL : C:\Windows\System32, C:\Windows\SysWOW64//glu32.dll, glut.dll, glut32.dll, opengl32.dll

库:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib, C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib//glut.lib, glut32.库

header :C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl, C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\gl//GL。 H、GLAUX.H、GLU.H、glut.h

#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;
}

编辑:

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

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

Win32 项目 -> 控制台项目。

问题没有解决..抱歉。

错误是http://i.stack.imgur.com/9GJoN.jpg

最佳答案

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

checkout

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glClearColor(r, g, b, a);
  • 正如 Drew McGowen 所指出的,您没有指定任何转换或投影矩阵。
  • 强烈建议您查找有关 OpenGL 的教程,以便很好地解释绘制三角形所需要做的所有事情以及原因。 Lighthouse3d、Swiftless、OGLDev - 有很多应该向您展示基础知识。
  • 还有一点:您正在尝试学习已被弃用约 7 年的代码。您应该学习新的可编程流水线而不是固定功能流水线,因为它速度更快并且给您更多的控制权。

关于c - opengl 白色窗口 - Visual Studio 2010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18126194/

相关文章:

使用 fwrite 复制文本文件,结果是垃圾? C

c - 变量在第一次调用后发生变化 - C 中的未定义行为?

C++ OpenGL 从 2D 切换到 3D

javascript - 由于相邻 Sprite ,使用 ATLAS 通过 WebGL 在三 Angular 形上绘制 Sprite 会给出不正确的结果

c++ - SDL + OpenGL : access violation when creating buffer

c - 用C填充一个数组

c - 在 C 中将指针传递给结构体?

c - 如何正确调用这个合并排序函数?

opengl - OpenGL 中 Sprite 渲染的架构

java - LWJGL—如何使用 Sprite Sheet 制作动画和渲染角色