问题阐述:采取vtkRenderWindow 截图后用QT Painter的方案进行显示,遇到面绘制生成的polydata actor调节透明度时异常的问题,只有不透明度是1的时候可以显示,0.99时也会显示全部黑色。如果使用source-mapper-actor-render-renderwindow-vtkRenderWindowInteractor 指定某一不透明度则不会出现这一问题(没有试过渲染过程中调节不透明)。实验证明vtkWindowToImageFilter之前的vtkRenderWindow已经异常了。
解决方案:vtkRenderer 进行如下设置
vtkSmartPointer<vtkRenderer> m_spRenderer=vtkSmartPointer<vtkRenderer>::New();
m_spRenderer->SetUseDepthPeeling(1);
m_spRenderer->SetOcclusionRatio(0.1);
m_spRenderer->SetMaximumNumberOfPeels(100);