POV-Ray : Newsgroups : povray.general : Please help me debug this simple image : Re: Please help me debug this simple image Server Time
31 Jul 2024 20:18:15 EDT (-0400)
  Re: Please help me debug this simple image  
From: Bruno Cabasson
Date: 18 Sep 2006 03:45:01
Message: <web.450e4d5a5968ab06f5fba6ef0@news.povray.org>
"Brent Baccala" <cos### [at] freesoftorg> wrote:
> Hello -
>
> I'm using POVRAY 3.6 and know very little about raytracing.
>
> I'm trying to generate a graphic to illustrate the Riemann surface of
> arctan.
>
> I've tried gnuplot and rejected it because I can't figure out to get the
> surface transparent in that program.
>
> Instead, I've taken a material definition from Tor Olav Kristensen's
> Villarceau Circles that looks pretty much how I'd like and built an
> isosurface using it.  Kristensen's basic idea was to surround the image
> with a very large sphere (blue in his case, white in mine) and use
> radiosity to light it.
>
> The problem is that I've getting part of the surface washed out in white,
> and I don't know how to fix it (other than by moving the camera to an angle
> I don't want).
>
> Rather than attach everything, I'm posting the image and the source here:
>
> http://www.freesoft.org/bbaccala/arctan_surface.html
>
> Can anybody suggest either how to fix the POVRAY file, or perhaps some other
> solution entirely to this problem?
>
> Any advice would be greatly appreciated...

Hello!

Your problem comes from the max_gradient parameter of your isosurfaces. You
did not specify it, so POV-Ray uses the default which is 1.1. This is not
enough. If you have a look at the "Messages" tab of the editor, you will
see a warning for this purpose. Setting max_gradient to 3 seems to be OK.

  union {
  isosurface {
    function { pow((z/10-(atan2(y,x)+pi/2)),2) - .01 }
    max_gradient 3
    contained_by { box { <0,-200,-100>, <200,200,100> } }
    rotate <0, 0, 90>
  }
  isosurface {
    function { pow((z/10-(atan2(y,x)-pi/2)),2) - .01 }
    max_gradient 3
    contained_by { box { <0,-200,-100>, <200,200,50> } }
    rotate <0, 0, -90>
  }
  isosurface {
    function { pow((z/10-(atan2(y,x)-pi*3/2)),2) - .01 }
    max_gradient 3
    contained_by { box { <0,-200,-100>, <200,200,100> } }
    rotate <0, 0, 90>
  }


Nota: you can also use the 'evaluate' feature os isosurfaces. See help file.

    Regards.

        Bruno

PS: Is radiosity necessary here?


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.