C# 将vtkWarpLens应用于摄影机与场景数据

C# 将vtkWarpLens应用于摄影机与场景数据,c#,vtk,C#,Vtk,有人能帮我弄一下VTKwarpens吗 我想做的是在相机上实现一个失真模式,以修改数据的显示方式 下面是代码的主要部分(在C#中,我使用的是Activis) 所以,基本上,我用多边形创建一个地形表示,通过扭曲镜头,通过数据集映射器给它提供漂亮的颜色,然后显示它 问题在于“扭曲”对地形而言是静态的,而不是对摄影机而言。我对VTK还很陌生,所以我可能不明白互动器和相机是如何联系在一起的 有人能帮忙吗 vtkPolyData pd = vtkPolyData.New();

有人能帮我弄一下VTKwarpens吗

我想做的是在相机上实现一个失真模式,以修改数据的显示方式

下面是代码的主要部分(在C#中,我使用的是Activis)

所以,基本上,我用多边形创建一个地形表示,通过扭曲镜头,通过数据集映射器给它提供漂亮的颜色,然后显示它

问题在于“扭曲”对地形而言是静态的,而不是对摄影机而言。我对VTK还很陌生,所以我可能不明白互动器和相机是如何联系在一起的

有人能帮忙吗

        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();