OpenGL教程(2):编程初步

配置完GLUT开发环境。就可以在VS2010中进行OpenGL编程了。下面的教程综合了网上已有的教程和本人自己的体会。
一、 创建工程
在VS2010中创建一个空的win32工程。如果你不会,那么请先学习VC++编程技术。
二、 引用头文件
只需要引用<GL/glut.h>。因为是使用GLUT进行编程,所以只需要引用这一个头文件。由于GLUT已经为你处理了windows窗口,所以你不必要重复引用windows.h。
三、 初始化OpenGL
1、 启动OpenGL
调用glutInit()函数,参数应该和你的main函数保持一致。比如你的main函数是这么写的:
int main(int argc, char** argv)


那么就应该这么调用glutInit:
glutInit(&argc, argv);


注意第一个参数是main函数中第一个参数的引用。
2、 GLUT显示模式
使用glutInitDisplayMode()来设置GLUT的显示模式。
第一个设置是颜色模式。有RGBA和INDEX两种模式。分别用宏GLUT_RGBA和GLUT_INDEX来觉得。RGBA是指使用RGB来存储颜色,最后的A表示0.0到1.0之间的浮点数来决定透明度。一般来说不会用到GLUT_INDEX模式,所以就不介绍了。
第二个是GLUT的缓冲模式。可以使用单缓冲(GLUT_SINGLE)和双缓冲(GLUT_DOUBLE)。单缓冲顾名思义就是只有一张图片,后台画完这张图片之后放到前台来显示。要画的时候重新拿回后台绘制。绘制的时候如果窗口要重绘,比如鼠标经过了,屏幕重叠了那么画面是不会刷新的。因为程序已经不知道原来的画面是什么,而新的画面还在绘制。双缓冲就是说又两个画面,一个画面用来显示,另一个画面用来绘制,绘制好之后交换两个画面,继续绘制不显示的那个画面。这种模式用于渲染动画,而单缓冲用于渲染静态画面。
第三个设置是GLUT深度模式
使用GLUT_DEPTH表示使用深度缓冲。这个时候每个像素都有一个深度值(离观察者的距离)。这样,当观察者一条视线经过两个及以上的物体时,只会显示深度值小的那个,因为它离观察者更近,可以把后面的物体挡住。这个原理非常类似于光线跟踪。
使用GLUT_STENCIL表示使用画家模式来进行渲染。在渲染的时候先画离观察者远的物体,再画近的物体,就好像油画画家先画远景再画近景弋阳。GLUT_ACCUM模式用的非常少,有兴趣可以自己Google一下。

决定好三个选项之后调用glutInitDisplayMode函数,不同模式之间使用 | 进行连接。
比如
glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH)


这是因为这个函数只有一个参数,所以要把不同的宏进行编码作为参数。
3、 确定窗口大小和位置
使用glutInitWIndowSize()函数来确定窗口的大小,glutInitWindowPosition()函数决定窗口位置,两个函数的参数单位都是像素。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值