VTk通过数据流实现变信息为图形数据的。

数据流一般为:source—filter——mapper——actor——render——renderwindow——interactor。

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

1.vtkSource(数据源)   这个就好比一个剧本里面的角色,让演员知道要演的是什么人物。

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

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

2.vtkMapper(映射器)   它就像是一个剧本,应该如何塑造角色的装扮

映射器有:vtkDataSetMapper,vtkMultiGroupPolyDataMapper,vtkPolyDataMapper。

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

3.vtkActor(演员) 有了剧本,有了角色,得找个真人来演出这个剧本了。

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

4.vtkRenderer(渲染器)   这个过程就相当于对演员进行化妆并布置场景;

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

该类另外一个作用是设置窗口vtkRenderWindow的背景.

5.vtkRenderWindow(窗口)    这个就相当于个舞台 ,把准备好的演员放进去,准备表演了;

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

6.vtkRenderWindowInteractor(窗口交互器)    这个像摄像机,用于捕捉演员的动作,然后传给导演看

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

7.vtkInteractorObserver(观察者)        有点导演的意思,导演通过观看录像后,做出一系列调整

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

源Source对象:通过读取文件或重构数据对象产生数据。
过滤器Filter:将输入数据处理后生成新的数据,其中输入或输出数据可以单个,或多个Source object
绘图器Mapper:位于图形模型中,将数据转成图形数据(可由图形引擎渲染)
Writer:是一种Mapper,可以将数据写入文件或输出流中。

认识VTK工作原理的更多相关文章

  1. 菜鸟学Struts2——Struts工作原理

    在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...

  2. 【夯实Nginx基础】Nginx工作原理和优化、漏洞

    本文地址 原文地址 本文提纲: 1.  Nginx的模块与工作原理    2.  Nginx的进程模型    3 . NginxFastCGI运行原理        3.1 什么是 FastCGI   ...

  3. HashMap的工作原理

    HashMap的工作原理   HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间 ...

  4. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)

    RAC 工作原理和相关组件(三) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...

  5. ThreadLocal 工作原理、部分源码分析

    1.大概去哪里看 ThreadLocal 其根本实现方法,是在Thread里面,有一个ThreadLocal.ThreadLocalMap属性 ThreadLocal.ThreadLocalMap t ...

  6. Servlet的生命周期及工作原理

    Servlet生命周期分为三个阶段: 1,初始化阶段  调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...

  7. 代码管理工具 --- git的学习笔记二《git的工作原理》

    通过几个问题来学习代码管理工具之git 一.git是什么?为什么要用它?使用它的好处?它与svn的区别,在Mac上,比较好用的git图形界面客户端有 git 是分布式的代码管理工具,使用它是因为,它便 ...

  8. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  9. 浏览器内部工作原理--作者:Tali Garsiel

    本篇内容为转载,主要用于个人学习使用,作者:Tali Garsiel 一.介绍 浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工作原理,我们将看到,从你在地址栏输入google.com到你看到 ...

随机推荐

  1. linux 之静默安装oracle

    Web服务器上面的Linux一般是不会有图形界面的,所有通过图形界面来安装Linux的方式在没有图形界面的Linux上面是行不通的,我们要使用的安装方式叫做Linux的静默安装.即在没有图形界面的Li ...

  2. mybatic与spring结合的事务管理

    原文地址:http://czj4451.iteye.com/blog/2037759 mybatis与spring结合后,事务管理更加方便,这里介绍使用transactionnal的方式,有错的的地方 ...

  3. PYTHON解析XML的多种方式效率对比实测

    在最初学习PYTHON的时候,只知道有DOM和SAX两种解析方法,但是其效率都不够理想,由于需要处理的文件数量太大,这两种方式耗时太高无法接受. 在网络搜索后发现,目前应用比较广泛,且效率相对较高的E ...

  4. 面试问题2:给一个5G的大文件,保存的数据为32位的整型,找到所有出现次数超过两次的数字

    问题描述:给一个5G的大文件,保存的数据为32位的整型,找到所有出现次数超过两次的数字 大数据操作: 解决方法一: 依次遍历文件数据, 开始32二进制清0 每次读取一个数,先和二进制位与,如果为0 则 ...

  5. 【ASC 23】G. ACdream 1429 Rectangular Polygon --DP

    题意:有很多棍子,从棍子中选出两个棍子集合,使他们的和相等,求能取得的最多棍子数. 解法:容易看出有一个多阶段决策的过程,对于每个棍子,我们有 可以不选,或是选在第一个集合,或是选在第二个集合 这三种 ...

  6. Struts2 JSON

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式 (本质是一种数据传输格式) 定义json对象 var json={"firstName" ...

  7. BZOJ2595[WC2008]游览计划

    Description Input 第一行有两个整数,N和 M,描述方块的数目. 接下来 N行, 每行有 M 个非负整数, 如果该整数为 0, 则该方块为一个景点:否则表示控制该方块至少需要的志愿者数 ...

  8. OllyUni.dll

    OllyUni.dll 周银辉 好像很多人找不到OllyUni.dll ,下载在这里:http://www.phenoelit.org/win/index.html 注:在OllyDBG2.0中用不了 ...

  9. 【原】浅谈KL散度(相对熵)在用户画像中的应用

    最近做用户画像,用到了KL散度,发现效果还是不错的,现跟大家分享一下,为了文章的易读性,不具体讲公式的计算,主要讲应用,不过公式也不复杂,具体可以看链接. 首先先介绍一下KL散度是啥.KL散度全称Ku ...

  10. Spring Boot 添加Shiro支持

    前言: Shiro是一个权限.会话管理的开源Java安全框架:Spring Boot集成Shiro后可以方便的使用Session: 工程概述: (工程结构图) 一.建立Spring Boot工程 参照 ...