vtkLookupTable指定具有不透明度的颜色

时间:2012-06-10 12:00:02

标签: vtk lookup-tables

我正在尝试使用vtkLookupTable来设置网格的颜色。我开始使用vtkColorTransferFunction,除了它不能使我设置各种颜色的不透明度之外,它被罚款。 vtkLookupTable提供了这个机会,但是我遇到了问题让它运转起来。

我的vtkPolyData设置了标量值,用于确定它们应该获得的颜色。总共7个值,使用标量0到6设置。

我的vtkLookupTable看起来像这样:

vtkLookupTable lut = new vtkLookupTable();
    lut.SetNumberOfColors(7);
    double opacity = 0.3;
    lut.SetTableValue(0, 0, 0, 1, opacity);
    lut.SetTableValue(1, 0, 1.0, 0, opacity);
    lut.SetTableValue(2, 0.6, 1.0, 0.0, opacity);
    lut.SetTableValue(3, 1.0, 1.0, 0.0, 0.7);
    lut.SetTableValue(4, 1.0, 0.8, 0.0, opacity);
    lut.SetTableValue(5, 1.0, 0.4, 0.0, opacity);
    lut.SetTableValue(6, 1.0, 0.0, 0.0, 1);

如果我使用具有相同值的vtkColorTransferFunction(只是没有不透明度),它可以工作。任何人都知道为什么这不起作用?我应该一样吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

从您的伪代码中,可能会丢失两行。

     lut.SetTableRange(0.0,6.0)
     lut.Build()

你打电话给这些功能吗?

如果不是这个问题那么可能是因为你正在使用的polydatamapper。你能为你的问题提交一个完整的管道吗?

作为指南,需要调用以下代码以允许您的标量值 添加到映射器并正确显示。

    mapper.SetLookupTable(lut)
    mapper.SetScalarVisibility(1)
    mapper.SetScalarRange(0.0,6.0)