首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VTK和Paraview体绘制

VTK和Paraview体绘制
EN

Stack Overflow用户
提问于 2017-01-28 08:19:39
回答 2查看 1.7K关注 0票数 1

Paraview是一个基于VTK库的可视化应用程序。我有一个体积(vti格式),我可以在Paraview中可视化它,并设置颜色和不透明度传递函数。我也可以将其作为vtkImageData加载到VTK中,并使用与Paraview相同的颜色和传递函数设置来渲染它,但是,我无法获得相同的结果。体积的Paraview渲染:

使用相同设置的VTK渲染体积:

Paraview中的设置:

VTK中用于设置的代码片段:

代码语言:javascript
复制
vtkSmartPointer<vtkPiecewiseFunction> compositeOpacity =
vtkSmartPointer<vtkPiecewiseFunction>::New();
compositeOpacity->AddPoint(0.0,0.0);
compositeOpacity->AddPoint(255,1.0);

vtkSmartPointer<vtkColorTransferFunction> color =
        vtkSmartPointer<vtkColorTransferFunction>::New();
color->AddRGBPoint(0.0  , 0.231373, 0.298039, 0.752941);
color->AddRGBPoint(18.62, 0.865, 0.865, 0.865);
color->AddRGBPoint(61.52, 0.9647, 0.639, 0.518);
color->AddRGBPoint(249, 0.705882, 0.01568, 0.14902);

vtkSmartPointer<vtkVolumeProperty> volumeProperty =
        vtkSmartPointer<vtkVolumeProperty>::New();
volumeProperty->SetScalarOpacity(compositeOpacity); // composite first.
volumeProperty->SetColor(color);

// Visualize
vtkSmartPointer<vtkSmartVolumeMapper> mapper =
        vtkSmartPointer<vtkSmartVolumeMapper>::New();
mapper->SetInputData(imageData);
mapper->SetRequestedRenderModeToDefault();

如何才能在VTK中获得相同的渲染效果?

EN

回答 2

Stack Overflow用户

发布于 2017-02-25 01:22:29

我相信你必须在Paraview中禁用不透明贴图。

希望它能帮上忙!

票数 0
EN

Stack Overflow用户

发布于 2018-11-08 00:25:18

尝试显式设置混合模式,例如: mapper->SetBlendModeToComposite();

根据您选择的模式,vtkSmartVolumeMapper使用不同的映射器。请参阅此处的文档:https://www.vtk.org/doc/nightly/html/classvtkSmartVolumeMapper.html

我使用的是vtkOpenGLGPUVolumeRayCastMapper而不是vtkSmartVolumeMapper,并且在我的应用程序中,音量透明效果显示正确。

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

https://stackoverflow.com/questions/41905072

复制
相关文章

相似问题

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