OpenGL初步

OpenGL是一个图形库,主要用于3D作图。然而,其并不提供窗口处理函数,如果想要与操作系统的窗口进行通信,需要引入GLUT也就是实用工具库。同时,由于OpenGL具有很好的平台兼容性,因此对一些函数的实现需要以指针形式进行调用。类似于动态链接库中函数的动态加载。为了便于这一部分函数的调用,进一步引入了GLEW库对函数指针的调用进行封装。编写OpenGL程序需要引入上诉函数库中的一个或者多个。下面就以一个Demo程序来介绍OpenGL程序编写的一些基本步骤。

由于OpenGL程序涉及到计算机中的两中类型的处理单元——CPU和GPU。OpenGL程序由CPU调度运行,同时部分指令在CPU对存储在系统内存中的数据进行加工进而推进程序的运行,而另外一部分指令则通过给GPU发指令进而进行图像处理,GPU处理的数据大多数情况下位于其自身所管理的专用内存中。为了协调这两部分内容进行处理,首先需要解决的问题是怎样将存储在系统内存中的数据传递到GPU专用的内存中;其次需要解决的问题是CPU应该怎样启动GPU进行运算。

为了进行上诉处理,OpenGL将CPU与GPU之间数据的传递分为三个步骤。第一步,首先利用内置的OpenGL函数生成一个ID号码,这个号码类似于Windows系统下的文件标识符概念,主要用于索引一个OpenGL内部管理的内存单元,至于这部分内存单元属于什么类型需要到第二步才知道;这一步主要是通过函数glGenBuffer实现的。该函数返回一个glInt。第二步,则是根据需要对该ID号码进行内存类型的绑定,这一步操作能够覆盖ID号码原有的内存类型,如果ID号码原来没有内存类型则对其进行初始化,这一步主要通过glBindBuffer函数完成。在经过上面两个步骤之后,GPU中用于接收系统内存中数据的“标识符”就准备好了,第三部对这部分内存进行初始化,初始化的内容来自于系统内存中,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值