0

我不能让 openvr 和 vtk python 一起工作。目前我正在为此使用 spyder ide。

我在 C++ 中使用 vtk 和 openvr 完成了一些代码,只是将 vtkRenderer 更改为 vtkOpenVRRenderer 等等。但它在 spyder 中不起作用。

import vtk
import openvr


class vtk:   

    colors = vtk.vtkNamedColors()

    reader = vtk.vtkXMLPolyDataReader()
    reader.SetFileName("D:\\UNAM\\MultiBlockDataSet\\Dist\\Distancias_00_0.vtp")
    reader.Update()

    mapper = vtk.vtkPolyDataMapper()
    mapper.SetInputConnection(reader.GetOutputPort())

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)
    actor.GetProperty().SetColor(colors.GetColor3d('Tan'))

    ren = vtk.vtkRenderer()
    renWin = vtk.vtkRenderWindow()
    renWin.AddRenderer(ren)
    ren.SetBackground(colors.GetColor3d('AliceBlue'))

    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(renWin)

    ren.AddActor(actor)

    iren.Initialize()
    renWin.Render()
    ren.GetActiveCamera().SetPosition(-0.5, 0.1, 0.0)
    ren.GetActiveCamera().SetViewUp(0.1, 0.0, 1.0)
    renWin.Render()
    iren.Start()

if __name__ == "__main__":
    vtk()
4

1 回答 1

1

看看这篇文章,也许会跟进 VTK Discourse:https ://discourse.vtk.org/t/python-rendering-scene-to-vr/340

编辑:这里有更多信息,因为链接的答案被认为是蹩脚的。

  1. 您必须在启用 OpenVR 的情况下从源代码构建 VTK - 这完全是另一个讨论
  2. 您需要替换以下类:

    • vtkRendererWindow --> vtkOpenVRRenderWindow
    • vtkRenderer --> vtkOpenVRRenderer
    • vtkRenderWindowInteractor --> vtkOpenVRRenderWindowInteractor
    • vtkCamera --> vtkOpenVRCamera

如果您还有其他与 VTK 相关的问题,我强烈建议您加入 VTK 讨论,因为它是围绕 VTK 最活跃的社区

于 2019-10-26T23:09:22.883 回答