//Description: //The Raytracing title image for Silmarillion //Uses a doubly nested while loop //And a character array //Author: Ben Scheele //Date: 4-24-2004 global_settings{ radiosity{ pretrace_start 0.08 pretrace_end .004 count 120 nearest_count 7 error_bound 1.65 recursion_limit 1 low_error_factor 0.65 gray_threshold 0.0 minimum_reuse 0.015 brightness 1 adc_bailout 0.01/2 } } #declare b = -1.6; #declare c = -.65; camera{ location up y right 4*x look_at angle 21 } light_source{ <50,-50,300> rgb 1} light_source{ <-50,-50,-150> rgb 1} background{ rgb 1 } #declare BTSfin= finish{ambient 0 diffuse .8 phong .55 reflection .3 metallic .45 specular.2 roughness .02} #macro ray1(letter) text { ttf "crystal.ttf", letter, 2, // the extrusion depth 0 finish{ BTSfin } } #end #declare RA = array[10] //a character array for my title #declare RA[0] = "R"; #declare RA[1] = "A"; #declare RA[2] = "Y"; #declare RA[3] = "T"; #declare RA[4] = "R"; #declare RA[5] = "A"; #declare RA[6] = "C"; #declare RA[7] = "I"; #declare RA[8] = "N"; #declare RA[9] = "G"; #declare X = 0; #declare EndX = 10; #while(X < EndX) #declare X2 = X - 5; union{ #declare T = -6; #declare EndT = 5; #while(T < EndT) #declare n = T/EndT; object{ ray1(RA[X]) //access an element of the array translate <-.1,-.1,0> //acts on part of the letter scale <7-1.5*n,7-4*n, #if(T = 4) .65 #else #if(T = -6) 1.5 #else 3-1*n #end#end> // keeps the end pieces at a good size rotate n*<-10,0,2> translate <.2*n,-.3*9,-3*n> #if(T = -6 | T = 4) pigment{ rgb x } finish{ambient .35} //makes the red letters glow a bit in the radiosity #else #if( mod(T,2) = 0) pigment{ rgbf <0,0,0,1> } #else pigment{ rgb 5 transmit .5} #end #end //--- } #declare T = T + 1; #end translate X2*x*4 //acts on the whole letter } #declare X = X + 1; #end