[vtkusers] Offscreen rendering

John Norris jnorris at mcs.anl.gov
Fri Apr 14 09:51:03 EDT 2006


I downgraded to 6.4.2 yesterday, and now it seems to work!  Huzzah!

Thanks,
John

Berk Geveci wrote:
> Try Mesa 6.0.1 and see what happens. Amy Henderson had problems with
> 6.5 and when she tried 6.0.1, it worked fine. I think mangling might
> be broken in 6.5
> 
> -Berk
> 
> On 4/11/06, John Norris <jnorris at mcs.anl.gov> wrote:
>> Hi,
>>
>> I cannot for the life of me get offscreen rendering to work.  This is on
>> AIX 5.4, VTK from CVS, Mesa 6.5 (compiled with mangling), everything
>> compiled with xlC_r.  I've configured VTK with VTK_USE_MANGLED_MESA on,
>> OPENGL_gl_LIBRARY set to /usr/lib/libGL.a, MANGLED_MESA_LIBRARY set to
>> the Mesa lib I compiled, and MANGLED_OSMESA_LIBRARY set to the OSMesa
>> lib I compiled.
>>
>> I can compile and run the attached program, and everything works fine.
>> A window pops up, and a nice tiff file is created.  But if I run it with
>> the "-os" option, the tiff file is just a black square.
>>
>> I've been working on this for days, searching the mailing list and
>> trying different compile options, but to no avail.
>>
>> Any help would be greatly appreciated.
>>
>> Thanks!
>> John
>> --
>> John Norris
>> Research Programmer
>> Center for Simulation of Advanced Rockets
>> http://www.uiuc.edu/ph/www/jnorris
>>
>>
>> #include <iostream>
>> #include "vtkActor.h"
>> #include "vtkConeSource.h"
>> #include "vtkGlyph3D.h"
>> #include "vtkGraphicsFactory.h"
>> #include "vtkImagingFactory.h"
>> #include "vtkPolyData.h"
>> #include "vtkPolyDataMapper.h"
>> #include "vtkRenderWindow.h"
>> #include "vtkRenderer.h"
>> #include "vtkSphereSource.h"
>> #include "vtkTIFFWriter.h"
>> #include "vtkWindowToImageFilter.h"
>>
>> int main( int argc, char *argv[] )
>> {
>>   int os = (argc > 1 && strcmp(argv[1], "-os") == 0) ? 1 : 0;
>>   if (os) {
>>     vtkGraphicsFactory* gFactory = vtkGraphicsFactory::New();
>>     gFactory->SetUseMesaClasses(1);
>>     gFactory->Delete();
>>     vtkImagingFactory* iFactory = vtkImagingFactory::New();
>>     iFactory->SetUseMesaClasses(1);
>>     iFactory->Delete();
>>   }
>>
>>   vtkRenderer *renderer = vtkRenderer::New();
>>   vtkRenderWindow *renWin = vtkRenderWindow::New();
>>     if (os)
>>       renWin->OffScreenRenderingOn();
>>     renWin->AddRenderer(renderer);
>>   std::cout << "Using " << renWin->GetClassName() << std::endl;
>>
>>   vtkSphereSource *sphere = vtkSphereSource::New();
>>     sphere->SetThetaResolution(8); sphere->SetPhiResolution(8);
>>   vtkPolyDataMapper *sphereMapper = vtkPolyDataMapper::New();
>>     sphereMapper->SetInput(sphere->GetOutput());
>>   vtkActor *sphereActor = vtkActor::New();
>>     sphereActor->SetMapper(sphereMapper);
>>
>>   vtkConeSource *cone = vtkConeSource::New();
>>     cone->SetResolution(6);
>>
>>   vtkGlyph3D *glyph = vtkGlyph3D::New();
>>     glyph->SetInput(sphere->GetOutput());
>>     glyph->SetSource(cone->GetOutput());
>>     glyph->SetVectorModeToUseNormal();
>>     glyph->SetScaleModeToScaleByVector();
>>     glyph->SetScaleFactor(0.25);
>>
>>   vtkPolyDataMapper *spikeMapper = vtkPolyDataMapper::New();
>>     spikeMapper->SetInput(glyph->GetOutput());
>>
>>   vtkActor *spikeActor = vtkActor::New();
>>     spikeActor->SetMapper(spikeMapper);
>>
>>   renderer->AddActor(sphereActor);
>>   renderer->AddActor(spikeActor);
>>   renderer->SetBackground(1,1,1);
>>   renWin->SetSize(300,300);
>>
>>   vtkWindowToImageFilter* w2if = vtkWindowToImageFilter::New();
>>   w2if->SetInput(renWin);
>>
>>   vtkTIFFWriter* writer = vtkTIFFWriter::New();
>>   writer->SetFileName("Mace.tiff");
>>   writer->SetInput(w2if->GetOutput());
>>
>>   // interact with data
>>   renWin->Render();
>>   w2if->Update();
>>   writer->Write();
>>
>>   // Clean up
>>   writer->Delete();
>>   w2if->Delete();
>>   renderer->Delete();
>>   renWin->Delete();
>>   sphere->Delete();
>>   sphereMapper->Delete();
>>   sphereActor->Delete();
>>   cone->Delete();
>>   glyph->Delete();
>>   spikeMapper->Delete();
>>   spikeActor->Delete();
>>
>>   return 0;
>> }

-- 
John Norris
Research Programmer
Center for Simulation of Advanced Rockets
http://www.uiuc.edu/ph/www/jnorris



More information about the vtkusers mailing list