1 / 39

上一节课内容回顾

上一节课内容回顾. 三维交互技术. 10.1 三维交互工具 头盔式显示器、立体眼镜、数据手套 10.2 三维交互算法 滑动条控制器、交叠滑动控制器、 xy + z 轴控制器、虚拟球控制器 10.3 立体图绘制 两幅图像同时显示 ( 不同波长 ) 两幅图像按一定频率交替显示 10.4 交互视算 后处理技术、跟踪技术、交互视算. 10.5 VTK 中交互的实现. vtkInteractorObserver vtk3DWidget vtkBoxWidget vtkImagePlaneWidget vtkLineWidget

felcia
Download Presentation

上一节课内容回顾

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 上一节课内容回顾 三维交互技术 10.1 三维交互工具 头盔式显示器、立体眼镜、数据手套 10.2 三维交互算法 滑动条控制器、交叠滑动控制器、 xy+z轴控制器、虚拟球控制器 10.3 立体图绘制 两幅图像同时显示(不同波长) 两幅图像按一定频率交替显示 10.4 交互视算 后处理技术、跟踪技术、交互视算

  2. 10.5 VTK中交互的实现 • vtkInteractorObserver • vtk3DWidget • vtkBoxWidget • vtkImagePlaneWidget • vtkLineWidget • vtkPlaneWidget • vtkSphereWidget • vtkInteractorStyle • vtkInteractorStyleFlight • vtkInteractorStyleJoystickActor • vtkInteractorStyleJoystickCamera • vtkInteractorStyleSwitch • vtkInteractorStyleTrackball • vtkInteractorStyleTrackballActor • vtkInteractorStyleTrackballCamera • vtkInteractorStyleImage • vtkInteractorStyleUnicam • vtkInteractorStyleUser • vtkInteractorStyleTerrain

  3. 立体图的制作: • 调用vtkRenderWindow中的相应函数: • StereoRenderOn () /StereoRenderOff ()打开关闭立体显示功能 • StereoCapableWindowOn() / StereoCapableWindowOff() • 打开/关闭绘制窗体的立体渲染能力 • SetStereoType (int): 设置立体显示类型 • SetStereoTypeToCrystalEyes ():偏振片眼镜 • SetStereoTypeToRedBlue () :红蓝眼镜 • SetStereoTypeToInterlaced () • :用于Vrex投影仪,奇扫描线-左眼,偶扫描线-右眼 • SetStereoTypeToLeft ():左视图 • SetStereoTypeToRight () :右视图 • SetStereoTypeToDresden()

  4. 本节课内容: • 第十一讲 科学计算可视化系统和工具 • 可视化系统分类 • 专用可视化工具 • 通用可视化系统 • 高质量渲染器

  5. 11.1 可视化系统分类 可视化系统是指一个集成环境,在其支持下,人们可通过直观的手段对复杂数据进行有效的研究.可视化工具则一般只支持某一方面的可视化技术. 可视化软件发展至今,经历了由简单到复杂的演进过程,可以按照这一过程将可视化软件分为三大类:可视化子程序、专用可视化工具和通用可视化系统. 这一划分并不是严格的.前两类可视化软件历史较长,因而技术比较成熟,现有大多数可视化应用都是基于这两类来开发的.通用可视化系统则是发展的方向.

  6. 11.1.1 可视化子程序库 传统的分析和观测数据的工具,包括各种图形库和软件包,提供各种子程序,主要用于可视化应用开发。用户调用子程序开发应用时,必须编程实现各部分功能。包括主程序、用户界面、数据处理、几何造型和绘制。 如:OPENGL,VTK 优点:十分灵活,可直接控制各部分功能 缺点:必须花费大量的精力编写和维护代码,效率低 我们的工作: 开发部分环境数据处理模块(如根据离散点插值生成MESH模块)、与地理信息系统接口模块等。

  7. 11.1.2 专用可视化工具 为解决某一类问题而开发的功能相对固定的可视化工具。本身具备了主程序功能,具有友好的用户界面,不需要用户编写程序代码。 如: UNIRAS, PV-WAVE等 优点:针对某一类问题性能优越 缺点: 缺少灵活性,功能扩充比较局限,采用的可视化 技术是固定的,能解决的问题是有限的。 为增强灵活性,许多专用可视化工具提供了SDK开发系统。 我们的工作: 结合具体研究项目,把可视化功能与环境模型结合起来开发专用可视化系统。

  8. 11.1.3 通用可视化系统 用于可视化应用构造与运行的支撑环境,又称应用构造器。在实现上一般采用数据流机制,拥有一个模块库和一个高层可视编程界面。用户通过该界面从模块库中选取一些适当的算法模块,直观交互的将各模块用数据通道连接起来,构成一个可视化的应用。系统的模块库是可以扩充的,系统可以扩充到各个应用领域。 如: AVS,GIVE等 优点:良好的灵活性,通用性和开放型 缺点: 没有足够多的模块支持更多更好的应用。 我们的工作: 在通用可视化系统平台下,开发环境模型模块,扩充通用可视化系统的功能;在此基础上,开发专用可视化系统。

  9. 11.2 专用可视化工具 NASA Ames FAST IVM VOXEL View/Voxel Lab Data Visulizer SunVision PV-WAVE (1)PLOT3D PLOT3D是为计算流体动力学(CFD)的网格和流体可视化而设计的一个计算机图形程序.PLOT3D提供了85个函数,并提供多个版本适用于各种系统.PLOT3D能处理带有许多网格点的多重网格,而且能生成多种模型,如线框模型和面模型,PLOT3D的输出还可用于动画程序.

  10. 11.2.1 PV-WAVE 支持用户对数据用VDA方式进行分析。VDA是工程师、科学家和研究人员在理解和使用数据时普遍采用的技术,最常见的是当处理大型数据集和要求快速生成图形时,人们往往借助于数学、统计学、信号处理和图像处理等技术来对数据进行直观分析.VDA技术对于科学发现和工程分析具有不可估量的价值,给人们带来了十分明显的好处,从而促进了生产率的提高,为合作者之间提供了直观交流信息的手段。

  11. PV—WAVE支持用户对大型多维数据集进行显示、分析和再显示的处理过程.通过各种VDA技术的辅助,用户能方便地交互控制其数据分析过程·。PV-WAVE有如下特点:PV—WAVE支持用户对大型多维数据集进行显示、分析和再显示的处理过程.通过各种VDA技术的辅助,用户能方便地交互控制其数据分析过程·。PV-WAVE有如下特点: 1)读取和定义大型的多维数据集; 2)提供工具对数据快速操作,以及由数据生成子集; 3)结果生成后可立即用图形表示; 4)用户交互方式迅速; 5)提供用于动画和显示多维数据的高级图形工具. PV—WAVE拥有一套高层的解释执行的命令语言,用户使用这套语言来定义数据,并对数据进行控制.这套语言十分精简,因而用它编制的命令组很短,而提供的功能却很强。另外,它是解释型的,无需经过编译、调试、运行这样一个周期,因而使用时反馈及时,十分方便.

  12. 11.3 通用可视化系统 是一种用于可视化应用构造与运行的支撑环境,故又称应用构造器,它们大多基于数据流机制,拥有一个模块库和一个高层可视编程界面,用户通过该界面从模块库中选取一些适当的算法模块,直观交互地将各模块用数据通道连接起来,构成一个可视化应用的数据流图,然后用户就可以对此流图加以运行和控制,实现其可视化需求. 系统的模块库是可以扩充的,用户可将自己开发的模块转换成系统可接受的形式,并可替换或扩充原有模块库,这样,用户可以采用这些新模块来构造可视化应用程序,故系统可以扩充到各个应用领域,所以我们称之为通用可视化系统,并称之为开放式的.

  13. 通用可视化系统结合了前两类可视化软件的特点:通用可视化系统结合了前两类可视化软件的特点: • 每个模块的功能是固定的,相当于一个专用的可视化工具; • 整个应用又是由多个模块灵活组织而成,因而又类似于用于程序库开发的应用程序,具有灵活性. • 在这类软件中,用户通常也无需编程,只要学会如何将模块直观地组成应用程序数据流图.只有当现有模块库中模块功能不能满足用户需求时,用户才编制模块程序,而这种用户是模块开发人员,可以与前一种用户明确分工. • 通用可视化系统的优点是有良好的灵活性、通用性与开放性.但目前其技术尚不成熟,也没有足够的模块来支持更多的应用领域,因而应用得不如前两类软件多.

  14. 11.3.1 数据流和可视编程界面 数据流:将一个可视化应用划分成许多相互独立的模块。每个模块带有若干数据输入口和若干数据输出口。模块的功能是将输入口的数据加以处理,并从输出口输出。各模块之间依靠数据的传送保持联系,整个可视化应用就可以用模块之间的数据依赖关系图(数据流图)来表示。

  15. 数据流图:由结点和管道组成的网络 结点:表示一个功能单元; 管道:结点间传送数据的通道; 数据流图的运行:当表示成数据流图的可视化应用运行 时,数据首先从数据流图中的源结点流出。当数 据沿管道流到其它结点处时,就会驱动其它结点 的计算,并产生新的数据传送到更多的结点处。 当数据流图中所有结点都运行完毕时,整个应用 也就运行完了; 数据流图中结点的运行方式: 数据驱动方式: 只要某一结点的所有输入口的数据都已到 达,该结点就会被点火执行。 命令驱动方式: 与数据流逆向的命令流。只有当一个结点 的所有输入口数据都有效,且有命令流到 达该结点时,该结点才被点火执行。

  16. 用数据流机制开发通用可视开发平台的优点: • 应用便于用流图来表示和分析; • 使应用能够更好地模块化; • 易于实现分布和并行处理,提高计算速度。

  17. 11.3.2 通用可视化平台 • AVS--命令流驱动,Stardent公司在其上开发了EVS软件 • apE --数据流驱动,Ohio • IRIS Explorer --数据流驱动,SGI • OpenDX – IBM 开放源代码软件 • GIVE --浙江大学

  18. EVS--在AVS基础上开发成的面向环境的可视化系统EVS--在AVS基础上开发成的面向环境的可视化系统

  19. 11.4 可视化系统开发 一个可视化系统,一般包括: (1)数据组织管理与常用处理功能; (2)丰富的可视化方法; (3)可视化交互技术; (4)易于使用的图形软件界面; (5)二次开发。

  20. (1)数据组织管理与常用处理功能; 大部分功能可以从地理信息系统获得,需要开发与地理信息系统的接口模块。

  21. (2)丰富的可视化方法 1D,2D,3D标量数据可视化方法 矢量场可视化方法 体绘制方法 混合绘制方法

  22. (3)灵活友好的可视化交互技术 各种交互器的实现 多种Picker方法的实现

  23. (4)易于使用的图形软件界面 MFC wxWindows tkInter GTK KDE MOTIF Swing

  24. (5)二次开发 插件开发(plugin) 模块开发 PYTHON PERL TCL JAVA Ruby等

  25. 模型3 模型2 3D可视 化结点 模型1 模型4 2D可视 化结点 可视化系统组成: 数据结点1 数据结点2

  26. 输入结点(Input): 与GIS连接结点 数据读入结点 … 变换结点(Model): 环境模型结点 Filter结点 Mapper结点 输出结点(Output): 可视化输出结点 文件输出结点 数据流图构造与运行控制模块 脚本语言模块

  27. MAYAVI的剖析 • DATA • Filters • Module • Render

  28. class BaseObject: class VizObject (BaseObject): class Source (VizObject): class DataSource (Source): class VtkDataReader (DataSource) class PLOT3DReader (DataSource) … class Filter (Source): class PolyDataNormals (Filter) class WarpVector (PolyDataNormals) … class Module (VizObject): class CutPlaneModule (Module): class SurfaceMap (Module) class Streamlines (Module) … class ModuleManager: class DataVizManager: class MayaVi class MayaViTkGUI

  29. 高质量渲染器 • RENDERMAN • PRMAN • BMRT • VTK与RENDERMAN

  30. 1.什么是Renderman 是一种渲染思想,一种渲染系统规范(3.2版)。Renderman内包含了ShadingLanguage、ShadingNetwork、REYES等。 ShadingLanguage是一种用来描述Shader表现各种效果的类C语言,它可以按照用户的意志来描述Shader的表现。比如用户需要实现一种新的、软件里没有的视觉效果,一种可靠的方法是用S hadingLanguage来描述,然后编译,让Renderman使用,就好象你“告诉”Renderman应该怎么样渲染一样。 Reyes(Render Everything You‘d Ever Seen),是一种扫描线的思想。在电影制作中渲染精度是十分重要的,任何瑕疵在电影胶片中出现都会直接导致画面的视觉效果出错。Reyes就是为了解决渲染精度而诞生的。 多年的发展后很多渲染系统都已经吸收了这些伟大的渲染思想,其中最优秀的是MR和Maya。MR直接把ANSI C(标准C)做为Shader的语言,而Maya则可以把各种毫不相干的东西连接到ShadingNetwork里。但可以完美结合的仍然还只有Renderman的系统。

  31. 2.Renderman的渲染器 Renderman的渲染器有Prman、BMRT、Entropy。Prman被视为Renderman的正宗,而且Renderman的大部分成就都是prman获得的。作为世界第一的渲染器,Prman支持扫描线算法/光线跟踪等。 $7000.00 BMRT,是Renderman大师Larry Gritz自己开发的渲染器,是免费版的渲染器。效果可以媲美Prman,但速度慢。 Entropy是BMRT的收费版,速度比BMRT快很多,支持各种光线跟踪的特点,效果非同一般,但使用不方便,要配合Mayaman、Maxman来使用。 $1000.00

  32. 3. PhotoRealistic Renderman Pixar是世界上领先的动画制作公司之一,它的领先地位有很大的一部分功劳是Prman所争取来的。而它销售Prman也给它带来了不少的利润。 Prman的开发初衷是"PhotoRealistic",就是有照片级的精度。如果设置得当,Prman渲染出来的东西真的是没有任何明显的锯齿。而且Prman是做电影用的,所以速度是很关键的一个因素。prman注重速度和精度的结合,它渲染的Nurbs真正称得上无缝,速度也是众多渲染器中最快的。

  33. 4.Renderman Artisan Tools Pixar多年来开发了不少的动画系统,为了促进Prman的普及,Pixar把一系列供简化Prman使用的工具包装在一起,就成了Renderman Artisan Tools(简称RAT)。 RAT包括: PRman: 核心,真正负责渲染的部分。 MtoR: Maya to Renderman,Maya的插件,功能强大,可以完成很多工作,调用Alfred和Prman渲染等。真正的工作是输出RIB文件到Prman。 Alfred Server: 调节单机或网络渲染的强大工具,可以查看渲染进度,进行渲染调度等。 Slim: ShadingNetwork部件,可以简化写Shader的工序,而且可以通过Template做ShadingNetwork的连接。 It:Image Tool,可以做为观看渲染结果的Renderview,但实际上是一个极其强大的后期合成工具。

  34. 5.Prman的工作方式 Prman的核心只是一个单独的exe文件,不到2Mb,执行的命令行格式为prman *.rib。 Prman只接受RIB文件。RIB文件就是用Renderman的语言对渲染场景的定义。Prman渲染后便会输出到Display server,Display server可以是软件之间的Pipe(比如It或Houdini中的ip),tiff文件、iff文件等。

  35. VTK中使用RenderMan vtkRIBExporter 把VTK的绘制场景转成RenderMan的RIB格式. 输入参数: vtkRenderWindow对象 结果: 所有演员和灯光被转到RIB格式文件filename.rib中 使用方法: RIB=vtkRIBExporter() RIB.SetInput(renWin) RIB.SetFilePrefix( “filename”) RIB.Write()

  36. 下一节课内容: • 第十二讲 环境信息可视化系统 • 环境信息可视化系统 • EVS • 环境计算 • 流场可视化综合示例 • 考查作业

More Related