土地一级开发项成目本核算.ppt
《土地一级开发项成目本核算.ppt》由会员分享,可在线阅读,更多相关《土地一级开发项成目本核算.ppt(72页珍藏版)》请在三一办公上搜索。
1、10/11/2023,山东大学 HCI&VR Lab.,1,第二章 图形学(OpenGL)编程,10/11/2023,山东大学 HCI&VR Lab.,2,一.基本内容,OpenGL API的发展历史OpenGL 体现结构OpenGL 作为一个状态机(state machine)函数 Functions 类型 Types格式Formats简单程序,10/11/2023,山东大学 HCI&VR Lab.,3,API的早期历史,IFIPS(1973)组织了两个委员会建立图形 API标准图形核心系统(Graphical Kernel System GKS)二维,但包含很好的工作站模型Core:同时应
2、用于二维和三维GKS 成为 IS0标准,后来成为 ANSI 标准(1980s)GKS 很难推广到 3D(GKS-3D)远远落后于硬件的发展,10/11/2023,山东大学 HCI&VR Lab.,4,PHIGS and X,程序员层次交互式图形系统PHIGS(Programmers Hierarchical Graphics System)来自于 CAD业界保存图形的数据库模型X Window 系统DEC/MIT 的成果提出了应用图形系统的客户-服务器体现(Client-server)PEX 把两者结合在一起不易应用(也是两者的缺陷),10/11/2023,山东大学 HCI&VR Lab.,5
3、,SGI 和 GL,Silicon Graphics(SGI)通过实现流水线体系改良了图形工作站(1982)源程序通过一个图形库(GL)与系统通讯借助于 GL,可以非常简单地设计出三维交互图形应用程序,10/11/2023,山东大学 HCI&VR Lab.,6,OpenGL,GL 的成功导致了 OpenGL的出现(1992),这是一个与平台无关的图形 API:使用方便与硬件非常贴近,从而能充分发挥其功能注重渲染和绘制(rendering)没有提供窗口和输入接口,从而避免依赖与窗口系统,10/11/2023,山东大学 HCI&VR Lab.,7,OpenGL 的演化,由 Architectura
4、l Review Board(ARB)控制成员包括 SGI,Microsoft,Nvidia,HP,3DLabs,IBM,.相对稳定(目前版本 version 2.0)演化反映了新的硬件能力3D 纹理映射和纹理对象基于顶点的编程通过扩展可以指定具体平台相应的功能,10/11/2023,山东大学 HCI&VR Lab.,8,OpenGL 库,OpenGL 核心库Windows:OpenGL32大多数 unix/linux 系统:GL库OpenGL 实用库(GLU)利用 OpenGL核心库提供一些功能,从而避免重复编写代码 与窗口系统的连接GLX for X window systemsWGL f
5、or WindowsAGL for Macintosh,10/11/2023,山东大学 HCI&VR Lab.,9,GLUT,OpenGL 实用工具库(GLUT:OpenGL Utility Toolkit Library)提供所有窗口系统的共同功能打开窗口 Open a window从鼠标和键盘获得输入Get input from mouse and keyboard菜单 Menus事件驱动 Event-driven代码可以在平台之间移植,但是GLUT 缺乏在确定平台上优秀工具包所具有的功能没有滚动条,10/11/2023,山东大学 HCI&VR Lab.,10,软件组织,GLUT,GLU,
6、GL,GLX,AGLor WGL,X,Win32,Mac O/S,软 件or 硬 件,应用程序,OpenGL 图形工具条等,10/11/2023,山东大学 HCI&VR Lab.,11,OpenGL 体系结构,快速模式,显示列表,多项式求值器,逐顶点操作&基本图元集成,光栅化,逐片操作,纹理内存,CPU,像素操作,帧缓存,geometry pipeline,10/11/2023,山东大学 HCI&VR Lab.,12,OpenGL 函数类型,基本图形元素(Primitives)定义图形系统可以显示的低级对象或原子实体,典型的如:点 Points线段 Line Segments多边形Polygo
7、ns像素 Pixel字符 Character属性函数(Attributes)线段颜色的设置多边形内部团填充图形标题文字的字体选择变换(Transformations)视图 Viewing:定义了各种不同的视域建模 Modeling:虚拟照相机模型等控制(GLUT):多窗口环境下的多进程之间的通信输入(GLUT):处理键盘、鼠标等设备的输入响应查询Query:获得诸如照相机参数、帧缓存里的数据等内在信息,10/11/2023,山东大学 HCI&VR Lab.,13,OpenGL 状态,OpenGL 是一个状态机(state machine)OpenGL 函数有两种基本类型基本图元的生成(Prim
8、itive generating)如果图元可见,可以得到输出顶点如何处理,基本形状的外观由状态控制改变状态(State changing)变换函数属性函数,10/11/2023,山东大学 HCI&VR Lab.,14,面向对象方面的缺憾,OpenGL 不是面向对象的,因此逻辑上的一个函数却对应着多个OpenGL函数glVertex3f glVertex2i glVertex3dv内在存储模式是相同的在C+可以很容易地创建重载函数,但是效率却成为主要问题,10/11/2023,山东大学 HCI&VR Lab.,15,OpenGL 接口,核心库GL:OpenGL 中所有函数的名字都以gl开头Win
9、dows:OpenGL32大多数 unix/linux 系统:GL库实用库 GLU只引用 OpenGL核心库GL中的函数,但还包括了球体等这些常用对象的建模代码以及其他的一些功能,从而避免重复编写代码 实用工具性GLUT提供了任何窗口操作系统所需要的最小功能集GLX:把:OpenGL与 X Window操作系统“粘合”起来,10/11/2023,山东大学 HCI&VR Lab.,16,OpenGL 函数名称格式,glVertex3f(x,y,z),属于 GL 库,函数名,x,y,z 为 float数据类型,glVertex3fv(p),p 为指向float的指针,维数(参数个数),注意每一部分
10、的大小写,10/11/2023,山东大学 HCI&VR Lab.,17,OpenGL 中的#defines,大多数常数采用预定义方式#defines在头文件 gl.h,glu.h 和 glut.h定义注意#include 会自动包含另外两个头文件例如:glBegin(GL_POLYGON)glClear(GL_COLOR_BUFFER_BIT)包含文件也定义 OpenGL 的数据类型:GLfloat,GLdouble,.,常数,10/11/2023,山东大学 HCI&VR Lab.,18,一个简单的程序,在黑色背景上画一个矩形,10/11/2023,山东大学 HCI&VR Lab.,19,si
11、mple.c,#include/包含GL头文件void mydisplay()glClear(GL_COLOR_BUFFER_BIT);/清除屏幕及深度缓存 设置 glBegin(GL_POLYGON);/设置画多边形 glVertex2f(-0.5,-0.5);glVertex2f(-0.5,0.5);glVertex2f(0.5,0.5);glVertex2f(0.5,-0.5);glEnd();glFlush();/强制系统立刻在屏幕上显示输出图形int main(int argc,char*argv)/主函数glutInit(/主函数循环,10/11/2023,山东大学 HCI&VR
12、Lab.,20,事件循环,在程序中定义了一个显示回调函数(display callback function):mydisplay每个 glut 程序必须有一个显示回调函数只要OpenGL确定显示内容要被刷新时,显示回调函数就会被调用:例如,当窗口被打开的时候 main()函数以程序进入事件循环作为结束,10/11/2023,山东大学 HCI&VR Lab.,21,默认值,simple.c 是个很简单的程序大量使用了状态变量的默认值视图模式 Viewing色彩设置 Colors窗口参数 Window parameters后续的程序将改变一下默认值,10/11/2023,山东大学 HCI&VR
13、Lab.,22,如何在VC+6.0环境下使用进行OPENGL环境设置,下载 有关的GLUT软件库:如glutdlls37beta 压缩包(1)将下载的压缩包解开,将得到5个文件:glut.h,glut.lib,glut32.lib,glut.dll和glut32.dll,并按如下要求进行设置(1)“找到 盘符(d:)Program FilesMicrosoft Visual StudioVC98includeGL文件夹”。把解压得到的glut.h放到这个GL文件夹里。没有GL文件夹可以自己建一个,一般都有的。(2)把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹,即l
14、ib文件夹。如“盘符(d:)Program FilesMicrosoft Visual StudioVC98lib文件夹”)。(3)把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:WindowsSystem32)这是非常重要的动态链接库设置!,10/11/2023,山东大学 HCI&VR Lab.,23,如何在VC+6.0环境编辑和运行OpenGL程序,WINDOWS环境设置创建一个Win32 console application 类型的workspace 文件创建一个C/C+文件,包含simple.c的代码,并把这个文件
15、插入到创建好的workspace 文件中直接进行编译 CTRL+F7,进行函数库的链接 F7执行 编译好的可执行文件F5(080311讲完),10/11/2023,山东大学 HCI&VR Lab.,24,图元与属性,OpenGL基本库:很小的基本图元集在GLU中包含从基本库里推导而来的其他类型的基本对象OpenGL支持两类基本图元几何型图元在问题(用户)域里定义,具有空间和几何属性:点、线段、多边形、曲线、曲面等经过几何处理流水线,经过光栅化后变成帧缓存里的像素几何处理处理:决定图元是否可见、计算在屏幕上的显示位置等在问题域进行几何对象的建模和几何变换旋转、平移等光栅型图元把对象看作是像素的集
16、合,缺少几何属性,不能在问题空间中对其进行处理,经过另一条平行流水线到达帧缓存,10/11/2023,山东大学 HCI&VR Lab.,25,图元和属性的定义与设置,OpenGL中的基本图元都是用空间中的点或顶点定义的,采用 glBigin()glEnd()之间来定义glBing(type);/type参数决定定义的几何对象类型glVertex*();glVertex*();glEnd();,10/11/2023,山东大学 HCI&VR Lab.,26,OpenGL基本图元-点、线段(P33),点(GL_POINT):每个顶点至少是一个像素大小线段(GL_LINE):线段类型把两个相邻的顶点当
17、作线段的两个端点多段线(GL_LINE_STRIP,GL_LINE_LOOP):封闭和不封闭,10/11/2023,山东大学 HCI&VR Lab.,27,OpenGL 基本图形元素,GL_QUAD_STRIP,GL_POLYGON,GL_TRIANGLE_STRIP,GL_TRIANGLE_FAN(扇面),GL_POINTS,GL_LINES,GL_LINE_LOOP,GL_LINE_STRIP(缺口),GL_TRIANGLES,10/11/2023,山东大学 HCI&VR Lab.,28,OpenGL基本图元-多边形,多边形:带边界的、封闭的、具有内部区域的对象(GL_POLYGON)多边
18、形的边界与采用GL_LINE_LOOP的类型一样,相邻两个顶点定义边界线,其中那个一条线段连接最后一个顶点和第一个顶点三角形和四边形是多边形的特例(P35,图2.13)(GL_TRIANGLES)(GL_QUADS)带状和扇形:由一组三角形或四边形组成,共享部分顶点和边界线(P35,图2.14)(GL_TRIANGLE_STRIP)(GL_QUAD_STRIP)(GL_TRIANGLE_FAN),10/11/2023,山东大学 HCI&VR Lab.,29,多边形的限制条件,OpenGL 只能显示满足下述条件的多边形简单多边形:边除顶点外不相交凸多边形:对于多边形中的任意两点,连接这两点的线段
19、完全在多边形中平面多边形:所有顶点都在同一个平面内用户自己确保上述条件的满足OpenGL 将报错,如果上述条件不满足三角形满足上述所有限制条件,nonsimple polygon,nonconvex polygon,10/11/2023,山东大学 HCI&VR Lab.,30,曲线和曲面,用图元来逼近曲线或曲面可以用一个正N多边形来逼近一个圆弧可以用正多面体来逼近球体用数学的方法来定义曲线和曲面,推导出这些对象的图形函数,再利用这些函数来创建对象四次曲面参数多项式曲线和曲面,10/11/2023,山东大学 HCI&VR Lab.,31,属性,属性是 OpenGL状态的一部分确定对象的外观颜色(
20、点,线,多边形)大小和宽度(points,lines)宽度和虚实形式(lines,polygons)多边形填充显示:颜色和模式显示边界显示顶点,10/11/2023,山东大学 HCI&VR Lab.,32,RGB 色彩,每个颜色组件分别存储在帧缓存中一般在帧缓存中每个组件为8位注意在 glColor3f中,颜色值的范围从0.0到1.0,而在 glColor3ub中,值的范围在 0 255,10/11/2023,山东大学 HCI&VR Lab.,33,索引颜色(颜色查找表),颜色值指向颜色查找表需要更少的存储量一般为8位现在不是很重要了存储器很便宜了需要更多的颜色做渲染,10/11/2023,山
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 土地 一级 开发 项成目 核算

链接地址:https://www.31ppt.com/p-6259034.html