文档章节

认识VTK工作原理(包括各个模块作用、数据流等)

天蚕宝衣
 天蚕宝衣
发布于 2017/03/12 22:22
字数 772
阅读 269
收藏 2

VTK有两个子系统组成:一个是编译生成的C++类库,一个是通过Java,Tcl,Python语言来使用这些类的解释包。

VTK是通过数据流的方法,实现变信息为图形数据的。

数据流一般为:

source——filter——mapper——actor——render——renderwindow——interactor。

Actor用来在场景中表现一个可视化实体,也可以成为3D图形的描绘实现,主要用于对图形的描绘

Actor类还包含一些属性,用来对显示的对象进行设置,如Actor->GetProperty->SetColor(1,1,1,)表示白色,也就是将绘制的对象着色为白色。

Camera在VTK中可以理解为视点(FocalPoint),即观察者的位置,或者称为虚拟照相机实现3D视图。

操作方法比较简单,强调的使另外两个重要的方法:

Azimuth(150)表示Camera的视点位置沿着顺时针旋转150角度;

Elevation(60)表示Camera的视点位置沿着向上方向旋转60角度。

Filter是一种数据处理机制,有一个或者多个输入,但仅有一个输出。其目的是对图形图像数据进行处理,以便得到我们期望的数据。

要理解工作原理,首先明确几个类型:

1. vtkSource(数据源)

这个就好比一个剧本里面的角色,让演员知道要演的是什么人物。

数据源有:vtkConeSource,vtkSphereSource,vtkOutlineSource等等。

它们都继承与vtkPolyDataAlgorithm类,该类用于提供不同的类型的数据源。

2. vtkMapper(映射器)

它就像是一个剧本,应该如何塑造角色的装扮。

映射器有:vtkDataSetMapper,vtkMultiGroupPolyDataMapper,vtkPolyDataMapper.

它们都继承于vtkMapper类。所有的数据对象都要通过映射器Mapper映射到vtkActor中。

3. vtkActor(演员)

有了剧本,有了角色,得找个真人来演出这个剧本了。

该类继承于vtkProp3D,有4个子类:vtkFollow,vtkLODActor,vtkMesaActor,vtkOpenGLActor.

4. vtkRenderer(渲染器)

负责管理场景的渲染过程,这个过程就相当于对演员进行化妆并布置场景,组成场景的对象包括Prop、相机(vtkCamera)和光照(vtkLight),一个vtkRenderWindow中可以有多个vtkRenderer对象。

该类继承于vtkViewport,有2个子类:vtkMesaRender, vtkOpenGLRender.

该类的一个主要作用是设置vtk渲染窗口vtkRenderWindow的背景颜色。

vtkRenderer::AddActor();      // 该方法用于将vtkProp类型的对象添加到渲染场景中。 
vtkRenderer::SetBackground(); // 该方法用于设置渲染场景的背景颜色。

5. vtkRenderWindow(窗口)

这个就相当于个舞台,把准备好的演员放进去,准备表演了;

该类继承于vtkWindow,有2个子类:vtkMesaWindow,vtkOpenGLWindow.

6. vtkRenderWindowInteractor(窗口交互器)    

这个像摄像机,用于捕捉演员的动作,然后传给导演看。

该类的继承关系在vtkRenderWindowInteractor文章中已给出。

7. vtkInteractorObserver(观察者)        

有点导演的意思,导演通过观看录像后,做出一系列调整

该类的继承关系在vtkRenderWindowInteractor文章中已给出

总结:

这里写图片描述

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
天蚕宝衣
粉丝 24
博文 240
码字总数 179371
作品 0
天津
私信 提问
VTK面绘制(SR)与体绘制(VR)

面绘制 (Surface Rendering) VTK中基于面绘制实现三维重建,使用的是经典的Marching Cubes(移动立方体法)算法。      面绘制是采用分割技术对一系列的二维图像进行轮廓识别、提取等操作,...

006玩命
2018/05/08
0
0
详解网络流量监控

详解网络流量监控 网络的行为特征可以通过其承载的流量的动态特性来反映,所以有针对性地监测网络中流量的各种参数(如接收和发送数据报大小、丢包率、数据报延迟等信息),能从这些参数中分析...

OSSIM
2016/04/10
985
0
详解网络流量监控​

详解网络流量监控 网络的行为特征可以通过其承载的流量的动态特性来反映,所以有针对性地监测网络中流量的各种参数(如接收和发送数据报大小、丢包率、数据报延迟等信息),能从这些参数中分析...

李晨光
2016/04/07
0
0
详解网络流量监控

详解网络流量监控 网络的行为特征可以通过其承载的流量的动态特性来反映,所以有针对性地监测网络中流量的各种参数(如接收和发送数据报大小、丢包率、数据报延迟等信息),能从这些参数中分析...

OSSIM
2016/04/10
1K
0
Activiz 使用笔记-3 数据源(1)

activiz本身自带的user guide 比较简单,所以我按着vtk的user guide来慢慢学。从简单例子入手去学习VTK。当然我之前已经看过很多VTK相关的东西了,但是没有自己去写去总结,导致我一段时间不...

小王爷和老王爷
2015/09/07
230
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
今天
7
0
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
今天
2
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
今天
4
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
今天
3
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部