最近对OpenGL有兴趣,所以就决定学习一下
经了解,OpenGL是一个工业标准的图形界面接口,他最大的优点就是跨平台(Windows,Linux,Mac os等等)而且处理图形高效,速度快
说道OpenGL,大家就不禁会想到微软的DirectX,唯一能与DirectX竞争的,目前估计只有OpenGL了
很多游戏编程大师都说OpenGL效率比DirectX好,尤其在一些设计复杂的图形计算方面,OpenGL更是远远抛离DirectX
不过OpenGL唯一不好就是他只支持图形界面的处理,没有音频,视频等等那些,所以D3D在这方面就有优势
好了,说了这么多,现在来说说如何构建一个简单的OpenGL程序(C/C++程序)吧:
#include <GL/glut.h>
#include <stdlib.h>
#include <stdio.h>
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glBegin(GL_POLYGON);
glVertex3f(0.25,0.25,1.0);
glVertex3f(0.75,0.25,2.0);
glVertex3f(0.75,0.75,3.0);
glVertex3f(0.25,0.75,4.0);
glEnd();
glFlush();
}
void init(void)
{
glClearColor(0.0,0.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
}
int main(int argc,char ** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250,250);
glutInitWindowPosition(100,100);;
glutCreateWindow("hello");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
这是OpenGL编程指南上面例子,我是指打出来并运行看看,该程序实现了画一个黑背景,然后一个白色居心在中间的功能,效果如下:
这是我在Windows下用DEV-C++编译器编译出来的,如上代码在Linux上编译也可以成功
好了,就说这么多
PS:我附上一些参考资料,有需要的可以自己下载:
OpenGL编程指南:http://download.csdn.net/detail/a6627651/6008831点击打开链接
OpenGL函数参数:http://download.csdn.net/detail/a6627651/6008725点击打开链接