camera { location <-.5,.5,-1.5> look_at 0 } light_source {<-100,200,-300>, 1.1 } #declare Obj=union { blob { threshold .5 sphere { <0,.3,0>,.8 ,1 } } sphere { <-.15,-.3,0>,.45 } pigment { rgb 1 } } object { Obj no_shadow } #declare Counter=0; #declare S=seed(0); #declare Position=<-3,4.75,-1.5>*.9; #declare Direction=vnormalize(Position); #declare Position=Position+<0,-2,.6>; #declare Normal=<0,0,0>; blob { threshold .9 #while (Counter<4000) #local New_Pos=Position*(<1,1+rand(S)*1.5,1+rand(S)*2>/2.4); #declare New_Dir=vnormalize(Direction+.001)*(<1+rand(S)*.2,1+rand(S)*.2,1+rand(S)*.2>); #local Result=trace( Obj, New_Pos, -New_Dir , Normal); #if (vlength(Normal)!=0) sphere { 0,rand(S)*.009+.015 ,1 translate Result } #end #local Counter=Counter+1; #end pigment { rgbt <1.4,1.4,1.4, 1> } // Please change transmit between 0 and 1 no_shadow }