FXAA is not working in multipass rendering
When using vtkDefaultPass
or vtkOpaquePass
, FXAA is ignored.
vtkOpenGLRenderer::UpdateGeometry()
is never called.
Example to reproduce:
vtkNew<vtkRenderWindow> renWin;
vtkNew<vtkRenderWindowInteractor> iren;
iren->SetRenderWindow(renWin);
vtkNew<vtkSphereSource> sphere;
vtkNew<vtkRenderer> renderer;
// enable FXAA
renderer->UseFXAAOn();
// custom passes
vtkNew<vtkCameraPass> cameraP;
vtkNew<vtkSequencePass> seq;
vtkNew<vtkOpaquePass> opaque;
vtkNew<vtkLightsPass> lights;
vtkNew<vtkRenderPassCollection> passes;
passes->AddItem(lights);
passes->AddItem(opaque);
seq->SetPasses(passes);
cameraP->SetDelegatePass(seq);
vtkOpenGLRenderer::SafeDownCast(renderer)->SetPass(cameraP);
renWin->AddRenderer(renderer);
vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputConnection(sphere->GetOutputPort());
vtkNew<vtkActor> actor;
actor->SetMapper(mapper);
renderer->AddActor(actor);
iren->Start();