OpenGL图形编程1介绍(陈永强)PPT文件格式下载.ppt
《OpenGL图形编程1介绍(陈永强)PPT文件格式下载.ppt》由会员分享,可在线阅读,更多相关《OpenGL图形编程1介绍(陈永强)PPT文件格式下载.ppt(44页珍藏版)》请在冰豆网上搜索。
距离的比例关系;
满足三者足三者实际运运动的的时间关系;
关系;
三个球表面用三角形三个球表面用三角形绘制;
制;
太阳在中心固定,太阳在中心固定,为点光源;
点光源;
地球表面地球表面为实际地球地球图片的片的纹理映射;
理映射;
月亮与地球的阴影关系。
6结业要求结业要求o实验完成完成时间第第8周理周理论课结束束o实验报告上交告上交时间16周周周周2上午上午3-4节最后一次最后一次课o实验报告形式告形式电子版文件子版文件夹,含源程序和,含源程序和DOC实验报告告o分数构成分数构成演示程序演示程序30%实验报告告30%回答回答问题20%平平时考勤考勤20%78主要参考书目主要参考书目oDaveShreiner等,等,OpenGL编程指南(原程指南(原书第第7版),版),机械工机械工业出版社,出版社,2010oRichardS.Wright.Jr等,等,OpenGL超超级宝典(第宝典(第4版),版),人民人民邮电出版社,出版社,2010o陆枫等,等,计算机算机图形学基形学基础(第(第2版),版),电子工子工业出版出版社,社,2008oDonaldHearn,M.PaulineBaker著著,蔡士杰等蔡士杰等译,计算算机机图形学(第三版),形学(第三版),电子工子工业出版社,出版社,2005o红红皮皮书书RedBook9o蓝蓝皮皮书书BlueBook1011主要参考网站主要参考网站oOpenGL官网官网http:
/www.opengl.org/oNeHe教程教程http:
/GraphicsInc.)公司公司对IRISGL进行改行改进,扩展可移植性,形成的一个跨平台开放式展可移植性,形成的一个跨平台开放式图形形编程接口程接口。
pOpenGL历经3.0,2.1,1.5,1.4,1.3,1.2,1.1,or1.0多个版本。
多个版本。
现在最新的是在在最新的是在2010年年3月月10日日公布的公布的OpenGL4.0。
p目前,目前,OpenGL标准由准由1992年成立的独立年成立的独立财团OpenGLArchitectureReviewBoard(ARB)以投票方式)以投票方式产生,生,并制成并制成规范文档公布。
范文档公布。
13131.1OpenGL的主要功能的主要功能o模型模型绘制制OpenGL能能够绘制点、制点、线和多和多边形。
形。
应用用这些基些基本的形体,可以构造出几乎所有的三本的形体,可以构造出几乎所有的三维模型。
模型。
OpenGL通常用模型的多通常用模型的多边形的形的顶点来描述三点来描述三维模型。
14141.1OpenGL的主要功能的主要功能o模型模型观察察在建立了三在建立了三维景物模型后,就需要用景物模型后,就需要用OpenGL描述如何描述如何观察所建立察所建立的三的三维模型。
观察三察三维模型是通模型是通过一系列的坐一系列的坐标变换进行的。
模行的。
模型的坐型的坐标变换在使在使观察者能察者能够在在视点位置点位置观察与察与视点相适点相适应的三的三维模型景模型景观。
在整个三。
在整个三维模型的模型的观察察过程中,投影程中,投影变换的的类型决型决定定观察三察三维模型的模型的观察方式,不同的投影察方式,不同的投影变换得到的三得到的三维模型的模型的景象也是不同的。
最后的景象也是不同的。
最后的视窗窗变换则对模型的景象模型的景象进行裁剪行裁剪缩放,放,即决定整个三即决定整个三维模型在屏幕上的模型在屏幕上的图象。
象。
151.1OpenGL的主要功能的主要功能o颜色模式色模式OpenGL应用了一些用了一些专门的函数来指定三的函数来指定三维模型的模型的颜色。
程序开色。
程序开发者者可以可以选择二个二个颜色色模式,即模式,即RGBA模式和模式和颜色表模式。
在色表模式。
在RGBA模式中,模式中,颜色直接由色直接由RGB值来指定;
在来指定;
在颜色表模式中,色表模式中,颜色色值则由由颜色表中的一个色表中的一个颜色索引色索引值来指定。
开来指定。
开发者者还可以可以选择平面着色和光滑着色二种着色方式平面着色和光滑着色二种着色方式对整个三整个三维景景观进行着色。
行着色。
161.1OpenGL的主要功能的主要功能o光照光照应用用用用OpenGL绘制的三制的三维模型必模型必须加上光照才能加上光照才能更加与客更加与客观物体相似。
物体相似。
OpenGL提供了管提供了管理理四种光四种光(辐射光、射光、环境光、境光、镜面光和漫射光面光和漫射光)的的方法,另外方法,另外还可以指定模型表面的反射特性。
可以指定模型表面的反射特性。
171.1OpenGL的主要功能的主要功能o图象效果增象效果增强OpenGL提供了一系列的增提供了一系列的增强三三维景景观的的图象效果的函象效果的函数,数,这些函数通些函数通过反走反走样、混合和、混合和雾化来增化来增强图象的效象的效果。
反走果。
反走样用于改善用于改善图象中象中线段段图形的形的锯齿而更平滑,而更平滑,混合用于混合用于处理理模型的半透明效果,模型的半透明效果,雾使得影像从使得影像从视点点到到远处逐逐渐褪色,更接近于真褪色,更接近于真实。
181.1OpenGL的主要功能的主要功能o位位图和和图像像处理理OpenGL还提供了提供了专门对位位图和和图象象进行操作的行操作的函数。
函数。
191.1OpenGL的主要功能的主要功能o纹理映射理映射三三维景物因缺少景物的具体景物因缺少景物的具体细节而而显得不得不够真真实,为了更了更加逼真地表加逼真地表现三三维景物,景物,OpenGL提供了提供了纹理映射的理映射的功能。
功能。
OpenGL提供的一系列提供的一系列纹理映射函数使得开理映射函数使得开发者可以十分方便地把真者可以十分方便地把真实图象象贴到景物的多到景物的多边形上,从形上,从而可以在而可以在视窗内窗内绘制逼真的三制逼真的三维景景观。
201.1OpenGL的主要功能的主要功能o实时动画画为了了获得平滑的得平滑的动画效果,需要先在内存中生成画效果,需要先在内存中生成下一幅下一幅图象,然后把已象,然后把已经生成的生成的图象从内存拷象从内存拷贝到屏幕上,到屏幕上,这就是就是OpenGL的双的双缓存技存技术(doublebuffer)。
OpenGL提供了双提供了双缓存存技技术的一系列函数。
的一系列函数。
211.1OpenGL的主要功能的主要功能o交互技交互技术目前有目前有许多多图形形应用需要人机交互,用需要人机交互,OpenGL提提供了方便的三供了方便的三维图形人机交互接口,用形人机交互接口,用户可以可以选择修改三修改三维景景观中的物体。
中的物体。
22221.2OpenGL工作方式工作方式o体系体系结构构OpenGL是一套是一套图形形标准,准,严格按照格按照计算机算机图形学原理形学原理设计而成,符而成,符合光学和合光学和视觉原理,非常适合可原理,非常适合可视化仿真系化仿真系统。
OpenGL是一种是一种API,其中不包含任何窗口管理、用,其中不包含任何窗口管理、用户交互或文件交互或文件I/O函数。
每个主机函数。
每个主机环境(如境(如MicrosoftWindows)在)在这些些方面都有自己的函数,由方面都有自己的函数,由这些函数些函数负责实现某些方法,以便把窗某些方法,以便把窗口或位口或位图的的绘制控制制控制权移交移交给OpenGL。
231.2OpenGL工作方式工作方式24图图2.34OpenGL图形图形处理系统的层次结构处理系统的层次结构o体系体系结构构一个完整的窗口系一个完整的窗口系统的的OpenGL图形形处理系理系统的的结构构为:
最底:
最底层为图形形硬件,第二硬件,第二层为操作系操作系统,第三,第三层为窗口系窗口系统,第四,第四层为OpenGL,最上面的最上面的层为应用用软件。
件。
241.2OpenGL工作方式工作方式25图图2.35一条简化的一条简化的OpenGL绘制流水线绘制流水线o流水流水线OpenGL命令将被放在一个命令命令将被放在一个命令缓冲区中,冲区中,这样命令命令缓冲区冲区中包含了大量的命令、中包含了大量的命令、顶点数据和点数据和纹理数据。
当理数据。
当缓冲区冲区被清空被清空时,缓冲区中的命令和数据都将冲区中的命令和数据都将传递给流水流水线的的下一个下一个阶段。
段。
251.2OpenGL工作方式工作方式o状状态机机OpenGL是一种直接模式的是一种直接模式的API,每条命令根据当前的,每条命令根据当前的渲染状渲染状态都会都会产生某种立即效果。
渲染状生某种立即效果。
渲染状态是各种是各种标记,指出哪些特性是打开的,哪些是关指出哪些特性是打开的,哪些是关闭的,以及的,以及应该如何如何应用。
用。
在在OpenGL中,使用中,使用glEnable函数和函数和glDisable函数来启用和禁用渲染特征。
函数来启用和禁用渲染特征。
261.3OpenGL操作步骤操作步骤在在OpenGL中中进行的行的图形操作直至在形操作直至在计算机屏幕上渲染算机屏幕上渲染绘制出三制出三维图形景形景观的基本步的基本步骤如下:
如下:
1.根据基本根据基本图形形单元建立景物模型,得到景物模型的数元建立景物模型,得到景物模型的数学描述(学描述(OpenGL中把点、中把点、线、多多边形、形、图像和位像和位图都作都作为基本基本图形形单元);
元);
2.把景物模型放在三把景物模型放在三维空空间中的合适的位置,并且中的合适的位置,并且设置置视点点(Viewpoint)以以观察所感察所感兴趣的景趣的景观;
271.3OpenGL操作步骤操作步骤3.计算模型中所有物体的色彩,同算模型中所有物体的色彩,同时确定光照条件、确定光照条件、纹理粘理粘贴方式等;
方式等;
4.把景物模型的数学描述及其色彩信息把景物模型的数学描述及其色彩信息转换至至计算机屏算机屏幕上的像素,幕上的像素,这个个过程也就是光程也就是光栅化化(rasterization)。
在在这些步些步骤的的执行行过程中,程中,OpenGL可能可能执行其他的一行其他的一些操作,例如自些操作,例如自动消消隐处理等。
理等。
另外,景物光另外,景物光栅化之化之后被送入后被送入帧缓冲器之前冲器之前还可以根据需要可以根据需要对象素数据象素数据进行行操作。
操作。
281.4OpenGL基本语法基本语法o组成成OpenGL核心核心库:
glOpenGL实用程序用程序库:
gluOpenGL编程程辅助助库:
auxOpenGL实用程序工具包(用程序工具包(OpenGLutilitytoolkit,GLUT):
):
glutWindows专用用库:
wglWin32API函数函数库291.4OpenGL基本语法基本语法30o组成成OpenGL核心核心库:
glOpenGL核心核心库中包含了中包含了115个基本的命令函数,以个基本的命令函数,以“gl”为前前缀,可以在任何,可以在任何OpenGL的工作平台上的工作平台上应用。
这部分函数用于常部分函数用于常规的、核心的的、核心的图形形处理,如建立各种各理,如建立各种各样的几何模的几何模