我是 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 项目 -> 控制台项目。
问题没有解决..抱歉。
最佳答案
- 您正在使用即时模式。你有一个
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/