[vtkusers] Mesa not rendering scene, but works otherwise

Randall Hand randall.hand at gmail.com
Thu Mar 17 09:11:13 EST 2005


I had a similar problem long ago, and someone tipped me off to the following:

Don't directly instantiate the vtkMesa* objects.  Instead, put the
following at the beginning of your code: (C code shown, translate
appropriately)

    // Indicate that we want to use Mesa Offscreen
    vtkGraphicsFactory *factGraphics = vtkGraphicsFactory::New();
    factGraphics->SetUseMesaClasses(1);
    factGraphics->Delete();

    vtkImagingFactory *factImage = vtkImagingFactory::New();
    factImage->SetUseMesaClasses(1);
    factImage->Delete();

Once you do this, the vtk objects will automatically instantiate the
Mesa equivalents, instead of the OpenGL versions.



On Thu, 17 Mar 2005 17:53:28 +1000, Paul Cochrane
<cochrane at esscc.uq.edu.au> wrote:
> Hi all,
> 
> I've got a problem with Mesa not actually rendering a scene, whereas if I
> don't use Mesa, and just render with the normal (i.e. the ones without Mesa
> in the name) objects, then the scene displays correctly.  The scene consists
> of a warped image with the background set to a colour other than the
> default.  When rendered with Mesa I just get the background.  What am I
> doing wrong?  (if anything).  I'm using vtk version 4.2.1 (with Mesa enabled),
> on Linux, and I'm using vtk from Python 2.3.4.
> 
> Any help would be greatly appreciated.
> 
> Regards,
> 
> Paul Cochrane
> 
> Here is the test code:  (change mesa to True or False to switch Mesa on or
> off respectively)
> 
> """
> Load an image, using either Mesa or OpenGL
> """
> 
> import vtk
> 
> mesa = True
> 
> imgReader = vtk.vtkTIFFReader()
> imgReader.SetFileName("ausImage_lowres.tif")
> imgReader.Update()
> 
> # now try and warp the data
> luminance = vtk.vtkImageLuminance()
> luminance.SetInput(imgReader.GetOutput())
> 
> geometry = vtk.vtkImageDataGeometryFilter()
> geometry.SetInput(luminance.GetOutput())
> 
> warp = vtk.vtkWarpScalar()
> warp.SetInput(geometry.GetOutput())
> warp.SetScaleFactor(0.0)
> 
> # Use vtkMergeFilter to combine the original image with the warped
> # geometry.
> merge = vtk.vtkMergeFilter()
> merge.SetGeometry(warp.GetOutput())
> merge.SetScalars(imgReader.GetOutput())
> 
> mapper = vtk.vtkDataSetMapper()
> mapper.SetInput(merge.GetOutput())
> mapper.SetScalarRange(0, 255)
> mapper.ImmediateModeRenderingOff()
> 
> if mesa:
>     actor = vtk.vtkMesaActor()
> else:
>     actor = vtk.vtkActor()
> actor.SetMapper(mapper)
> 
> if mesa:
>     ren = vtk.vtkMesaRenderer()
>     renWin = vtk.vtkXMesaRenderWindow()
>     #renWin.OffScreenRenderingOn()
> else:
>     ren = vtk.vtkRenderer()
>     renWin = vtk.vtkRenderWindow()
>     renWin.OffScreenRenderingOn()
> 
> iren = vtk.vtkRenderWindowInteractor()
> iren.SetRenderWindow(renWin)
> 
> renWin.AddRenderer(ren)
> 
> ren.AddActor(actor)
> 
> renWin.SetSize(640,480)
> ren.SetBackground(0.1,0.2,0.4)
> ren.ResetCameraClippingRange()
> 
> iren.Initialize()
> renWin.Render()
> iren.Start()
> 
> --
> Paul Cochrane
> Computational Scientist/Software Developer
> Earth Systems Science Computational Centre
> University of Queensland
> Brisbane
> Queensland 4072
> Australia
> 
> E: cochrane at esscc.uq.edu.au
> P: +61 7 3346 9797
> F: +61 7 3365 7347
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
> 


-- 
Randall Hand
http://www.yeraze.com



More information about the vtkusers mailing list