首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Activiz (C#) VTK与Python呈现质量

Activiz (C#) VTK与Python呈现质量
EN

Stack Overflow用户
提问于 2016-01-04 09:52:25
回答 1查看 385关注 0票数 1

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

这是一个Python截图

这是相应的Activiz VTK屏幕截图

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

这是Activiz呈现设置:

代码语言:javascript
复制
vtkOpenGLRenderer renderer = new vtkOpenGLRenderer();            
renderer.SetBackground(1, 1, 1);
vtkWin32OpenGLRenderWindow window = new vtkWin32OpenGLRenderWindow();
window.SetSize(1000, 1000);
window.AddRenderer(renderer);

添加STL如下所示

代码语言:javascript
复制
vtkPolyDataMappermapper = vtkPolyDataMapper.New();
mapper.SetInput(_polydata);
vtkActor actor = vtkActor.New();
actor.SetMapper(mapper);
actor.GetProperty().SetColor((double)color.R / 255, (double)color.G / 255, (double)color.B / 255);
actor.GetProperty().SetOpacity(alpha);
actor.GetProperty().SetInterpolationToPhong();
renderer.AddActor(actor);

这是最初的Python呈现设置

代码语言:javascript
复制
renderer = vtkOpenGLRenderer()
renderer.SetBackground(1,1,1)
window = vtkWin32OpenGLRenderWindow()
window.SetSize(1000,1000)
window.AddRenderer(renderer)

在Python中添加这样的STL

代码语言:javascript
复制
mapper = vtkPolyDataMapper()
mapper.SetInputData(polydata)
actor = vtkActor()
actor.SetMapper(mapper)
actor.GetProperty().SetColor(color)
actor.GetProperty().SetOpacity(alpha)
actor.GetProperty().SetInterpolationToPhong()
renderer.AddActor(actor)

有没有人有过类似的经历,或者有人知道是什么导致了质量上的差异?

亲切的问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-04 11:24:03

也许相机剪裁平面 (参见“透视投影”)被设置为不同的值。如果裁剪范围太大,则可能会发生这种呈现错误。尝试将其设置得足够小,以便显示所有对象。还没试过,但像这样的:

代码语言:javascript
复制
renderer.GetActiveCamera().SetClippingRange(0.1, 100);

其中,这两个参数是近和远截取平面与相机的距离。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34588432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档