使用vtk和k3d在jupyter笔记本中渲染gltf/glb文件

2024-01-24

我探索了如何在 jupyter 笔记本中内联渲染 gltf/glb 文件以保持查看器回调交互性完整的可用方法。我最终使用 vtk 和 k3d 来实现这一目标。我遇到的两个障碍是:

  1. 如何使用 vtkGLTFReader() 从 vtkPolyData 对象中获取 glb 并在 k3d 中渲染它们?SOLUTION:参见评论中发布的方法。

  2. 如何显示嵌入在 gltf/glb 中的颜色/纹理以显示它们 k3d?


以下是获取 vtkPolyData 并将其传递给 k3d 的代码。

import k3d
import vtk
import ipywidgets as widgets

reader = vtk.vtkGLTFReader() 
reader.SetFileName('sample_glb/GroundVehicle.glb')
reader.Update() 

plot = k3d.plot()
mb = reader.GetOutput()

iterator = mb.NewIterator()

vtk_polyobjects = []
while not iterator.IsDoneWithTraversal():
    item = iterator.GetCurrentDataObject()
    vtk_polyobjects.append(item)
    iterator.GoToNextItem()

    
for obj in vtk_polyobjects:
    plot += k3d.vtk_poly_data(obj, color=0x222222)
plot.display()

debug_info = widgets.HTML()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用vtk和k3d在jupyter笔记本中渲染gltf/glb文件 的相关文章

随机推荐

  • 减少 Pyinstaller 生成的可执行文件的文件大小的一般技巧有哪些

    我正在使用 Pyinstaller 将 python 脚本转换为可执行文件 该脚本包含来自各种包 如 nltk begin json 等 的多个导入 10 行代码生成的可执行文件为 54MB 这是不切实际的高 我知道它将所有模块打包在一个文
  • 形成对对象的引用是否构成访问?

    形成对对象的引用是否构成访问 以下是 GCC 和 Clang 目前所做的事情 void test int const volatile ptr noexcept ptr movl rdi eax Reads ptr maybe unused
  • 在使用 MediaCodec 进行编码之前裁剪视频以进行 Grafika 的“连续捕获”活动

    我正在了解 Grafika 的 连续捕获 活动 它是关于使用 MediaCodec 录制视频 活动源代码位于https github com google grafika blob master src com android grafik
  • 朱莉娅:外积函数

    In R 功能outer结构上允许您获取两个向量的外积x and y同时提供了许多应用于每个组合的实际功能的选项 例如outer x y 创建一个 外积 矩阵 其中包含元素之间的差异x and y 朱莉娅有类似的东西吗 广播是添加时发生的
  • 创意中的无定形镜片

    我尝试对 scala 2 10 3 使用版本 2 0 0 的无形状镜片 我有与此类似的代码 import shapeless case class A map Map String String case class B a A val m
  • 在 Android Jetpack Compose 中使用 State 时出现 java.lang.IllegalStateException

    I have ViewModel使用 Kotlin 密封类为 UI 提供不同的状态 另外 我用androidx compose runtime State通知 UI 有关状态更改的对象 如果出现错误MyApi请求发生时 我把UIState
  • iCloud 和 Xcode 6 - 无处不在的容器

    我目前正在开发一个适用于 iOS 8 的应用程序 它使用 iCloud Drive 和 CloudKit Framework 一切都是使用 Xcode 6 设置的 When I try to submit my App to iTunesC
  • 如何构建F#类型的实现业务规则?

    我正在尝试在 F 中构建一个类型 当我获得该类型的对象时 我可以确定它处于有效状态 该类型称为JobId它只持有一个Guid 业务规则是 它必须是一个 Guid 但不能是空的 Guid 我已经在 C 中实现了该类型 但现在我想将其移植到 F
  • 从 ruby​​ c 扩展中的线程调用 IO 操作将导致 ruby​​ 挂起

    我在使用 C 扩展中的线程异步运行 ruby 代码时遇到问题 我有以下 C 代码 struct DATA VALUE callback pthread t watchThread void ptr void executer void pt
  • 如何检查 python 2.7 中的原始输入是否为整数?

    有没有一种方法可以用来检查raw input是一个整数 我在网上查了资料后发现了这个方法 print isinstance raw input number int 但是当我运行它并输入4例如 我得到FALSE 我对 python 有点陌生
  • 将 POI 工作簿流式传输到 servlet 输出流

    我在我的网络服务器上构建了一个非常大的 POI 工作簿 将整个工作簿保存在内存中 不会针对多个并发请求进行扩展 有没有办法可以逐步将工作簿写入 servlet 输出流 这应该会减少响应时间 并提高进程内存的效率 如果您要生成 Excel 2
  • Guice 和一般应用程序配置

    对于用 Java 编写的监控软件 我考虑使用 Google Guice 作为 DI 提供程序 项目需要从外部资源 文件或数据库 加载其配置 该应用程序设计为在独立模式或 servlet 容器中运行 目前 配置不包含用于依赖项注入的绑定或参数
  • 如何在Release模式下启用TRACE宏?

    The 跟踪宏 http msdn microsoft com en us library 4wyz8787 VS 80 aspx可用于在代码编译时向调试器输出诊断消息Debug模式 我在的时候需要同样的信息Release模式 有办法实现这
  • chrome浏览器粗边框问题

    边框折叠在 Chrome 浏览器中无法正常工作 有些边界线看起来很粗 请查看这张图片并帮助我解决这个错误 I need lite border for all rows but highlighted rows border are loo
  • 如何使用 scikit learn inverse_transform 和新值

    我有一组数据是我使用scikit learn PCA 我在使用 StandardScaler 执行 PCA 之前对数据进行了缩放 variance to retain 0 99 np scaled StandardScaler fit tr
  • Flex/Lex 和 Yacc/Bison 有什么区别?

    Flex Lex 和 Yacc Bison 之间有什么区别 我在网上疯狂搜索 没有找到任何可靠的答案 我可以在 Ubuntu 上安装纯 Lex 和 Yacc 还是可以只安装 flex 和 bison 我很困惑 Lex 或 Yacc 是否仍然
  • 查找点是否在给定圆心和半径的圆内

    我们有一个观点 x y 以及其他一些点 xi yi 我们如何确定哪一个 xi yi 在以圆心为圆心的圆内 x y 和半径r 给定数字 xi x 2 yi y 2 lt r 2
  • 如何找到与不受 git 控制的项目修订相对应的提交?

    考虑以下情况 我有一个项目的源代码 几个文件夹和文件 不幸的是 源代码不受版本控制 然而 这个项目有一个远程 git 存储库 如何在 git 存储库中找到与我的项目修订相对应的提交 我的强力方法是 克隆存储库 在不同的提交处签出并将签出的文
  • 登录系统设计允许每个用户一次在一台机器上登录

    我应该如何设计一个登录系统 使每个用户名一次只能在一个地方登录 我希望阻止用户将他们的用户名提供给其他人登录 这样他们就可以避免为每个用户付费 如果用户已经登录并尝试在另一台计算机上登录 我是否应该阻止第二次登录 如果用户在工作中登录然后尝
  • 使用vtk和k3d在jupyter笔记本中渲染gltf/glb文件

    我探索了如何在 jupyter 笔记本中内联渲染 gltf glb 文件以保持查看器回调交互性完整的可用方法 我最终使用 vtk 和 k3d 来实现这一目标 我遇到的两个障碍是 如何使用 vtkGLTFReader 从 vtkPolyDat