vtkMapper 以及其方法 SetInputData SetInputConnection SetSourceConnection

vtkMappe及其派生类,负责把输入数据转换为图元(例如显示为点、显示为线、显示为面等)。该类存储需要渲染的数据,以及一些渲染配置。我们经常看到的vtkActor->SetMapper(mapper),含义就是把负责提供图元数据的mapper连接到渲染引擎actor

vtkMapper的重要渲染配置

1.选择使用顶点进行渲染还是拓扑结构(cell data)进行渲染
即将需要渲染的数据解释为点数据还是cell数据,默认是解释为点数据:

//mapper->SetScalarModeToUseCellData();
mapper->SetScalarModeToUsePointData();

数据源vtkUnstructuredGridmapper也有跟这个类似的设置需要一起设置:

// Use following settings when data is mappped to vertex
grid->GetPointData()->SetActiveVectors("vector_field_name");
grid->GetPointData()->SetActiveScalars("scalar_field_name");

// Use following settings when data is mapped to cell
// grid->GetCellData()->SetActiveVectors("vector_field_name");
// grid->GetCellData()->SetActiveScalars("scalar_field_name");

2.标量可见性开关
控制是否使用标量渲染数据,以及使用标量数据映射颜色(LUT):

mapper->SetScalarVisibility(true);
mapper->SetColorModeToMapScalars();
mapper->UseLookupTableScalarRangeOn();

mapper->SelectColorArray("array_name");
mapper->SetLookupTable(lut);
mapper->Update();

3.z-buffer
mapper的另一个重要设置是,它能够沿着z-buffer深度方向,逐像素解析同一个拓扑结构。比如绘制一个网格,网格上有不同颜色的边线(edges),z-buffer设置可以使得不同颜色之间有一个渐变的过程,就会得到非常好看的线段。
比如,如果想画一个网格,这个网格带有边界,并且边界线的艳色和网格的颜色不一样,这个时候打开深度偏移就可以得到很好的效果。

SetInputData, SetInputConnection, SetSourceConnection

*SetInputData:即直接给mapper填入数据。
*SetInputConnection:即通过管线(pipeline)将经过某个filter处理之后的输出作为另一个filter的输入,通俗来说就是数据点。
*SetSourceConnection:通俗来说以怎么样的图形形式来展示数据点。
示例展示SetInputConnectionSetSourceConnection

glyph3D->SetSourceConnection(arrowSource->GetOutputPort());
glyph3D->SetInputConnection(brownianPoints->GetOutputPort());

vtkMapper的继承子类

引用

*VTK的Mapper
*VTK笔记-Mapper 映射器介绍-从vtkMapper开始说起

posted @ 2023-07-27 09:21  山岚2013  阅读(408)  评论(0编辑  收藏  举报