VTK知识学习(22)- 场景的导入与导出

server/2024/12/15 15:01:33/

一、VTK 场景的基本概念

  1. 定义
    • VTK(Visualization Toolkit)场景是一个用于可视化数据的三维空间环境。它是 VTK 可视化流程中的一个关键部分,在这个场景中可以放置各种几何对象、数据源对象和可视化对象,并且可以对它们进行渲染以生成高质量的可视化图像。
    • 例如,想象一个虚拟的房间,VTK 场景就相当于这个房间,你可以在房间里摆放各种物品(如模型、数据点等)来构建可视化的内容。
  2. 组成元素
    • 几何对象(Geometric Objects):包括点、线、多边形等基本几何形状。例如,一个简单的三角形可以作为一个几何对象放在场景中。这些几何对象可以是通过数据转换而来,也可以是直接创建的简单形状,用于构建更复杂的模型。
    • 数据源(Data Sources):是场景中数据的来源。如 vtkPolyData、vtkImageData 等。以医学影像数据为例,vtkImageData 可以作为数据源,它包含了医学图像(如 CT、MRI 等)的像素信息,这些信息在场景中经过处理和可视化后,可以帮助医生观察人体内部结构。
    • 可视化对象(Visualization Objects):像 Mapper(映射器)和 Actor(演员)。Mapper 负责将数据从数据源转换为可以被渲染的图形原语,而 Actor 则用于在场景中表示一个可视化对象,它包含了几何对象和可视化属性(如颜色、透明度等)。

二、场景的导入与导出

场景的导入(1mport)与导出(Export)是指将渲染场景中的对象,包括光照、相机、Actor、属性、变换矩阵等信息写入文件中,或者从外部文件中将这些对象导入渲染场景中,一般所导入的文件含有多个数据集。

Import类可以生成 vkRenderWindow和 vtkRenderer 实例,用户也可以另外指定 vtkRenderWindow 和 vtkRenderer 对象。

VTK 中一般以关键字 Importer 和Exporter 命名的类是与场景的导入与导出相关的。Importer 类可以导入由其他 3D 模型软件(如 3DS MAX)所生成的模型文件;Exporter 则可以将 VTK 里的场景生成可被其他 3D 模型软件所处理的文件。

 支持的

         Import 类: vtk3DSImporter 和vtkVRMLImporter

        Exporter 类: vtkRIBExporter、vtkGL2PSExporter、vtkIVExporter、vtkOBJExporer、vtk00GLExporter、vtkVRMLExporter、vtkPOVExporter、vtkX3DExporter 等。

三、示例

private void RenderImporter(){vtk3DSImporter importer = vtk3DSImporter.New();importer.SetFileName("F:\\code\\VTK\\TestActiViz\\bin\\Debug\\data\\R8.3ds");importer.ComputeNormalsOn();importer.Read();vtkRenderer renderer = importer.GetRenderer();vtkRenderWindow renderWindow = importer.GetRenderWindow();vtkRenderWindowInteractor renderWindowInteractor = vtkRenderWindowInteractor.New();renderWindowInteractor.SetRenderWindow(renderWindow);renderer.GradientBackgroundOn();renderer.SetBackground(1.0, 1.0, 1.0);renderer.SetBackground2(0.0, 0.0, 0.0);vtkRenderWindow renWin = renderWindowControl.RenderWindow;importer.SetRenderWindow(renWin);renWin.AddRenderer(renderer);renWin.Render();}


http://www.ppmy.cn/server/150370.html

相关文章

C 进阶 — 指针的使用

C 进阶 — 指针的使用 主要内容 1、字符指针 2、数组指针 3、指针数组 4、数组传参和指针传参 5、函数指针 6、函数指针数组 7、指向函数指针数组的指针 8、 回调函数 9、指针和数组练习题 前节回顾 1、指针就是个变量,用来存放地址,地址唯一…

使用goquery和chromedp写爬虫

在本文中,我们将探索如何利用两个强大的Go语言包——goquery和chromedp——来爬取网页文章。goquery是一个轻量级且易于使用的库,它提供了基本的HTTP请求功能,允许我们直接向目标URL发起请求并获取页面内容。相比之下,chromedp则提…

嵌入式硬件-- 元器件焊接

1.锡膏的使用 锡膏要保存在冰箱里。 焊接排线端子;138度的低温锡(锡膏), 第一次使用,直接拿东西挑一点涂在引脚上,不知道多少合适,加热台加热到260左右,放在上面观察锡融化&#…

快速部署一套K8s集群-v1.28

快速部署一套K8s集群-v1.28 1.前置知识点 1.1 生产环境可部署Kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式: kubeadmKubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。 二进制包从github下载发行版的二进…

【工具变量】省级农产品进出口数据及农产品国际贸易数据(2001-2022年)

一、包含指标: yearID农产品出口额(亿元)农产品进口额(亿元)农产品出口额(万美元)农产品进口额(万美元) 二、数据来源:中国商务部贸易司、《中国农业年鉴》 三、资料范围:附带各个年度的汇率计…

Dart 3.6 发布,workspace 和 Digit separators

workspace 之前我们就聊过 Flutter 正在切换成 Monorepo 和支持 workspaces ,Dart 3.6 开始,Pub 现在正式支持 monorepo 或 workspace 中 package 之间的共享解析。 pub workspaces 功能可确保 monorepo 中的 package 共享一组一致的依赖项&#xff0c…

【arm】程序跑飞,SWD端口不可用修复(N32G435CBL7)

项目场景: 国民N32G43X系列,烧录了一个测试程序,在DEBUG中不知什么原因挂掉,然后就无法连接SWD或JLINK。 问题描述 在SWD配置中不可见芯片型号,无法connect,无法烧录。但基本判断是芯片没有损坏。怀疑是程…

学习日志023---初始opencv

一、二值化 功能 二值化图:就是将图像中的像素改成只有两种值,其操作的图像必须是灰度图 1.1、阈值法(THRESH_BINARY) 通过设置一个阈值,将灰度图中的每一个像素值与该阈值进行比较,小于等于阈值的像素就被设置为0&#xff08…