《图形软件支撑平台和常用软件简介备课讲稿》由会员分享,可在线阅读,更多相关《图形软件支撑平台和常用软件简介备课讲稿(40页珍藏版)》请在金锄头文库上搜索。
1、图形软件支撑平台和常用软件简介,授课教师: 单位:,2,主要内容,常用图形支撑软件简介 网络图形开发 计算机三维动画软件3DS Max简介,3,主要内容,常用图形支撑软件简介 网络图形开发 计算机三维动画软件3DS Max简介,4,常用图形支撑软件简介,大多数图形应用程序建立在一定的图形支撑软件上 图形支撑软件需具有规范接口 便于图形应用程序共享和相互调用 采用标准图形函数编写的图形软件便于移植,6,OpenGL简介,绘制与造型底层软件库 独立于程序语言、独立于图形硬件 提供了应用程序与图形硬件的接口 http:/www.opengl.org/ 数百个基本函数 基本图形单元生成 图形属性定义
2、几何变换 光照计算 ,7,OpenGL简介,工作原理:状态机 编程者设置各种状态属性,在绘制时,场景中的所有物体均按照状态机当前所设置的属性予以绘制。,OpenGL绘制流水线,8,OpenGL简介,GLU库:OpenGL的重要补充 提供了更高级的功能 二维图像缩放 绘制圆球、圆柱体、圆盘等三维物体 从单幅图像中自动生成Mipmap 支持NURBS曲线/曲面 支持非凸多边形的三角化 支持投影变换矩阵等复杂的变换操作 ,9,OpenGL简介,图形窗口管理 显示窗口:屏幕上用来显示图形的矩形区域。 不能直接采用OpenGL基本函数库建立显示窗口 需借助于特定的窗口系统 不同的窗口系统有不同的Open
3、GL扩展 GLX WGL,10,OpenGL简介,图形窗口管理:GLUT库 易学易用、独立于平台 http:/www.opengl.org/resources/libraries/glut/ 一系列基本函数支持窗口、菜单、用户输入等操作 用于OpenGL绘制的多窗口及窗口管理 回调(Callback)驱动的事件处理 支持键盘、鼠标等多种输入设备 “idle”例程和定时器(timer) 弹出式菜单 生成多种实体和线框体的实用例程 ,11,DirectX简介,GDI(Graphics Device Interface) OpenGL:使编程者能越过GDI直接与图形硬件打交道 可视为GDI的一种有效
4、替代 DirectX:由微软开发,试图实现对计算机硬件资源的“直接”存取 解决PC游戏应用中GDI效率低下及其它一些问题,12,DirectX简介,基于COM标准设计,包含许多组件 每一个组件服务于图形、声音、输入、网络等特定需求 DirectX Audio DirectX Graphics DirectInput DirectPlay DirectShow,13,DirectX结构,场景图依据场景中对象的逻辑和空间关系将其有效组织为图或树结构 主要针对实时图形绘制的 要求而设计 一个结点可有多个子结点, 但只有一个父结点 施加于父结点的操作会 自动传递到子结点 Example:组合结点,14
5、,基于场景图的图形开发工具,15,基于场景图的图形开发工具,OSG 源码开放、跨平台 基于场景图的概念,构建于OpenGL之上 完全采用标准C编写,提供了面向对象的框架 一套由许多单独的库构成的结点工具箱 数十个插件,16,面向VR应用的图形开发工具,Vega Prime 高性能实时三维应用开发环境 美国MultiGen-Paradigm公司产品 构建于SGI OpenGL Performer之上 良好的跨平台兼容性、可选模块的通用性 支持多种数据输入格式 最典型的格式:OpenFlight(扩展名为flt) 采用Vega场景图VSG组织三维场景,17,面向VR应用的图形开发工具,Vega P
6、rime 由C应用程序 接口和GUI配置 工具Lynx Prime 构成,Lynx Prime 图形用户 界面,18,面向VR应用的图形开发工具,Vega Prime 先采用高效建模工具(如MultiGen Creator,AutoDesk Maya等)建立三维场景,再载入Vega Prime进行实时漫游,可大大减少开发时间,Vega Prime生成的实时仿真图片,19,面向VR应用的图形开发工具,CAVELib 构建于OpenGL和OpenGL Performer之上 采用“回调”机制 支持一系列虚拟现实交互外设 六自由度定位跟踪器、数据手套等 独立于硬件平台,基于CAVELib的VR应用程
7、序可运行于IRIX,Solaris,Windows,以及Linux操作系统 可运行于IRIX,Solaris,Windows,Linux,20,面向VR应用的图形开发工具,CAVELib 提供了构建虚拟环境基本“模块” 创建图形窗口和视口 以观察者为中心的透视计算 多图形通道显示 多进程与多线程编程 机群同步与数据共享 立体视图 网络协同,21,面向VR应用的图形开发工具,CAVELib 无需重新编译,只要在运行时通过简单的配置即可运行于一系列显示系统 CAVE FLEX ImmersaDesk Reality Center HMD 其他类似的显示设备,22,主要内容,常用图形支撑软件简介 网
8、络图形开发 计算机三维动画软件3DS Max简介,23,VRML/X3D简介,VRML:一种在Internet上描述三维虚拟世界的、开放的、可扩展的场景描述语言 源于Open Inventor 对Open Inventor的文件格式进行了扩展 允许用户通过JavaScript和Java编写施加动作的脚本程序,支持三维物体运动和用户交互 普遍使用的是VRML 2.0(VRML97)规范,24,VRML/X3D简介,采用层次式场景图组织三维场景 VRML场景图是一有向非循环图,由结点构成。 一个结点可包含除自身外的其它结点作为子结点 VRML 2.0中定义了50余种结点类型 几何基本体素 外观属性
9、 声音及其属性 各种组合结点 结点数据存贮于域中,VRML 2.0中有20余种域 可用于存贮单个数据或数组等组合数据,25,VRML/X3D简介,消息传递通过事件(event)实现 每一结点类型均定义了事件的名称与类型 结点的实例可依照定义产生或接收事件 ROUTE声明定义事件产生器与接收器间的事件传递路径,26,VRML/X3D简介,动画和用户交互通过传感器实现 TimeSensor结点以时间为序产生事件,是所有运动行为的基础 其它传感器随用户的交互输入产生事件,是用户交互的基础 传感器仅仅产生事件,它们必须通过ROUTE声明与其它结点组合在一起才能对场景施加影响,27,VRML/X3D简介
10、,物体的运动行为可由脚本(script)结点刻画 在事件产生器和事件接收器间可插入脚本结点 VRML 2.0定义了针对Java和JavaScript语言的脚本结点绑定 VRML中的Interpolator结点作为内置的脚本,可进行简单的运动计算,28,VRML/X3D简介,VRML 2.0采用两种基本技术支持分布式场景 通过内联(Inline)结点,可在一个VRML文件中引入存贮于互联网任何地方的其它VRML文件 EXTERNPROTO声明允许从互联网的任何地方获取新的结点定义,29,VRML/X3D简介,创建VRML三维虚拟世界的四种方式 可通过手工编辑建立较为简单的三维场景 可借助于造型及
11、动画软件等工具建立较为复杂的三维场景,通过该软件工具将所建立的三维场景输出为VRML文件 可通过格式转换工具将以其它格式存贮的三维场景转换成VRML格式 可编写程序创建VRML虚拟世界,30,VRML/X3D简介,VRML文件后缀为wrl 可通过标记将VRML虚拟世界嵌入HTML文件 Example: 常用Internet浏览器的VRML浏览器插件 Cortona ,31,VRML/X3D简介,一个简单的VRML场景示例 采用3个PlaneSensor分别沿x,y,z轴移动一个小方块 需安装VRML浏览器,如Cortona,32,VRML/X3D简介,X3D是针对VRML97 ISO规范的修訂
12、 吸收了图形硬件、数据压缩和数据安全等技术的最新进展 在一个可扩展的架构下尽可能地提供好的视觉效果和性能 采用XML编码的场景图使三维图形得以集成到web服务架构和分布式环境中,33,VRML/X3D简介,X3D是针对VRML97 ISO规范的修訂 与VRML兼容,是更为成熟的ISO标准,可有效支持 二维/三维图形、CAD数据 动画、视音频 基于鼠标/键盘的用户交互、导航 用户定义的对象、脚本 网络 物理仿真 ,34,VRML/X3D简介,X3D相较于VRML的优点 采用XML编码以便于与其他应用集成 场景与环境可以在不同的用户之间有预见性地运行 组件化 场景创作界面更为简单且功能一致 二进制
13、格式能进行加密和压缩 ,35,Java3D简介,美国Sun公司推出的用于处理、控制和绘制三维场景的编程接口,能支持 三维物体生成(或载入其他软件生成的三维物体) 光照 纹理映射 透明效果 雾化效果 动画 物体变形 立体图像 碰撞检测 用户与三维场景交互 ,36,Java3D简介,用Java 3D编写的程序可运行于不同的平台和Internet之上 对OpenGL和DirectX等进行了有效封装 虚拟空间(Virtual Universe) 虚拟空间采用场景图结构进行组织,是场景图的根结点 包含物体的形状和外观描述、灯光、虚拟相机等 每一个Java 3D应用程序都必须定义一个虚拟空间,37,Jav
14、a3D简介,利用Java 3D应用程序显示三维场景的基本步骤 建立包含三维场景的虚拟空间 建立一个可包含一组三维物体的群组(group)数据结构 向群组中加入物体 设置观察物体的虚拟相机 将群组加入虚拟空间 Java 3D教程 http:/www.java3d.org/,38,主要内容,常用图形支撑软件简介 网络图形开发 计算机三维动画软件3DS Max简介,39,三维动画软件3DS Max简介,Autodesk公司产品 建模 支持创建基本体素、布尔运算、自由曲面等传统造型方法;支持隐式曲面、多分辨率多边形网格、粒子系统等高级造型方法 绘制 具备较为完善的光线跟踪功能且集成了Mental Ray高级绘制引擎,支持网络并行绘制 三维动画 支持关键帧动画、运动曲线编辑和动画预览功能,具有逆运动学求解及复杂布料运动求解等高级功能,40,三维动画软件3DS Max简介,运行3DS Max软件,进行操作演示,