




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于VTK User Guide和VTK Textbook学习Vtk user guide组织:分为三部分,part i通用介绍,如VTK安装方法;part ii是核心部分,提供了大量的示例;part iii介绍高级应用,如何创建自己的类。HOW TO USE VTKvtk创建者和应用者。创建或修改必须熟悉C+,并且知悉VTK的编程约定;对于应用者可以从TCL,PYTHON,VB,JAVA,VC等中选择自己熟悉的语言,但需熟悉VTK的对象接口及其关系。ADDITION RESOURCESThe Visualization Toolkt An Object-Oriented Approach to 3D Graphics(2rd Edition):该书详细描述了VTK中的多个算法,数据结构等。/:提供有在线手册,FAQ和用户邮件列表等/VTK/doc/nightly/html:在线VTK文档http:/www.barre.nom.fr/vtk/links.html:Sebastien Barre的网站InstallationWindows直接下载安装文件,执行setup.exe安装后文件包含5个部分:vtkNNCore:用于Windows的VTK DLLvtkNNCpp:用于VC+的文件和库vtkNNTcl:用于Tcl的文件和库vtkNNJava:用于Java的文件和库vtknnPython:用于Python的文件和库CMake:从源码构建VTK的工具源码安装System Overview对于VTK的系统的概述:介绍基本系统概念和对象模型抽象VTK由两个基本子系统构成:已编译C+类库和已解释的封装器用于其他语言,如Tcl,java,Python等VTK本身是基于OO模型构建的,因此仅需理解主要对象就可以构建应用系统:图形模型Graphics Model和可视化模型Visualization ModelThe Graphics Model下面是一些常用的核心对象:vtkActor, vtkActor2D, vtkVolumevtkProp和或vtkProp3D的子类vtkLight灯光vtkCamera镜头,照相机vtkProperty, vtkProperty2DvtkMapper, vtkMapper2DvtkAbstractMapper的子类vtkTransformvtkLookupTable, vtkColorTransferFunctionvtkScalarsToColors的子类vtkRendervtkRenderWindowvtkRenderWindowInteractor可以通过对上述对象的组合形成场景Scene。Props表示在场景所见到的物体。三维场景中的通常是vtkProp3D对象,如vtkActor,vtkVolume等;二维场景中的则通常是vtkActor2D对象。Props不能直接表示其几何形状,通过其相关的mappers表示。Props还可以通过属性对象控制其外观,如颜色,灯光,绘制方式等。Actors和Volumes具备内部转换对象vtkTransform,其封装了44的变换矩阵,可以调整其几何参数(位置,朝向和缩放)。灯光vtkLight对象用于设置场景中的灯源,只能用于3D场景。相机对象vtkCamera控制3D物体如何投影成2D图形。只在3D场景有必要设置。可以控制几何参数以及投影方式:正交投影和透视投影。绘图器vtkMapper对象以及相关的查找表vtkLookupTable对象用于变换和绘制几何图形。mapper提供了可视化管道和图形模型之间的接口。渲染器vtkRenders对象和渲染窗口vtkRenderWindow对象用于管理图形引擎和计算机视窗系统之间的接口。一个渲染窗口可以同时支持多个渲染器。渲染器作图的区域即为视口viewport。场景交互可以通过vtkRenderWindowInteractor对象完成。操作相机,拾取物体,激活用户定义的方法,进入或退出透视投影以及设置actors的某些属性。上 述描述的类通常都有特殊行为的子类,如vtkAssembly, vtkFollower,vtkLODActor均是vtkActor的子类。vtkAssembly允许层次式组织actors;vtkFollwer 是一个总是面向指定相机的actor,尤其对于文本和广告显示是十分有用的;vtkLODActor是允许改变角色actors的几何表示的actor图像数据ImageData:vtkImageData矩阵线性数据Rectilinear Grid:vtkRectilinearGrid,其数据组织形式是行列方向线性增长结构化数据vtkStructuredGrid,无结构化数据点,多边形数据vtkPolyData,无结构化栅格数据vtkUnstructuredGrid图形管道的作用是将图形数据转换成图片。可视化管道的作用是将信息转换成图形数据。换句话说,就是可视化管道是用于构造几何表达,而后经由图形管道渲染。 VTK使用数据流的形式转换,其中涉及两个基本对象:vtkDataObject和vtkProcessObject。 DataObject数据对象: 表示不同类型的数据。数据的组织形式由vtkDataSet对象表示。由几何和拓扑结构(点和穴)组成。 DataSet数据集:图像数据ImageData:vtkImageData 矩阵线性数据Rectilinear Grid:vtkRectilinearGrid,其数据组织形式是行列方向线性增长 结构化数据vtkStructuredGrid,无结构化数据点,多边形数据vtkPolyData,无结构化栅格数据vtkUnstructuredGrid 属性数据:单个数据Scalar,3D方向和幅度Vector:(u, v, w);3D方向Normal:(nx, ny, nz), |n|=1,n维索引数据到文理的映射Texture Coordinate,n*n矩阵Tensor,阵列数据vtkFieldArray,其中每一列可以是不同类型的数据。 Cell:是点的拓扑组织,构成数据集的基本形式,用作点之间的插值信息。 处理对象vtkProcessObject:也称作过滤器,滤波器,将已有数据处理形成新的数据。代表了系统所用的算法。Process和数据对象连接在一起形成可视化管道,即数据流网络。 Source Filter Filter N Mapper Graphics Interface Data Object Data Ojbect Data Object 源Source对象:通过读取文件或重构数据对象产生数据。 过滤器Filter:将输入数据处理后生成新的数据,其中输入或输出数据可以单个,或多个Source object 绘图器Mapper:位于图形模型中,将数据转成图形数据(可由图形引擎渲染) Writer:是一种Mapper,可以将数据写入文件或输出流中。1. 管道拓扑:使用方法aFilter-SetInput(anotherFilter-GetOutPut();的不同变体来构成。多输入和多输出时类似。 2. 控制管道执行的机制:仅执行必须更新的部分,使用懒惰赋值方法Lazy evaluation(当数据被请求时才求值)。 3. 管道组装:必须满足前后两级滤波器的输出与输入兼容。(这对于编译型语言可以在编译时检查,解释型则会到运行时出错) 4. 管道执行:决定数据是否缓存或保留。这对于系统性能至关重要。VTK使用引用计数方法确定数据对象的生存期,并提供方法关启数据缓存或截取流数据片段。 VTK学习笔记4管道执行 (2007-05-22 10:44:00)Pipeline Execution Filter-MapperActor 通常不需手动激活Update()方法:滤波器是嵌入在可视化管道内 其中的Render方法经常用于初始化数据请求 Image Processing VTK中2D和3D数据都称作vtkImageData。 图像数据对象是一个规则的,轴向组织的数组。 处理对象Process在管道中总是输入和输出图像数据对象。 体绘制使用3D vtkImageData 几乎所有的处理对象在图像管道中都是多线程的,且有能力分段处理流数据(满足用户指定的内存限制)。 滤波器可以自动感知系统中的有效处理器的数目,并在执行过程中创建多线程,以及自动分割数据成片段。VTK学习笔记5创建应用程序 (2007-05-22 10:42:16)Create An Application User Methods, Observers, and Commands Callback/User method:在VTK中使用Subject/Observer和Command设计模式。 vtkObject中的每个子类都具有AddObserver()方法,可以用于设置观察者捕获对象的事件。 在其示例Examples程序中有不同语言的示例。 回调函数: myCallback:public vtkCommand static myCallback *New() return new myCallback; virtual void Execute(vtkObject *caller, unsigned long, void *callData) cerr SetClippingRange(0.0475572, 2.337786); /参数分别为沿着视向的近、远剪切面的距离 cam1-SetFocalPoint(0.052665, -0.129454, -0.0573973); /焦点:世界坐标系,控制相机方向 cam1-SetPosition(0.327637, -0.116299, -0.256418); /位置:世界坐标系,设置相机位置 cam1-ComputeViewPlaneNormal(); /重置视平面法向,基于当前的位置和焦点。否则会出现斜推剪切效果 cam1-SetViewUp(-0.0225386, 0.999137, 0.034901); /设置相机的“上”方向 ren1-SetActiveCamera(cam1); /设置渲染器的相机 设置已有的相机 cam1 = ren1-GetActiveCamera(); /获取渲染器的相机 cam1-Zoom(1.4); /放大相机,通过改变视角(SetViewAngle()), 另外,也可以使用Dolly()方法沿着视平面法向移动相机,实现放大或缩小可见角色物体。 基于焦点,使用Azimuth()和Elevation()方法设置相机的方位角和高度角仰角(度,degree)球坐标系统。 注意其中在南极和北极存在奇异点,即视向量平行于视平面法向。此时可以使用OrthogonalizeViewUp()方法强制其正交。但这会改变相机坐标系统。 正交投影vs透视投影 vtkCamera:ParallelProjectionOn()开启平行正交投影。此时需通过SetParallelScale()方法控制角色物体的缩放。Zoom不再有效。 /viewdiary.15515438.htmlVTK学习笔记8灯源控制 (2007-05-22 10:38:08)vtkLight:方向光 常用方法: SetColor:设置RGB颜色 SetFocalPoint:设置焦点 SetPosition:设置位置 绘制器vtkRender:AddLight()方法加入灯源。 通常来说灯源的焦点和位置设置成相机一样,即头灯。 点光源设置:使用PositionalOn()方法,同时使用SetConeAngle()方法设置其覆盖范围,如设为180则无点源效果。 /viewdiary.15515463.htmlVTK学习笔记9Prop控制 (2007-05-22 10:35:56)vtkProp3D是3D场景中props的抽象父类,其支持缩放,平移和旋转几何变换。 vtkActor是通过几何图元构成的prop,如多边形和直线等。 SetPositon(x, y, z)设置在世界坐标系中的位置 AddPosition(delaX, deltaY, deltaZ)平移,沿着各个轴 RotateX(theta), RotateY(theta), RotateZ(theta)分别沿着三个轴旋转角度,单位为度degree SetOrientation(x, y, z)设置方向,先绕z轴旋转,而后是x轴,而后是y轴 AddOrientation(a1, a2, a3)增加方向量 RotateWXYZ(theta, x, y, z)沿着给定的(x,y,z)向量旋转theata角度 Scale(sx, sy, sz)缩放 SetOrigin(x, y, z)指定prop的原点。该点是作为其旋转和缩放的参考点。 重点是要注意其中的变换顺序,顺序不同结果会不同。在VTK中,其变换顺序是: 先平移到原点缩放绕Y轴旋转绕X轴旋转绕Z轴旋转在从原点恢复平移 来源:/viewdiary.15515615.htmlvtk学习笔记11Picking拾取 (2007-05-22 10:35:15)Pick拾取是很普通的可视化任务。vtk中根据当前的光标位置激活vtkAbstracPicker对象的Pick()方法。 其返回的内容根据拾取的类型而定,可能是最简单的全局坐标,或者是穴,单元格,点,参数坐标,vtkProp,组装路径等。 拾取语法:Pick(SelectionX, selectionY, selectionZ, Renderer)其中Renderer中的actor都有可能被选择。 通常,selectionZ设置成0.0。当然,典型的用法是不必直接调用上述方法,而是通过vtkRenderWindowInteractor管理拾取操作。VTK学习笔记10Actor角色演员 (2007-05-22 10:31:18)标签:科学vtkActor是vtkProp3D的一个可以实作的子类,提供渲染的属性,如表面属性环境,漫反射,镜面反射颜色等,表示面或线框,纹理映射,几何体定义mapper等。 定义几何体:演员的几何形状是由SetMapper()方法确定。如 vtkPolyDataMapper* mapper = vtk
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 象山店面设计知识培训课件
- 2025版商铺租赁合同范本下载全攻略
- 2025办公室装修改造项目环保壁纸材料选用合同
- 2025版特色主题团建活动设计与执行合同范本
- 2025年度婚庆服务合同范本
- 2025版粉末涂料采购合同范本
- 2025年度区块链技术应用合作协议下载
- 2025年度物流配送合作保证金合同
- 2025年度日用品供应链金融服务合同
- 2025年购买带产权车位应签署何种合同
- 2025-2030中医药大健康产业链整合与投资机会分析报告
- 2025年第九届“学宪法、讲宪法”知识竞赛题库及答案(中小学组)
- 学前教育学完整-2017课件
- 乒乓球体育课教案1
- 自然灾害与防治
- 先进制造技术第1章
- 2023年兴文县中医院康复医学与技术岗位招聘考试历年高频考点试题含答案解析
- 用地性质分类表代码
- 中班语言绘本《点》课件
- 浙江省地方课程《人自然社会》课件
- 新版现代西班牙语第二册课后答案
评论
0/150
提交评论