POV-Ray : Newsgroups : povray.binaries.images : Apparent circular pattern of scratches : Re: Apparent circular pattern of scratches Server Time
28 Apr 2024 16:33:52 EDT (-0400)
  Re: Apparent circular pattern of scratches  
From: Norbert Kern
Date: 27 Jan 2019 07:15:01
Message: <web.5c4d9ffb5e3f44501fbfafc10@news.povray.org>
Thomas de Groot <tho### [at] degrootorg> wrote:

> I agree. The important thing is to use a bump_map of some quality.

I found a povray file to get the bump_map. Perhaps somebody knows the origin. My
only contribution is an aoi texture as default.


//------------------------
/* scratches2 */
// +fn16 Output_File_Name=d:\images\ +w4096 +h4096

#version 3.7;

global_settings {
        #declare a_g = 2.2;
        assumed_gamma a_g
        max_trace_level 16
        noise_generator 3
}

camera {
        orthographic
        location -5*z
        look_at 0
        right 40*x
        up 40*y
}

/*#default {
        texture {
                pigment {
                        bozo
                        scale 0.2
                        color_map {
                                [0      rgb 0.5]
                                [1      rgb 1]
                        }
                }
                finish {ambient 1}
        }
}*/
#default {
        texture {
                pigment {
                        aoi
                        color_map {
                                [0      srgb 1]
                                [0.5    srgb 0]
                                [1      srgb 1]
                        }
                }
                finish {ambient 1}
        }
}


#include "transforms.inc"

#declare I = seed (1);
#declare ang = 0;
#while (ang < 360)
        #declare num = 20+20*rand (I);
        #declare i = 0;
        #while (i < num)
                #declare px = no;
                #declare nx = no;
                #declare r = 0.01+0.035*rand (I);
                #declare s = 2+10*rand (I);
                #declare _x = -20+40*rand (I);
                #declare _y = -20+40*rand (I);
                sphere {
                        0, 1
                        scale <r,0.5,r>
                        scale <1,s,1>
                        rotate ang*z
                        translate <_x,_y,0>
                }
                #if (vtransform (0.5*y, transform {scale <1,s,1> rotate ang*z
translate _x*x}).x > 40 | vtransform (-0.5*y, transform {scale <1,s,1> rotate
ang*z translate _x*x}).x > 40)
                        #declare px = yes;
                        sphere {
                                0, 1
                                scale <r,0.5,r>
                                scale <1,s,1>
                                rotate ang*z
                                translate <_x-40,_y,0>
                        }
                #else
                        #if (vtransform (0.5*y, transform {scale <1,s,1> rotate
ang*z translate _x*x}).x < 40 | vtransform (-0.5*y, transform {scale <1,s,1>
rotate ang*z translate _x*x}).x < 40)
                                #declare nx = yes;
                                sphere {
                                        0, 1
                                        scale <r,0.5,r>
                                        scale <1,s,1>
                                        rotate ang*z
                                        translate <_x+40,_y,0>
                                }
                        #end
                #end
                #if (vtransform (0.5*y, transform {scale <1,s,1> rotate ang*z
translate _y*y}).y > 40 | vtransform (-0.5*y, transform {scale <1,s,1> rotate
ang*z translate _y*y}).y > 40)
                        sphere {
                                0, 1
                                scale <r,0.5,r>
                                scale <1,s,1>
                                rotate ang*z
                                translate <_x,_y-40,0>
                        }
                        #if (px)
                                sphere {
                                        0, 1
                                        scale <r,0.5,r>
                                        scale <1,s,1>
                                        rotate ang*z
                                        translate <_x-40,_y-40,0>
                                }
                        #else
                                #if (nx)
                                        sphere {
                                                0, 1
                                                scale <r,0.5,r>
                                                scale <1,s,1>
                                                rotate ang*z
                                                translate <_x+40,_y-40,0>
                                        }
                                #end
                        #end
                #else
                        #if (vtransform (0.5*y, transform {scale <1,s,1> rotate
ang*z translate _y*y}).y < 40 | vtransform (-0.5*y, transform {scale <1,s,1>
rotate ang*z translate _y*y}).y < 40)
                                sphere {
                                        0, 1
                                        scale <r,0.5,r>
                                        scale <1,s,1>
                                        rotate ang*z
                                        translate <_x,_y+40,0>
                                }
                                #if (px)
                                        sphere {
                                                0, 1
                                                scale <r,0.5,r>
                                                scale <1,s,1>
                                                rotate ang*z
                                                translate <_x-40,_y+40,0>
                                        }
                                #else
                                        #if (nx)
                                                sphere {
                                                        0, 1
                                                        scale <r,0.5,r>
                                                        scale <1,s,1>
                                                        rotate ang*z
                                                        translate
<_x+40,_y+40,0>
                                                }
                                        #end
                                #end
                        #end
                #end
                #declare i = i+1;
        #end
        #declare ang = ang+20;
#end

//--------------


Norbert


Post a reply to this message

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