2020年OPENGL总结报告

上传人:Sc****h 文档编号:134284061 上传时间:2022-08-12 格式:DOC 页数:8 大小:32KB
收藏 版权申诉 举报 下载
2020年OPENGL总结报告_第1页
第1页 / 共8页
2020年OPENGL总结报告_第2页
第2页 / 共8页
2020年OPENGL总结报告_第3页
第3页 / 共8页
资源描述:

《2020年OPENGL总结报告》由会员分享,可在线阅读,更多相关《2020年OPENGL总结报告(8页珍藏版)》请在装配图网上搜索。

1、opengl 总结报告OpenGL总结一 OpenGL是做什么的一种图形硬件的接口。而不是像 C和 C+一样的编程语言,更像是一个运行库,提供一些预先封装的函数。二 OpenGL的主要功能是什么建模,变换,颜色模式设置,光照和材质设置,纹理映射,位图显示和图像。三 OpenGL的体系结构是什么最底层为图形硬件,第二层为操作系统,第三层为窗口系统,第四层为 OpenGL,第五层为应用软件。四怎么样利用OpenGL来实现我们想要做的事情首先要明白一点, OpenGL是一个与平台无关的三维图形接口,操作系统必须提供像素格式管理和渲染环境管理。 因此要使用 OpenGL 来做我们想做的事情的时候, 一

2、定要先为 OpenGL搭建一个窗口环境。在这个窗口环境中, 我们才能够使用 OpenGL来实现我们自己的目的。另外要注意的是 OpenGL应用的不是保留模式,而是直接模式。即我们去操作的并非是已经封装好的一些建好的图形信息, 而仅是相当于操作一个图形界面。 也就是说如果我们要画一个复杂的形体, 我们要把这个形体的几何信息,包括点、线和面的一些信息包括进去,然后使用一定的方法, 把这些基本的信息合起来, 构成我们要创建的那个物体。五绘制图元能干什么此处我们当明白, OpenGL能够绘制复杂和有趣的图形,但这些图形都是由几个为数不多的基本图形元素构建而成的。 所以,能够绘制图元是我们构建一个复杂有

3、趣图形的一个基础。这些基本的图元,包括点、线和面。六变换能干什么当我们绘制出一个复杂或者简单图形的时候,我们要把这个图形显示到我们的电脑屏幕上。 这个时候我们可能会需要用到变换, 变换的目的是让我们能够从一个合适的角度, 观察到我们对图形中所关注的那部分。变换包括,视图变换,模型变换,投影变换。经过这几个变换中的一个变换、 几个变换或者几种变换的相互组合, 我们可以得到我们想要达到的效果。七光照能干什么我们绘制图形的时候要深切地知道一个事情。那就是我们做出的图形可能需要有 3D效果,或者说需要让我们做出来的模型更加的有立体感,并和实际的物体尽量的接近。这个时候,我们可能要加上光照。光照让我们做

4、出的模型更加立体。光照模型、明暗处理、光源设置、材质定义。真实感图形绘制是计算机图形学的一个重要组成部分,它综合利用数学、物理学、计算机科学和其他科学知识在计算机图形设备上生成象彩色照片那样的具有真实感的图形。 在计算机图形设备上生成真实感图形须完成以下四个步骤:一是用建模,即用一定的数学方法建立所需三维场景的几何描述,场景的几何描述直接影响图形的复杂性和图形绘制的计算耗费;二是将三维几何模型经过一定变换转为二维平面透视投影图;三是确定场景中所有可见面, 运用隐藏面消隐算法将视域外或被遮挡住的不可见面去除;四是计算场景中可见面的颜色,即根据基于光学物理的光照模型计算可见面投射到观察者眼中的光亮

5、度大小和颜色分量,并将它转换成适合图形设备的颜色值,从而确定投影画面上每一象素的颜色,最终生成图形。简单光照模型:当光照射到一个物体表面上时, 出现三种情形。只考虑被照明物体表面的反射光影响,假定物体表面光滑不透明其由理想材料构成,环境假设为白光照明。环境反射,慢反射和镜面反射。创建光源,启动光照,明暗处理(在计算机图形学中,光滑的曲面表面常用多边形予以逼近和表示, 而每个小多边形轮廓(或内部)就用单一的颜色或许多不同的颜色来勾画(或填充),这种处理方式就成为明暗处理。)材质:材质颜色,材质定义OpenGL用材料对光的红、绿、蓝三原色的反射率来近似定义材料的颜色。象光源一样,材料颜色也分成环境

6、、漫反射和镜面反射成分,它们决定了材料对环境光、漫反射光和镜面反射光的反射程度。八颜色能干什么颜色生成原理,计算机屏幕上每一个点的颜色都是由监视器内部的电子枪激发的三束不同颜色的光混合而成。两种颜色模式: RGB(RGBA)模式和颜色表模式。 在 RGB模式下,所有的颜色定义全用RGB三个值来表示, 有时也加上 alpha 值。颜色表模式下,每一个象素的颜色是用颜色表中的某个颜色索引值表示,这个颜色索引值指向了相应的R、G、B 值。glcolor*();glIndex*();单调着色( flat)和平滑着色( smooth)颜色的作用之一是能让我们做出的图形的3D 效果更好。用法:九混合,抗锯

7、齿,雾,多边形偏移,这些干什么当我们想通过一个颜色的物体,看到另一个颜色物体的时候,这时候要使用混合的功能。 OpenGL会把源颜色和目标颜色各自取出,并乘以一个系数(源颜色乘以的系数称为“源因子”,目标颜色乘以的系数称为“目标因子”),然后相加,这样就得到了新的颜色。原因子和目标因子是可以通过glBlendFunc 函数来进行设置的。glBlendFunc 有两个参数,前者表示源因子,后者表示目标因子。图形绘制到屏幕时,光栅化图像通过离散的像素点来表示,如此绘制出来的图元会产生锯齿。而抗锯齿则是一种处理, 通过这种处理可以在一定程度上消除锯齿的影响,增强显示效果。 glHint()来对图像质

8、量和绘制速度之间的权衡作一些控制。为了让我们做出来的图形和真实的景物,自然中的景物更加的逼近,要加上一个特效即雾。有了雾的效果,场景看起来才会更加真实。在 OpenGL中,实现雾的效果。其工作模式有两种:线型模式和指数模式。两种模式是根据雾的浓度变化来区分的。线型模式中,提供一个距离视点的开始位置和结束位置。从开始到结束, 雾的浓度越来越高。浓度变化和距离成正比。指数模式下,雾的浓度随着距离增长呈指数增长。这种模式常用来用于烟雾。烟幕效果。开启glEnable(GL_FOG),取消雾的效果glDisable(GL_FOG) 。线框和填充物体重合时,看起来可能很丑陋;使多边形偏移,改变其深度值,

9、 可以使带轮廓的物体更美观。 着重显示实心物体边缘时,可以用 GL_FILL绘制这个物体,再用 GL_LINE重新绘制这个物体。十为什么使用显示列表显示列表是一组存储在一起的 OpenGL函数,是由一组预先存储起来的留待以后调用 OpenGL函数语句组成,当调用这张显示列表时就依次执行表中所列出的函数语句。其优势是 OpenGL显示列表的设计能优化程序运行性能, 尤其是网络性能。它被设计成命令高速缓存,而不是动态数据库缓存。即一旦建立了显示列表,就不能修改它。因为若显示列表可以被修改,则显示列表的搜索,内存管理的执行等开销会降低性能。如此,也就失去了其最大的优势。 显示列表方式绘图比瞬时方式快

10、, 尤其是显示列表方式可以大量地提高网络性能,当通过网络发出绘图命令时,由于显示列表驻留在服务器中,因而使网络的负担减轻到最小。在单用户的机器上,显示列表同样可以提高效率。一旦显示列表被处理成适合于图形硬件的格式,则不同的 OpenGL实现对命令的优化程度也不同。显示列表的适用场合。需要注意的是并不是只要调用显示列表就能优化程序性能。 因为调用显示列表本身时程序也有一些开销,若一个显示列表太小,这个开销将超过显示列表的优越性。矩阵操作,光栅位图和图像,光、材质和光照模型、纹理、多边形的填充模式。voidglNewList(GLuintlist,GLenummode);voidglEndList

11、(void);voidglCallList(GLuintlist);十一纹理,和绘制像素,位图,字体,图像当我们想要使绘制出的模型显得更加得真实,此时我们可能需要给图形加上纹理,尤其是真实感的物体。纹理映射的方式,让我们在绘制真实感图形的时候, 变得简单。纹理映射能够保证在变换多边形时,多边形上的纹理图案也随之变化。纹理映射的基本步骤:定义纹理,控制滤波,说明映射方式,绘制场景给出顶点和纹理坐标和几何坐标。纹理映射只能在RGBA方式下执行,不能运用于颜色表方式。计算机保存图象的方法有两种:矢量图和像素图。矢量图保存了图象中每一个几何物体的位置、形状、大小等信息。像素图是将完整的图像纵横分为若干

12、行、 列,这些行列使得图象被分割为很细小的分块,每一分块称为像素,保存每一像素的颜色也就保存了整个图像。glReadPixels:读取一些像素, 把已经绘制好的像素 (可能已经被保存到显卡的显存中)读到内存。glDrawPixels:绘制一些像素,把内存中一些数据作为像素数据,进行绘制。glCopyPixels:复制一些像素,把已经绘制好的像素从一个位置复制到另一个位置。OpenGL 除去点,线,多边形,的另外两种重要的数据类型:位图和图像。这两种数据都是以象素矩阵形式存储, 即用一个矩形数组来表示某一位图或图像。 二者不同之处是位图包含每个象素的一位信息,而图像数据一般包含每个象素的多位信息

13、;位图类似于掩码,可用于遮掩别的图像,而图像数据则简单地覆盖先前已经存在的数据或与之混合。十二帧缓存颜色缓存 colorbuffer 其中内容可以是颜色索引或者 RGBA数据,如果用 OPENGL系统支持立体图,则有左右两个缓存。深度缓存 depthbuffer 就是 Z-BUffER,用于保存像素 Z 方向的数值,深度大的被深度小的代替,用以实现消隐。模板缓存 StencilBuffer 用以保持屏幕上某些位置图形不变,而其他部分重绘。累计缓存 Aumulationbuffer只保存 RGBA数据,用于合成图象。glGetIntegerv()查询每个像素占据的缓存空间的参数。颜色缓存存储了颜

14、色索引或RGB颜色数据,还可能存储了 alpha值支持立体观察 stereoscopicviewing 的 OpenGL实现有左颜色缓存和右颜色缓存,它们分别用于左立体图象和右立体图象。深度缓存,存储了每个像素的深度值,通常是离视点的距离,因此深度值大的像素会被深度值小的像素覆盖。累积缓存也存储 RGBA颜色数据,将一系列的图像合成一幅图像。可以对图像进行超量采样, 然后对样本进行平均, 并将结果写入颜色缓存中,从而实现场景反走样,不能将数据直接写入累积缓存,累加操作总是针对一个矩形块的,通常是将数据移入或移出颜色缓存。清空缓存指定要读写的颜色缓存写入 glDrawBuffer();读取 glReadBuffer();屏蔽缓存:设置掩码,用于控制写入到指定缓存中的数据。禁用深度缓存:如果背景很复杂,则在背景绘制之后,禁用深度缓存,绘制新增物体,只要不相互重叠。下一帧时,只需要恢复数据图像,无需恢复深度缓存中的值。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!