[vtk-developers] [VTK 0011912]: vtkXOpenGLRenderWindow: blank window appears in off-screen rendering mode
Mantis Bug Tracker
mantis at public.kitware.com
Tue Mar 1 08:11:57 EST 2011
The following issue has been SUBMITTED.
======================================================================
http://www.vtk.org/Bug/view.php?id=11912
======================================================================
Reported By: Sergey Slyadnev
Assigned To:
======================================================================
Project: VTK
Issue ID: 11912
Category: (No Category)
Reproducibility: always
Severity: minor
Priority: normal
Status: new
======================================================================
Date Submitted: 2011-03-01 08:11 EST
Last Modified: 2011-03-01 08:11 EST
======================================================================
Summary: vtkXOpenGLRenderWindow: blank window appears in
off-screen rendering mode
Description:
Tests were performed on Red Hat 5.5 (64bit) with VTK 5.6.1.
I've tried to enable the off-screen rendering mode on both Windows & Linux
platforms with vtkRenderWindow::SetOffScreenRendering() method. While it works
properly on Windows, the blank rendering window is surprisingly displayed on
Linux.
Here is my sample code:
==========================================================================
vtkSmartPointer<vtkRenderWindow> aRenderWindow =
vtkSmartPointer<vtkRenderWindow>::New();
vtkSmartPointer<vtkRenderer> aRenderer =
vtkSmartPointer<vtkRenderer>::New();
aRenderWindow->AddRenderer(aRenderer);
aRenderWindow->SetOffScreenRendering(1);
aRenderWindow->SetSize(600, 600);
vtkSmartPointer<vtkCamera> aCamera = aRenderer->GetActiveCamera();
aCamera->ParallelProjectionOn();
aCamera->SetPosition(1.0, 1.0, 1.0);
aRenderer->ResetCamera();
vtkSmartPointer<vtkActor> anActor = vtkSmartPointer<vtkActor>::New();
vtkSmartPointer<vtkPolyDataMapper> aMapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
vtkSmartPointer<vtkSphereSource> aSphereSource =
vtkSmartPointer<vtkSphereSource>::New();
aMapper->SetInput( aSphereSource->GetOutput() );
anActor->SetMapper(aMapper);
aRenderer->AddActor(anActor);
vtkSmartPointer<vtkPNGWriter> aPNGWriter =
vtkSmartPointer<vtkPNGWriter>::New();
vtkSmartPointer<vtkWindowToImageFilter> aWinToImageFilter =
vtkSmartPointer<vtkWindowToImageFilter>::New();
aWinToImageFilter->SetInput(aRenderWindow);
aWinToImageFilter->SetInputBufferTypeToRGB();
aWinToImageFilter->SetMagnification(1);
aWinToImageFilter->ShouldRerenderOn();
aWinToImageFilter->Update();
aPNGWriter->SetInput( aWinToImageFilter->GetOutput() );
aPNGWriter->SetFileName("sphere_output.png");
aPNGWriter->Write();
==========================================================================
It seems like there is a problem in vtkXOpenGLRenderWindow, line
http://www.vtk.org/Bug/view.php?id=643:
=================================================
if(this->OwnWindow)
{
...
XMapWindow(this->DisplayId, this->WindowId);
...
=================================================
This code is executed even in the off-screen rendering mode. I've used the
following patch to prevent the window from mapping:
=================================================
if(this->OwnWindow !this->OffScreenRendering)
{
...
XMapWindow(this->DisplayId, this->WindowId);
...
=================================================
I resolves the problem with the blank window. Do you think it is possible to
apply that patch on future versions of VTK?
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
2011-03-01 08:11 Sergey SlyadnevNew Issue
======================================================================
More information about the vtk-developers
mailing list