[vtk-developers] Possible mistake in vtkRenderLargeImage
John Biddiscombe
biddisco at cscs.ch
Wed Nov 16 05:27:45 EST 2005
Michael
I just did the sums and got the same equation as you for the adjustment
to the view angle. Since I recently did some work on this class, I'll
check in your fix.
Thanks. (I'd noticed a difference in appearance but hadn't given it any
thought...good spot!)
JB
> Dear VTK developer community,
>
> I have come across what I believe to be a mistake in the
> implementation of the class vtkRenderLargeImage in the Hybrid
> package. To illustrate the case, please consider the simple VTK
> script found at http://www.science.uva.nl/~mscarpa/vtk/TestImage.py.
> This script generates an image as http://www.science.uva.nl/~mscarpa/
> vtk/Image.png.
>
> Now, consider a modified version of the above script as found at
> http://www.science.uva.nl/~mscarpa/vtk/TestRenderLargeImage.py. The
> only
> differences with the first script are that the render window has
> smaller dimensions (a quarter width and a quarter height), and that
> it uses the vtkRenderLargeImage class to generate an image of the
> same size as the first script (500 by 500 pixels). This script is
> based on the example found with the VTK source code. On my VTK
> installation, the latter script generates an image as http://
> www.science.uva.nl/~mscarpa/vtk/RenderLargeImageOriginal.png. This
> is considerably different from the expected result, which (in this
> simple case) should be identical to the first image. I have looked
> into the code of vtkRenderLargeImage (as can be found in CVS as of
> this writing), and I think I
> found a mistake. In the method vtkRenderLargeImage::RequestData(),
> the following statement calculates the view angle incorrectly:
>
> cam->SetViewAngle(asin(sin(viewAngle*3.1415926/360.0)/this-
> >Magnification)
> * 360.0 / 3.1415926);
>
> I believe that the correct statement should be as follows:
>
> cam->SetViewAngle(atan(tan(viewAngle*3.1415926/360.0)/this-
> >Magnification)
> * 360.0 / 3.1415926);
>
> The only difference consists in replacing the sine and arcsine
> functions with tangent and arctangent functions. If the class is
> recompiled with these changes, the two scripts above produce
> identical images (see the image produced by the second script on my
> VTK installation after applying the above changes at http://
> www.science.uva.nl/~mscarpa/vtk/RenderLargeImageModified.png).
>
> Please note that more complex scenes will not produce absolutely
> identical images, but at least the images will be almost identical
> and not differ so much due to different view angles.
>
> For convenience, this text can be found as HTML page at the following
> location: http://www.science.uva.nl/~mscarpa/vtk/index.html
>
> Could someone please verify these findings and, if confirmed, could
> these changes be taken over in the CVS repository? Any comment is
> obviously most welcome.
>
> Kind regards,
>
> Michael Scarpa
> Section Computational Science
> Universiteit van Amsterdam
> Kruislaan 403
> 1098 SJ Amsterdam, The Netherlands
> Room F2.15
> Tel: +31 20 525 7574
> Fax: +31 20 525 7419
> Web: http://www.science.uva.nl/~mscarpa/
>
> _______________________________________________
> vtk-developers mailing list
> vtk-developers at vtk.org
> http://www.vtk.org/mailman/listinfo/vtk-developers
--
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 vtk-developers
mailing list