Activiz(C#)VTK vs Python VTK渲染质量

2024-06-16 10:47:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python创建了一个小工具,它显示了几个stl并创建了它们的许多屏幕截图。最近,我使用activizvtk包装器将这个工具转换为C#(两个VTK实现都是版本5.8.0)。 C实现中创建的屏幕截图的质量与Python屏幕截图的质量相似,只是stl相互重叠。在

这是一张Python VTK屏幕截图

这是相应的Activiz VTK屏幕截图

如您所见,在ActivizVTK中,红色对象通过米黄色对象显示,橙色(和红色)对象也通过左侧的蓝色对象显示。在

这是Activiz渲染设置:

vtkOpenGLRenderer renderer = new vtkOpenGLRenderer();            
renderer.SetBackground(1, 1, 1);
vtkWin32OpenGLRenderWindow window = new vtkWin32OpenGLRenderWindow();
window.SetSize(1000, 1000);
window.AddRenderer(renderer);

stl是这样添加的

^{pr2}$

这是原始的Python渲染设置

renderer = vtkOpenGLRenderer()
renderer.SetBackground(1,1,1)
window = vtkWin32OpenGLRenderWindow()
window.SetSize(1000,1000)
window.AddRenderer(renderer)

stl在Python中是这样添加的

mapper = vtkPolyDataMapper()
mapper.SetInputData(polydata)
actor = vtkActor()
actor.SetMapper(mapper)
actor.GetProperty().SetColor(color)
actor.GetProperty().SetOpacity(alpha)
actor.GetProperty().SetInterpolationToPhong()
renderer.AddActor(actor)

有没有人有过类似的经历,或者有人知道造成这种质量差异的原因吗?在

谨致问候


Tags: 工具对象屏幕质量windowrendereractormapper
1条回答
网友
1楼 · 发布于 2024-06-16 10:47:30

{a1(可能设置了不同的透视图)。如果剪切范围太大,则可能会发生这种渲染错误。尽量将其设置得足够小,以便显示所有对象。还没试过,但像这样:

renderer.GetActiveCamera().SetClippingRange(0.1, 100);

其中两个参数是近剪裁平面和远剪裁平面到摄影机的距离。在

相关问题 更多 >