vtk里面可以用这个过滤器filter,来绘制一个公式的点阵,想着其实可以把这个作为第一个切入点来把vtk里面的数据源引入到threejs里面,把threejs当作一个render,dataSource就是来自于这个vtk,下面先上一个效果图:
左边的是vtk的效果
右边是threejs的效果,还算是比较满意的
之后可以修改vtkcalculator里面的公式,就可以在three里面绘制公式了,我觉得还蛮有意思的,后期在vtk里面很多数据的算法都可以尝试移植过来。
比较three的核心概念和vtk的核心概念,其实three里面的mesh就有点类似vtk里面的actor,这个都是在对应render里面进行的渲染,需要建立映射关系
// 核心类mapper import Constants from "@kitware/vtk.js/Rendering/Core/Mapper/Constants"; import { Mesh } from "three"; import { GeometryMapper } from "./Core/GeometryMapper"; import { MaterialMapper } from "./Core/MaterialMapper"; const { ColorMode } = Constants; export class v23Mapper { constructor() { this.actor = null; } setActor(actor) { this.actor = actor; this.mapper = actor.getMapper(); } getMeshData() { if (this.mapper) { // 映射几何geometry const geoMapper = new GeometryMapper(this.mapper); const geo = geoMapper.mapGeometry(); // 映射材质material const matMapper = new MaterialMapper(this.actor.getProperty()); const mat = matMapper.mapMaterial(); const mesh = new Mesh(geo, mat); return mesh; } } }
全部代码都放到github上了
vtk to three的git地址
关注我,我持续更新vtk to three的数据pipeline,喜欢git请给我一个star
也欢迎各位给我提意见,技术交流~
大鸿
WeChat : HugeYen
WeChat Public Account : BIM树洞
做一个静谧的树洞君
用建筑的语言描述IT事物;
用IT的思维解决建筑问题;
共建BIM桥梁,聚合团队。
本学习分享资料不得用于商业用途,仅做学习交流!!如有侵权立即删除!!