[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