POV-Ray : Newsgroups : povray.advanced-users : IsoSurface Help : Re: IsoSurface Help Server Time
30 Jun 2024 02:29:41 EDT (-0400)
  Re: IsoSurface Help  
From: Alain
Date: 3 Apr 2010 11:13:37
Message: <4bb75b21$1@news.povray.org>

> Can Someone help me out. I'm trying to figure out the weird coloring on the
> lighted portion of the bottom half of the sphere.
>
> The image is at
>
> http://news.povray.org/web.4bb6af70dba6e9c64fd370d20%40news.povray.org
>
> <web.4bb6af70dba6e9c64fd370d20@news.povray.org>
>
> The source is
>
> Source is as follows:
>
>
> Can Someone help me out. I'm trying to figure out the weird coloring on the
> lighted portion of the bottom half of the sphere.
>
> The image is at
>
> http://news.povray.org/web.4bb6af70dba6e9c64fd370d20%40news.povray.org
>
> <web.4bb6af70dba6e9c64fd370d20@news.povray.org>
>
> The source is
>
> Source is as follows:
>
>
> #include "colors.inc"
> #include "math.inc"
>
> camera {
>    location<0.0, 1.5, -4.0>
>    direction 1.5*z
>    right     x*image_width/image_height
>    look_at<0.0, 0.0,  0.0>
> }
>
> light_source {
>    <0, 0, 0>             // light's position (translated below)
>    color rgb<1, 1, 1>   // light's color
>    translate<-30, 30, -30>
> }
>
>
> #declare num =  8;
> #declare fn_theta_deg_of_x_y = function(x,y) { mod(atan2d(y,x) + 360,360) }
> #declare fn_block = function(x,y) {
> -1*mod(floor(fn_theta_deg_of_x_y(x,y)/(180/num)),2) }
> #declare fn_x_y_z  = function(x,y) { fn_block(x,y) }
> isosurface {
>    function { fn_block(x, y) }
>    contained_by { sphere { 0, 1.0 } }
>    isosurface [0.0]
Here, this statement produce an error.
-> No matching } in 'isosurface', isosurface found instead.
Normal POV-Ray never use, nor used, that structure.

>    accuracy 0.001
>    max_gradient 2000
>
>    pigment{color Red}
> }
>
>
>
>
Discreete functions like mod(), ceil() and floor() produce extremely 
large max_gradient. In fact, it reatch infinity at the discontinuities.

Use something like this instead:
   function { f_sphere(x,y,z,1) + sin(atan2(x,y)*num )}

And reduce your max_gradient to something like 15 to 20



Alain


Post a reply to this message

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