我可以通过调用
来定义渲染器的backgroundColorrenderer = vtk.vtkRenderer()
renderer.SetBackground(0,255,0)
[![在此处输入图像说明] [1]] [1]
我的问题:
是否可以设置背景的不透明度?
您可以在我的示例图片中看到我的问题(有多个视口)。我可以摆脱这种"切割"只需使用透明背景......
提前谢谢!答案 0 :(得分:1)
我终于找到了解决方案:
您可以为每个渲染器设置一个图层。默认为第0层(不透明)。大于第0层的所有内容都是透明的。但请记住在0层设置至少一个带有背景颜色的空渲染器(无体积或对象)以避免难看的反射。
renderer.SetBackground(255,255,255)
renderer.SetLayer(0)
# transparency layer
renderer.SetLayer(1)
renderer.addVolume(....)
结果:
答案 1 :(得分:1)
对于那些想要在屏幕截图中使用透明度的人。
render_window = vtk.vtkRenderWindow()
render_window.AddRenderer(renderer)
render_window.SetAlphaBitPlanes(1) # Enable usage of alpha channel
...
w2if = vtk.vtkWindowToImageFilter()
w2if.SetInput(render_win)
w2if.SetInputBufferTypeToRGBA() # Also record the alpha (transparency) channel
...
此official vtk example中的更多详细信息。