vtkWarpLens を手伝ってくれる人はいますか?
私がやろうとしているのは、カメラに歪みパターンを実装して、データの見え方を変更することです。
これがコードの要点です(C#で、私はActivisを使用しています)
vtkPolyData pd = vtkPolyData.New();
CreateFromFile(pd); // this creates a triangle representation of a height field
double [] sr = pd.GetScalarRange();
vtkLookupTable lut = vtkLookupTable.New();
lut.SetNumberOfColors(16);
lut.SetHueRange(0.667, 0.0);
lut.Build();
wl = vtkWarpLens.New();
wl.SetInputConnection(pd.GetProducerPort());
wl.SetPrincipalPoint(0.5, 0.5);
wl.SetFormatWidth(1);
wl.SetFormatHeight(1);
wl.SetImageWidth(1000);
wl.SetImageHeight(1000);
wl.SetK1(0.01307);
wl.SetK2(0.0003102);
wl.SetP1(1.953e-005);
wl.SetP2(-9.655e-005);
vtkDataSetMapper dsmDistorted = vtkDataSetMapper.New();
dsmDistorted.SetInputConnection(wl.GetOutputPort());
dsmDistorted.SetLookupTable(lut);
dsmDistorted.SetScalarRange(sr[0]+20, sr[1]);
vtkActor dsDistortedActor = vtkActor.New();
dsDistortedActor.SetMapper(dsmDistorted);
m_renDistorted.AddActor(dsDistortedActor);
m_renWin.SetDesiredUpdateRate(0);
m_renWin.Render();
m_renDistorted.ResetCamera();
したがって、基本的には、ポリゴンを使用して地形表現を作成し、それをワープレンに渡し、それをデータセット マッパーに渡してきれいな色を付けてから表示します。
問題は、「ワープ」がカメラではなく、地形に対して静的に見えることです。私は VTK にかなり慣れていないので、Interactor と Camera がどのように関連しているかを理解していない可能性があります。
誰か助けてくれませんか?