|
|
Hello,
problems with float-point precission are quite common in POV (i.e. box
-9.999,+9.999 with checker pigment can show errors, as well as cone{-
x,1,+x,1} with color_map{[0 rgb 0][1 rgb 1]} - as noticed in .bugreports).
How about building version of Pov with long double type (for geometry and
textures calculations).
First step to do it could be IMHO using different types like
typedef long dobule DBLGeo; // geomtery
typedef dobule DBLPig; // pigment
typedef float DBLHf ; // HF values
etc...
simple replacing DBL probably will not work because i.e. of many "tricks"
in AFAIR Radiosity code depending on exacly binary format of DBL.
--
#macro g(U,V)(.4*abs(sin(9*sqrt(pow(x-U,2)+pow(y-V,2))))*pow(1-min(1,(sqrt(
pow(x-U,2)+pow(y-V,2))*.3)),2)+.9)#end#macro p(c)#if(c>1)#local l=mod(c,100
);g(2*div(l,10)-8,2*mod(l,10)-8)*p(div(c,100))#else 1#end#end light_source{
y 2}sphere{z*20 9pigment{function{p(26252423)*p(36455644)*p(66656463)}}}//M
Post a reply to this message
|
|