2012-06-10 450 views
1

我想使用vtkLookupTable爲了設置我的網格的顏色。我開始使用vtkColorTransferFunction,但它不能讓我爲各種顏色設置不透明度。 vtkLookupTable提供了這個機會,但我有問題讓它工作。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它的工作原理。任何人知道爲什麼這不起作用?我應該是一樣的?

感謝您的幫助。

回答

3

從您的僞代碼,可能會丟失兩行。

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

你是否稱這些功能?

如果不是這個問題,那麼可能是因爲你正在使用polydatamapper。你能否爲你的問題提交整個管道?

作爲指導,需要調用以下代碼,以便將標量值 添加到映射器並正確可視化。

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