《OpenGL介绍.ppt》由会员分享,可在线阅读,更多相关《OpenGL介绍.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2.3 OpenGL介绍 2.3.2 OpenGL的主要功能 2.3.3 OpenGL的绘制流程和原理 点数据评价器逐点操作基元匹配显示列表像素数据像素操作纹理存储器光栅化基片操作帧缓冲区OpenGL指令从左侧进入指令从左侧进入OpenGL,有两类数据,分别是由顶点描述的几何模,有两类数据,分别是由顶点描述的几何模型和由像素描述的位图、影像等模型,其中后者经过像素操作后直接进入光栅型和由像素描述的位图、影像等模型,其中后者经过像素操作后直接进入光栅化。评价器化。评价器(Evaluator)用于处理输入的模型数据,例如对顶点进行转换、光照,用于处理输入的模型数据,例如对顶点进行转换、光照,并把图
2、元剪切到视景体中,为下一步光栅化做好准备。显示列表并把图元剪切到视景体中,为下一步光栅化做好准备。显示列表(Display List)用于存储一部分指令,留待合适时间以便于快速处理。光栅化将图元转化成二用于存储一部分指令,留待合适时间以便于快速处理。光栅化将图元转化成二维操作,并计算结果图像中每个点的颜色和深度等信息,产生一系列图像的帧维操作,并计算结果图像中每个点的颜色和深度等信息,产生一系列图像的帧缓存描述值,其生成结果称为基片缓存描述值,其生成结果称为基片(Fragment)。基片操作主要的有帧缓存的更。基片操作主要的有帧缓存的更新、测试、融合和屏蔽操作,以及基片之间的逻辑操作和抖动新、
3、测试、融合和屏蔽操作,以及基片之间的逻辑操作和抖动(Dithering)。2.3.4 VC开发OpenGL绘图程序第一步:向项目文件中添加OpenGL的绘图函数Project | Settings | Link在Object/library modules:中输入opengl32.lib glu32.lib glaux.lib 第二步:添加头文件在项目工作区的中找到StdAfx.h,添加下面的代码: #include #include #include glClearColor(0.0, 0.0, 0.0, 0.0);glClear(GL_COLOR_BUFFER_BIT);glBegin(G
4、L_TRIANGLES); glColor3f(1.0,0.0,0.0);/红色 glVertex3f(-1.0,0.0,0.0); glColor3f(0.0,1.0,0.0);/绿色 glVertex3f(0.0,1.0,0.0); glColor3f(0.0,0.0,1.0);/蓝色 glVertex3f(1.0,0.0,0.0);glEnd();2.3.5 OpenGL的缓冲区也叫Z-buffer,它记录每个像素点所对应的物体点到视点的距离,由此决定表面的可见性。在进行消隐的时候,OpenGL必须知道各物体间的相对位置关系,从而模拟出物体相互遮挡得效果,因此,需要进行深度测试。而深度测
5、试的结果就生成了深度缓存。 与深度缓存相关的OpenGL操作主要有:清除深度缓存:glClear(GL_DEPTH_BUFFER_BIT),用于清除当前显示缓冲区内容,为开始新的绘制做好准备;设置清除值:glClearDepth(1.0);屏蔽深度缓存:glDepthMask(GL_TRUE),表示可以写深度缓存;glDepthMask(GL_FALSE),表示禁止写深度缓存;启动和关闭深度测试:glEnable(GL_DEPTH_TEST),表示开启深度测试;glDisable(GL_DEPTH_TEST),表示禁止深度测试。确定测试条件:glDepthFunc(),根据函数参数确定测试方式,具体的参数说明请参考OpenGL手册。确定深度范围:glDepthRagne(Glclampd zNear, Glclampd zFar),参数zNear和zFar分别说明视景体的前景面和后景面向窗口坐标映射的规格化坐标,便于后续使用。