     POV-Ray : Newsgroups : povray.binaries.images : CGSE (Golf Ball) : Re: CGSE (Golf Ball) Server Time: 27 Sep 2020 23:07:45 GMT  Re: CGSE (Golf Ball)    From: Trevor G Quayle Date: 25 Jun 2007 21:10:02    ```"Trevor G Quayle" <Tin### [at] hotmail com> wrote:
>
> BTW, why is the render so long?  Is it just from the area lighting and focal
> blur?  Try manual bounding of the CSG of the sphere, sometimes this can help
> considerably, especially when you are differencing a whole lot of objects
> like the dimples.
>
> -tgq

To follow up on this, I have a similar type object (holes in a shell rather
than dimples) that I've worked on and instead of differencing  the holes, I
used blobs (give the dimple blobs a negative strength), and it is *much*
faster.

Compare Ball1 (blobs) to Ball2 (CSG) in the following:

//START

#macro GeodesicBlob(n,R,Obj,k)
#if (n=0)
cylinder{-z,z,Obj,k}
#else
#local nL=pow(2,(n-1));
#local i=-nL;
#while (i<=nL)
#local nS=4*(nL-abs(i));
#if (nS=0)
cylinder{-z,z,Obj,k translate<0,0,-R> rotate x*i*90/nL}
#else

#local j=0;
#while (j<nS)
cylinder{-z,z,Obj,k translate<0,0,-R> rotate x*i*90/nL rotate
y*j*360/nS}
#local j=j+1;
#end

#end
#local i=i+1;
#end
#end
#end

#macro Geodesic(n,R,Obj)
#if (n=0)
cylinder{-z,z,Obj}
#else
#local nL=pow(2,(n-1));
#local i=-nL;
#while (i<=nL)
#local nS=4*(nL-abs(i));
#if (nS=0)
cylinder{-z,z,Obj translate<0,0,-R> rotate x*i*90/nL}
#else

#local j=0;
#while (j<nS)
cylinder{-z,z,Obj translate<0,0,-R> rotate x*i*90/nL rotate
y*j*360/nS}
#local j=j+1;
#end

#end
#local i=i+1;
#end
#end
#end

#declare R0=40;
#declare R2=0.5;
#declare OS=5;
#declare X0=sqrt(pow(R0,2)-pow(OS,2));

#declare OS1=OS*(R0-R2)/R0;
#declare R1=X0*(R0-R2)/R0;
#declare RR=R0-2*R2;

#declare D=0.1;

#declare Ball1=
difference{
blob{
threshold D
sphere{0,RR/sqrt(1-sqrt(D)),1}
GeodesicBlob(5,RR,2,-0.01)
}
bounded_by{sphere{0,40}}
rotate y*40
pigment{rgb 1}
}

#declare Ball2=
difference{
sphere{0,RR}
Geodesic(6,RR,1)
bounded_by{sphere{0,40}}
rotate y*40
pigment{rgb 1}
}

object{Ball2}

//END

-tgq
```    