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

John Biddiscombe biddisco at cscs.ch
Mon Jun 25 08:15:40 EDT 2007


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.
>
>
>   


-- 
John Biddiscombe,                            email:biddisco @ cscs.ch
http://www.cscs.ch/about/BJohn.php
CSCS, Swiss National Supercomputing Centre  | Tel:  +41 (91) 610.82.07
Via Cantonale, 6928 Manno, Switzerland      | Fax:  +41 (91) 610.82.82





More information about the vtkusers mailing list