[vtkusers] Re: Volume Splatting: vtkCSCSPointSprites and GLU linking problems

Jordi Campos i Miralles jcampos at maia.ub.es
Mon Jun 25 15:53:56 EDT 2007


Hi John,

Thanks for your fast and concise answer.

As you said that the "glu" code was "deprecated", I commented it and I
finally could test the PointSprites with VTK
(http://namaste.maia.ub.es/public/vtk-volume-rendering-tutorial.pdf
pages 83-88 and 142).

I'm very glad with the implementation response time, and I think we can
use it as a basis to port the Volume Splatting algorithm
( http://www.cs.sunysb.edu/~mueller/research/volvis.html ) to VTK for
research purposes (and maybe for performance, at least when
interacting). Thanks to the CSCS job!

Right now my plans are:

     1. Solving minor issues about vtkPointSpritesMapper
             1. Cleaning: you said, you had planned to clean it. So, I
                could wait the "code cleaning" before continue working
                on it.
             2. Resource dir: I left the resource dir setting in blank,
                because even if I set it to the correct path, I obtain
                an "vtkXMLShader (0x806cd58): Failed to locate file
                *.glsl". It seems it founds correctly the *.xml, but
                afterwards I need to be in the resources directory to
                let it find the *.glsl
     2. Adapting the current vtkPointSpritesMapper to some kind of
        vtkVolumeSplattingMapper
             1. Splatting "sets of voxels": could be done with the
                current PolyData container, but
                     1. Use color/opacity transfer functions instead of
                        Elevation
             2. Splatting "image data": think about the mapper
                adaptation.
     3. Creating a Paraview plugin
             1. I'm just entering into Paraview arquitecture (I left my
                notes in the tutorial I mentioned before); but I would
                be interested in helping to create the Paraview plugin.

So, if it is possible to join some efforts with other "Volume Splatting
interested people", it would be great.

Regards! and thanks for your attention,

jor;)i


El dl 25 de 06 del 2007 a les 14:15 +0200, en/na John Biddiscombe va
escriure:
> Jordi
> 
> 1) The point sprite module is not 'paraview friendly' - paraview uses a 
> complicated layer of proxy objects to convert GUI issued calls into 
> server side renders. Adding the point sprite mapper to paraview is 
> something I have done - and am doing all over again now that the 
> representation/view strategy has taken over from the 
> display/rendermodule one. I hope eventually to be able to produce a 
> reasonably simple 'plugin' that 'normal' <cough> people can use directly 
> inside paraview. But right now, that seems a way off.
> 
> 2) The dependency on GLU is an error. I have been making a lot of tweaks 
> on the SVN head branch of the point sprite code to support direct 
> rendering of SPH kernels. At the moment, the code is a spaghetti-like 
> mess of nonsense which sadly only I am likely to be able to make sense 
> of. The GLU code was used for testing the rendering into framebuffer 
> stuff and is obsolete.
> 
> I am planning on removing all the SPH code and returning the 
> spritemapper to a clean state. I can let you know when I've done this if 
> you wish.
> 
> As for paraview integration. I would avoid holding your breath and 
> waiting for a module, but if you are in desperate need of the GPU/sprite 
> rendering, please contact me off list and I'll see what I can do.
> 
> JB
> 
> > Hi,
> >
> > [PROBLEM -----------------------------------------------------------]
> >
> > When I try to build vtkCSCSPointSprites as a PV module I obtain the
> > following error:
> >
> > [ 76%] Building CXX object
> > Servers/Filters/Testing/Cxx/CMakeFiles/ServersFiltersPrintSelf.dir/ServersFiltersPrintSelf.o
> > Linking CXX executable ../../../../bin/ServersFiltersPrintSelf
> > /opt/local/fonts/ParaView3-bin/bin/libvtkPVFilters.so: undefined reference to `gluErrorString'
> > /opt/local/fonts/ParaView3-bin/bin/libvtkPVFilters.so: undefined reference to `gluLookAt'
> >
> > I checked vtkCSCS/vtkPointSprites/CMakeLists.txt and it seems it already
> > includes the library:
> >
> > IF(WIN32)
> >   SET(vtkCSCSPointSprites_EXTRA_LIBS "Glu32")
> > ELSE(WIN32)
> >   SET(vtkCSCSPointSprites_EXTRA_LIBS "GLU")
> > ENDIF(WIN32)
> >
> > What am I doing wrong?
> >
> >
> > Below, I expose:
> > - PROBLEM DETAILS: installation details previous to the exposed problem
> > - CONTEXT: motivations to use vtkCSCSPointSprites in case some can give
> > me other ideas
> >
> >
> >
> > [PROBLEM DETAILS -----------------------------------------------------]
> >
> > I download the source code and tried to compile them but found lilnking
> > troubles:
> >
> > svn checkout https://svn.cscs.ch/vtkContrib/trunk/vtkCSCS/vtkPointSprites
> > cd vtkPointSprites
> > ccmake .
> >   CSCS_PARAVIEW_MODULES            ON
> >   ParaView_DIR                     /opt/local/fonts/ParaView3-bin (dir with ParaViewConfig.cmake)
> >   USE_PARAVIEW_OUTPUT_PATHS        ON
> >   CSCS_OUTPUT_PATH_EXECUTABLE      (automatically points to PV dir)
> >   CSCS_OUTPUT_PATH_LIBRARY         (automatically points to PV dir)
> > make
> > !!!!!!!! I'VE GOT THIS WARNING, I THINK IS NOT CRITICAL TO CURRENT ISSUE !!!!!!!
> > [ 61%] Building CXX object Testing/Cxx/CMakeFiles/vtkCSCSPointSpritesCxxTests.dir/TestPointSpriteGLSL.o
> > .../vtkPointSprites/Testing/Cxx/TestPointSpriteGLSL.cxx: In function 'int TestPointSpriteGLSL(int, char**)':
> > .../vtkPointSprites/Testing/Cxx/TestPointSpriteGLSL.cxx:82: warning: passing 'const double' for argument 1 to 'void vtkPoints::SetNumberOfPoints(vtkIdType)'
> > ...
> > aptitude install freeglut3-dev
> > cd <Paraview3-bin-dir>
> > ccmake ../Paraview3
> >   PARAVIEW_EXTRA_EXTERNAL_MODULE   CSCSPointSprites
> >   PARAVIEW_USE_CSCSPointSprites    ON
> >   CSCSPointSprites_SOURCE_DIR      /opt/local/fonts/Sparticles/vtkCSCS/vtkPointSprites
> > make
> > [ 76%] Building CXX object Servers/Filters/Testing/Cxx/CMakeFiles/ServersFiltersPrintSelf.dir/ServersFiltersPrintSelf.o
> > Linking CXX executable ../../../../bin/ServersFiltersPrintSelf
> > /opt/local/fonts/ParaView3-bin/bin/libvtkPVFilters.so: undefined reference to `gluErrorString'
> > /opt/local/fonts/ParaView3-bin/bin/libvtkPVFilters.so: undefined reference to `gluLookAt'
> >
> >
> >
> > [CONTEXT - may be someone can give me other ideas -------------]
> >
> > I need a fast visualization to direct volume render a "set of
> > voxels" (set of coordinates and density values, with no order).
> >
> > First, I took a look into vtkUnstructuredGridVolumeRayCastMapper but it
> > naturally seems to be too slow.
> >
> > Then, I though about using a "volume splatting" algorithm, in which
> > voxels are "splatted into a 2D image" using Gaussian splat kernels
> > (nothing to do with the vtkGaussianSplatter which splats them into a 3D
> > volume).
> >
> > As far as I could learn (here are my notes on vtk/PV
> > http://namaste.maia.ub.es/public/vtk-volume-rendering-tutorial.pdf ), I
> > need to develop a Mapper. I was looking for something similar and I
> > found a post (http://www.nabble.com/Re%3A-plot-3d-points-p6950717.html)
> > talking about vtkCSCSPointSprites.
> >
> > I know vtkCSCSPointSprites is not exactly what I need, but it could be a
> > great basis to know how to build my own filter. In fact, I need to
> > project the voxels as GPU point sprites.
> >
> > Currently I'm trying to run vtkCSCSPointSprites, but I can not build it.
> >
> >
> >   
> 
> 
-- 
Jordi Campos i Miralles
Departament de Matemàtica Aplicada i Anàlisi, MAiA
Facultat de Matemàtiques, Universitat de Barcelona
Gran Via de les Corts Catalanes, 585
08007 Barcelona
Telf : +34 93 403 93 72 




More information about the vtkusers mailing list