#include "colors.inc" camera { location <4, 13, -14> look_at <0, 0, -2> } light_source { <2, 40, -2> color Gray90 spotlight radius 23 falloff 25 point_at 0 area_light <3, 0, 0>, <0, 0, 3>, 5, 5 adaptive 1 jitter } light_source { <-4, 40, -2> color Gray45 spotlight radius 23 falloff 25 point_at 0 area_light <3, 0, 0>, <0, 0, 3>, 5, 5 adaptive 1 jitter } blob { threshold 1.8 //size of the blob, goes from -10 to 10 #declare Size = 10; //number of time checker pattern shows up on blob #declare Frequency = 3; //colours for checker pattern #declare Color1 = CadetBlue; #declare Color2 = White; #declare X = -Size; #declare XMax = Size; #declare XInc = .125; #declare ZMax = Size; #declare ZInc = .125; #while (X <= XMax) #declare Z = -Size; #while (Z <= ZMax) //pick one of the different y values #declare Y = 0.05*X*sin(Z)+0.05*Z*cos(X); //#declare Y = 0.05*(X*sin(X-Z)+Z*cos(X*Z)); //#declare Y = 0.05*X*sin(X-2*Z)+0.1*Z*cos(X*Z); //#declare Y = 0.5*cos(sqrt(X*X+Z*Z)); //these are used for the checker pattern #declare XMod = abs(X/2/Size*Frequency - floor(X/2/Size*Frequency)); #declare ZMod = abs(Z/2/Size*Frequency - floor(Z/2/Size*Frequency)); sphere { 0, .8, .22 translate pigment { #if (XMod < 0.5) #if (ZMod < 0.5) color Color1 #else color Color2 #end #else #if (ZMod < 0.5) color Color2 #else color Color1 #end #end } finish { ambient .2 diffuse .55 specular 1 roughness 0.001 phong .7 phong_size 20 } normal { average normal_map { #declare LayerNum = 1; #declare Layers = 10; #while (LayerNum <= Layers) [1 quilted scale 3/LayerNum rotate 360*LayerNum/Layers] #declare LayerNum = LayerNum + 1; #end [1 bumps .2 scale .075] } } } #declare Z = Z + ZInc; #end #declare X = X + XInc; #end } plane { y, -2 pigment { color rgb <.4, .8, 1.0> // change this colour, it looks terrible } finish { ambient .05 diffuse .55 specular 1 roughness 0.001 reflection .2 } }