[vtkusers] Hardware Volume Rendering Quality

AGPX agpxnet at yahoo.it
Fri Oct 31 11:30:00 EDT 2008


VTKEdge is a good extension to VTK, but I can't use it in my project because VTKEdge is released under GPL and I can't release my software under GPL.




________________________________
Da: Karthik Krishnan <karthik.krishnan at kitware.com>
A: AGPX <agpxnet at yahoo.it>
Cc: vtkusers at vtk.org
Inviato: Venerdì 31 ottobre 2008, 14:36:02
Oggetto: Re: [vtkusers] Hardware Volume Rendering Quality

VTKEdge supports GPU ray casting. It uses floaring point textures. So
your quantization artefacts will be far less. It also handles NPOT
textures (assuming
of course that your graphics card supports floaring point textures and NPOT
textures)

See vtkedge.org

On Fri, Oct 31, 2008 at 3:00 AM, AGPX <agpxnet at yahoo.it> wrote:
> Hello,
>
> I'm quite new to VTK, but looking at vtkOpenGLVolumeTextureMapper3D.cxx, it
> seem to me that (probably for memory reason), 16 bit volumes are always
> reduced to 8 bit. I'm very disappointed about this limit. A volume with 2560
> different level, will be reduced to only 255! I wish to know: there are some
> planning to support 16 bit hardware volume rendering in future release? In
> addition, take a look at this code:
>
> int vtkOpenGLVolumeTextureMapper3D::IsTextureSizeSupported( int size[3] )
> {
>   if ( this->GetInput()->GetNumberOfScalarComponents() < 4 )
>     {
>     if ( size[0]*size[1]*size[2] > 128*256*256 )
>       {
>       return 0;
>       }
>     vtkgl::TexImage3D(vtkgl::PROXY_TEXTURE_3D, 0, GL_RGBA8, size[0]*2,
>                       size[1]*2, size[2], 0, GL_RGBA, GL_UNSIGNED_BYTE,
>                       this->Volume2 );
> ...
> }
> Why the width and height of the texture are doubled in the call to the
> TexImage3D? How much video-memory a volume (with less than 4 scalar
> components) need?   (size[0] * 2) * (size[1] * 2) * size[2] * 4 ? That is,
> 16 bytes per voxel?
> In addition, looking at UpdateVolumes. From the function
> vtkVolumeTextureMapper3D::UpdateVolumes, I see the following code:
>
> ...
>
> int neededSize = powerOfTwoDim[0] * powerOfTwoDim[1] * powerOfTwoDim[2];
>
> ...
>
> switch (components)
> {
>       case 1:
>         this->Volume1 = new unsigned char [2*neededSize];
>         this->Volume2 = new unsigned char [3*neededSize];
>         this->Volume3 = NULL;
>         break;
> ...
> }
>
>
>
> That is, for one component scalar, a volume need 5 times the neededSize
> (i.e. the dimesion of the volume, nearest to the power of two) bytes of
> system memory. Is this correct?
>
>
>
> Thanks in advance,
>
> - AGPX
> ________________________________
> Scopri la community di Io fotografo e video
> Il nuovo corso di Gazzetta dello sport per diventare veri fotografi!
> _______________________________________________
> 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
>
>



-- 
Karthik Krishnan
R&D Engineer,
Kitware Inc.
Ph: 518 371 3971 x119
Fax: 518 371 3971



      Unisciti alla community di Io fotografo e video, il nuovo corso di fotografia di Gazzetta dello sport:
http://www.flickr.com/groups/iofotografoevideo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20081031/ef6b9a87/attachment.htm>


More information about the vtkusers mailing list