[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