VTK零散记录

图形显示图形轮廓

1.要显示图形的轮廓线可以通过设置Actor的属性

(1)Actor->GetProperty()->EdgeVisibilityOn();
(2)Actor->GetProperty()->SetRepresentationToWireframe();

方法(2)对比方法(1)而言,会去除面的显示,只保留线。

上述例子中,Actor对象是一个《vtkActor》类。

三维等直面颜色映射问题

在VTK中使用【vtkContourFilter】方法获取等值面后,很可能出现等直面颜色无法映射问题。

显示的等值面显示为黑色,随角度不同,可能会有部分颜色显示,但基本也是颜色不对。

查阅资料了解到,是因为通过【vtkContourFilter】方法,不会计算图形的法线,所以无法正常显示光照效果。

所以在调用完vtkContourFilter后需要调用【vtkPolyDataNormals】方法重新计算法线。

例:

//vtkRenderer *renderer;
//vtkMultiBlockDataSet *mb;
//省略数据生成过程

vtkNew<vtkContourFilter> contour;
contour->SetInputData(mb);
contour->SetNumberOfContours(1);
contour->SetValue(0, 35.8423996);

vtkNew<vtkPolyDataNormals> normals;
normals->SetInputConnection(contour->GetOutputPort());

vtkNew<vtkCompositeDataGeometryFilter> geom;
//geom->SetInputConnection(0, contour->GetOutputPort(0));
geom->SetInputConnection(0, normals->GetOutputPort(0));

vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputConnection(0, geom->GetOutputPort(0));

vtkNew<vtkActor> actor;
actor->SetMapper(mapper);
renderer->AddActor(actor);
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值