{************************************************** QRT source for mirrored surface demo. Demonstrates arbitrary reflection characteristics. - Steve Koren 11 Jun 88 **************************************************} FILE_NAME = Mirror.RAW { ********* Some pattern definitions ********** } PATTERN ( x_size = 60, { ** Checkered pattern ** } y_size = 60, name = CHECK, RECTANGLE ( start_x = 0, start_y = 0, end_x = 30, end_y = 30, diff = (.1,1.0,.1), ) RECTANGLE ( start_x = 30, start_y = 30, end_x = 60, end_y = 60, diff = (.1,1.0,.1), ) ) PATTERN ( x_size = 60, { ** Checkered pattern ** } y_size = 60, { ** mirrored surfaces ** } name = MIRROR_CHECK, { ** (red) ** } RECTANGLE ( start_x = 0, start_y = 0, end_x = 30, end_y = 30, diff = (.2,.1,.1), mirror = (.7,.2,.2) ) RECTANGLE ( start_x = 30, start_y = 30, end_x = 60, end_y = 60, diff = (.2,.1,.1), mirror = (.7,.2,.2) ) ) PATTERN ( name = MIRROR_STRIPE_V { ** blue striped mirror ** } x_size = 60 y_size = 60 RECTANGLE ( start_x = 0 start_y = 0 end_x = 30 end_y = 60 diff = (.1, .1, .2) mirror = (.2, .2, .9) ) ) PATTERN ( name = MIRROR_STRIPE_H { ** striped mirror ** } x_size = 60 y_size = 60 RECTANGLE ( start_x = 0 start_y = 0 end_x = 60 end_y = 30 diff = (.1, .1, .1) mirror = (.45, .45, .45) ) ) { ********************* OBJECTS ********************* } { ** ground (standard checkered type) ** } PARALLELOGRAM ( loc = ( -10000, 0, -10000), { ** big! ** } v1 = (20000, 0, 0), v2 = ( 0, 0, 20000), diff = ( .8, .8, 0), pattern = CHECK xmult = 2 ymult = 2 ) { ** 3 balls (red, green, blue) - all are shiny ** } BEGIN_BBOX SPHERE ( loc = (150, 25, 0) radius = 20 diff = (.9, .1, .1) { ** red ** } amb = (.4, .4, .4) reflect = .70 sreflect= 20 ) SPHERE ( loc = (150, 75, 0) radius = 20 diff = (.1, .9, .1) { ** green ** } amb = (.4, .4, .4) reflect = .70 sreflect= 20 ) SPHERE ( loc = (150, 125, 0) radius = 20 diff = (.3, .3, .9) { ** blue ** } amb = (.4, .4, .4) reflect = .60 sreflect= 20 ) END_BBOX { ** mirrored parallelograms ** } PARALLELOGRAM ( loc = (150, 0, 100) v1 = (100, 0, -100) v2 = (0, 180, 0) diff = (.1, .1, .1) mirror = (.7, .7, .7) pattern= MIRROR_CHECK ) PARALLELOGRAM ( loc = (250, 0, -40) v1 = (-100, 0, -100) v2 = (0, 180, 0) diff = (.1, .1, .1) mirror = (.8, .8, .8) pattern= MIRROR_STRIPE_H xmult = .5 ymult = .5 ) { ** An observer ** } OBSERVER ( loc = (-20, 85 -40) lookat = (200, 50, -15) ) { ** Lights (but not Bud lights) ** } LAMP ( loc = (20, 140, 20), radius = 5, dist = 140 ) LAMP ( loc = (240, 75, -5), radius = 5, dist = 70 ) SKY ( horiz = (.3, .3, .75), zenith = (.1, .1, .50), dither = 4 ) FOC_LENGTH = 65