POV-Ray : Newsgroups : povray.advanced-users : sphere_sweep artifacts : sphere_sweep artifacts Server Time
28 Jul 2024 10:19:44 EDT (-0400)
  sphere_sweep artifacts  
From: Shbon
Date: 24 Feb 2006 16:15:00
Message: <web.43ff7561fd619f1eaf9dd77d0@news.povray.org>
I'm getting a number of small artifacts on my 'simple' sphere_sweeps.
Reading the help file indicated 'self-shading' and suggested reducing
tolerance and/or using AM2. I tried these, but to no avail.

Searching through the POV-Ray newsgroups, I can see similar issues have been
raised before (E.g.
http://news.povray.org/povray.advanced-users/thread/%3C41ee5a09@news.povray.org%3E/?ttop=216592)
and partial workarounds have been suggested such as: rotate by a tiny
amount, move camera by a tiny amount, adjust spline values by a tiny amount
etc. I can see that applying these subtle changes affects the artifact (and
may eliminate it completely).

My problem is that after experimenting for a while, if you duplicate this
simple spline 50 times and rotate it about the y-axis (I'm trying to model
a wire basket), I seem to produce a random artifact somewhere every time.

Has anybody found a successful method of mitigating / minimising this
'feature' of sphere_sweep?

(I've already found out that closely packed spheres following a Myspline =
spline {...} works, but uses a lot of memory).


POV-Ray 3.6.1, Windows XP SP2, Pentium III 500MHz
Thanks
Shaun


An Example:

global_settings {assumed_gamma 1.0}

camera {location <0, 7 , -30> angle 66 right x*image_width/image_height
look_at <6 , 6.5 , 0>}

//For close-up of artifact
//camera {location <6.5 , 4.5 , -2> angle 30
//right x*image_width/image_height look_at <6.5, 4.4 , 0>}

light_source{<250,100,-500> color rgb 1}

#declare BCSplinePointU = array[8] {11,10,9,8,7,6,6,7};

//To remove artifact use this sightly different spline
//#declare BCSplinePointU = array[8] {11,10,9,8,7,6,5,7};

#macro BCSplinePointV(Index, MaxV, PointCount)
  MaxV-((Index-1)*MaxV/(PointCount-3))
#end

#declare BallCageVBar =
  sphere_sweep {
    cubic_spline 8

    #declare Count = 0;
    #while (Count < 8)
      <BCSplinePointU[Count],BCSplinePointV(Count, 15, 8)> .1
      #declare Count = Count + 1;
    #end
  }

object {BallCageVBar pigment {rgb 1}}


Post a reply to this message

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