home *** CD-ROM | disk | FTP | other *** search
- /*
- "Ritual to the goddess of Teraflops"
-
- ideen:
-
- -vuur erboven
- -HF in achtergrond
-
- started: end 1992
- finished: Never..
-
-
- by HWN
- */
-
- #include "colors.inc"
- #include "textures.inc"
- #include "shapes.inc"
-
- #declare zoom =
- camera {
- location <1.5, 1.6, -1.8>
- // right <1.33, 0, 0>
- // up <0, 1.0, 0>
- sky <0, 1, 0>
- aspect 1.33
- fov 90
- look_at <0, 1.35, 0.5>
- translate <1.5, 0, 0.5>
- }
-
- object {
- light_source {
- <10, 20, -10> color Grey90
- spotlight
- point_at <0, 2, 0>
- // radius 90
- // falloff 70
- tightness 0.05
- }
- }
-
- #declare Horizon = color DarkPurple
- #declare Darknight = color red 0.074 green 0.0 blue 0.143 // even darker
-
-
- options {
- background y color Darknight
- }
-
- #declare Sky_Globe = object {
- sphere { <0, 0, 0>, 100 }
- texture {
- color Horizon
- /* gradient <0, 1, 0>
- color_map {
- [0.00 0.5 color Horizon color Black]
- [0.50 1.0 color Black color Black]
- }*/
- scale <50, 80, 50>
- ambient 0.3 diffuse 0.0 // no shadows
- }
- }
-
- /*
- * Desert, with sand
- */
- #declare Floor_Plane = object {
- plane { <0, 1, 0>, 0 }
- texture {
- // waves 0.3 frequency 0.3 phase 0.0
- color red 0.506 green 0.375 blue 0.102
- ambient 0.3
- diffuse 0.4 // donker
- }
- }
-
- /*
- * start of altar part
- */
- #declare Grnt19 = texture {
- color Grey40
- }
- /*
- granite
- turbulence 0.0
- color_map {
- [0.0 0.3 color White color DimGray]
- [0.2 0.4 color DimGray color DimGray]
- [0.4 0.6 color DimGray color DimGray]
- [0.6 1.0 color DimGray color DimGray]
- }
- 0.02
- }
-
- */
-
- #declare gleuf = quadric { Cylinder_Y scale <0.1, 1, 0.1> inverse }
- #declare bovenrichel = intersection {
- plane { <1, 0, 0>, 0 rotate <0, -45, 0> }
- plane { <-1, 0, 0>, 0 rotate <0, 45, 0> }
- intersection { Disk_X scale <1.2, 0.05, 0.05> translate <-0.55, 1, -0.5> }
- }
-
- #declare onderrichel = quadric {
- Cylinder_X scale <1, 0.05, 0.05>
- translate <0, 0.25, -0.6> inverse
- }
-
- #declare altar = object {
- union {
- intersection {
- box { <-0.5, 0, -0.5>, <0.5, 1.05, 0.5> }
- quadric { gleuf translate <0.5, 0, 0.5> }
- quadric { gleuf translate <0.5, 0, -0.5> }
- quadric { gleuf translate <-0.5, 0, -0.5> }
- quadric { gleuf translate <-0.5, 0, 0.5> }
- }
- box { <-0.5, 1, -0.5>, <0.5, 1.05, 0.5> }
- intersection { bovenrichel }
- intersection { bovenrichel rotate <0, 90, 0> }
- intersection { bovenrichel rotate <0, 180, 0> }
- intersection { bovenrichel rotate <0, 270, 0> }
- intersection {
- box { <-0.6, 0, -0.6>, <0.6, 0.25, 0.6> }
- quadric { onderrichel }
- quadric { onderrichel rotate <0, 90, 0> }
- quadric { onderrichel rotate <0, 180, 0> }
- quadric { onderrichel rotate <0, 270, 0> }
- }
-
- }
- bounded_by {
- box { <-0.7, 0, -0.7>, <0.7, 1.2, 0.7> }
- }
- texture {
- Grnt19
- specular 0.1
- roughness 0.5
- }
- }
-
- #declare SandColor = color red 0.84 green 0.79 blue 0.53
-
- #declare beige_plastic = texture {
- roughness 0.2
- specular 0.2
- ambient 0.2
- diffuse 0.5
- color SandColor
- }
-
- #declare traprot = 25
- #declare buisbox = box { <-0.16, -0.015, -0.2>, <0.16, 0.225, 0.1> }
-
- #declare monitor_voet = union { // voetje
- intersection {
- Disk_Y scale <0.15, 0.0075, 0.15>
- translate <0, -0.1, 0>
- }
- intersection {
- Disk_Y scale <0.05, 0.05, 0.05>
- translate <0, -0.05, 0>
- }
- translate <0, 0, 0.1>
- }
-
- #declare monitor_body = union {
- intersection { // trapeziumvormige buishouder
- plane { <0, -1, 0>, 0 }
- plane { <-1, 0, 0>, 0 rotate <0, 15, 0> translate <-0.16, 0, 0> }
- plane { <1, 0, 0>, 0 rotate <0, -15, 0> translate <0.16, 0, 0> }
- plane { <0, 1, 0>, 0 rotate <20, 0, 0> translate <0, 0.23, 0> }
- plane { <0, 0, 1>, 0.3 }
- plane { <0, 0, -1>, 0.0 }
- }
- intersection { //voorkant
- box { <-0.2, -0.045, -0.1>, <0.2, 0.255, 0.0> }
- box {
- buisbox
- inverse
- }
- }
- }
-
- #declare beeld = texture {
- image_map { gif "povscreen.gif" once interpolate 2 }
- specular 0.3
- roughness 0.1
- ambient 0.8
- diffuse 0.1
- scale <0.32, 0.24, 1>
- translate <-0.16, -0.015, 0>
- }
-
- #declare buis = object {
- sphere { <0, 0.1, 1.92>, 2 }
- clipped_by { box { buisbox } }
- texture { beeld }
- }
-
- #declare monitor = composite {
- composite {
- object { buis }
- object {
- union { monitor_body }
- texture { beige_plastic }
- }
- rotate <10, 0, 0>
- }
- object {
- union { monitor_voet }
- texture { beige_plastic }
- }
- translate <0, 0.1, 0>
- bounded_by { box { <-0.25, 0.0, -0.15>, <0.25, 0.45, 0.4> } }
- }
-
- /*
- * boek in XZ vlak
- */
-
- #declare closed_book = composite {
- object { //cover
- intersection {
- union { //outside
- box { <0, -0.025, 0>, <0.2, 0.025, 0.3> }
- intersection {
- quadric { Cylinder_Z scale <0.025, 0.025, 1> }
- box { <-1, -0.03, 0>, <0.1, 0.03, 0.3> }
- }
- }
- union {
- box { <0, -0.02, -0.1>, <0.3, 0.02, 0.4> }
- quadric { Cylinder_Z scale <0.02, 0.02, 1> }
- inverse
- }
- }
- texture {
- color Red
- }
- }
- object {
- union {
- box { <0.0, -0.02, 0.01>, <0.19, 0.02, 0.29> }
- intersection {
- Disk_Z
- scale <0.02, 0.02, 0.14>
- translate <0, 0, 0.15>
- }
- }
- texture { color White }
- }
- translate <0, 0.025, 0>
- }
-
- /*
- * een keyboard
- *
- * David Anjo gebruikt PV3D.... om een laptop met keyboard te ontwerpen.
- * Hij is gek, met een editor en wat declares kan ik het korter en VEEL
- * sneller!
- */
-
- // centimeters!
-
- #declare GreyPlastic = texture {
- roughness 0.2
- specular 0.2
- ambient 0.2
- diffuse 0.5
- color red 0.70 green 0.70 blue 0.70
- }
-
- #declare WhitePlastic = texture {
- roughness 0.2
- specular 0.2
- ambient 0.2
- diffuse 0.5
-
- color red 1 green 1 blue 1
- }
-
- #declare key_height = 0.5
- #declare key_depth = 0.9
- #declare key_tilt = 2
-
- #declare GreyKey = object {
- box { <0, 0, 0>, <0.9, key_height, key_depth> }
- texture {
- GreyPlastic
- }
- rotate <key_tilt, 0, 0>
- }
-
- #declare WhiteKey = object {
- box { <0, 0, 0>, <0.9, key_height, key_depth> }
- texture {
- WhitePlastic
- }
- rotate <key_tilt, 0, 0>
- }
-
- #declare keyboard_base = object {
- box { <-1, -1, -1>, <25, 0, 10> }
- texture { ambient 0.3 diffuse 0.5 color red 1.0 }
- }
-
- #declare four_white_keys = composite {
- object { WhiteKey translate <0, 0, 0> }
- object { WhiteKey translate <1, 0, 0> }
- object { WhiteKey translate <2, 0, 0> }
- object { WhiteKey translate <3, 0, 0> }
- bounded_by { box { <0, 0, 0>, <4, key_height, 1> } }
- }
-
- #declare four_grey_keys = composite {
- object { GreyKey translate <0, 0, 0> }
- object { GreyKey translate <1, 0, 0> }
- object { GreyKey translate <2, 0, 0> }
- object { GreyKey translate <3, 0, 0> }
- bounded_by { box { <0, 0, 0>, <4, key_height, 1> } }
- }
-
- #declare three_grey_keys = composite {
- object { GreyKey translate <0, 0, 0> }
- object { GreyKey translate <1, 0, 0> }
- object { GreyKey translate <2, 0, 0> }
- bounded_by { box { <0, 0, 0>, <3, key_height, 1> } }
- }
-
- #declare three_white_keys = composite {
- object { WhiteKey translate <0, 0, 0> }
- object { WhiteKey translate <1, 0, 0> }
- object { WhiteKey translate <2, 0, 0> }
- bounded_by { box { <0, 0, 0>, <3, key_height, 1> } }
- }
-
- #declare elf_white_keys = composite {
- composite { four_white_keys }
- composite { four_white_keys translate <4, 0, 0> }
- composite { three_white_keys translate <8, 0, 0> }
- }
-
- #declare twelve_white_keys = composite {
- composite { four_white_keys }
- composite { four_white_keys translate <4, 0, 0> }
- composite { four_white_keys translate <8, 0, 0> }
- }
-
- #declare dertien_white_keys = composite {
- composite { four_white_keys }
- composite { four_white_keys translate <4, 0, 0> }
- composite { four_white_keys translate <8, 0, 0> }
- object { WhiteKey translate <12, 0, 0> }
- }
-
- #declare vert_grey_two = object {
- box { <0, 0, 0>, <1, key_height, 2> }
- texture { GreyPlastic }
- rotate <key_tilt, 0, 0>
- }
-
- #declare grey_one_half = object {
- box { <0, 0, 0>, <1.4, key_height, key_depth> }
- texture { GreyPlastic }
- rotate <key_tilt, 0, 0>
- }
-
- #declare grey_two = object {
- box { <0, 0, 0>, <1.9, key_height, key_depth> }
- texture { GreyPlastic }
- rotate <key_tilt, 0, 0>
- }
-
- #declare white_two = object {
- box { <0, 0, 0>, <1.9, key_height, key_depth> }
- texture { WhitePlastic }
- rotate <key_tilt, 0, 0>
- }
-
- #declare grey_threehalf = object {
- box { <0, 0, 0>, <3.4, key_height, key_depth> }
- texture { GreyPlastic }
- rotate <key_tilt, 0, 0>
- }
-
- #declare grey_twohalf = object {
- box { <0, 0, 0>, <2.4, key_height, key_depth> }
- texture { GreyPlastic }
- rotate <key_tilt, 0, 0>
- }
-
- #declare spacebar = object {
- box { <0, 0, 0>, <6.9, key_height, key_depth> }
- texture { WhitePlastic }
- rotate <key_tilt, 0, 0>
- }
-
- #declare bottom_keys = composite {
- object { grey_one_half } // left ctrl
- object { grey_one_half translate <2.5, 0, 0> } // left alt
- object { spacebar translate <4, 0, 0> }
- object { grey_one_half translate <11, 0, 0> } // right alt
- object { grey_one_half translate <13.5, 0, 0> } // right ctrl
- }
-
- #declare zxcvb = composite {
- object { grey_one_half } // left shift
- composite { elf_white_keys translate <1.5, 0, 0> }
- object { grey_twohalf translate <12.5, 0, 0> } // right shift
- }
-
- #declare asdfg = composite {
- object { grey_two } // caps lock
- composite { twelve_white_keys translate <2, 0, 0> }
- }
-
- #declare qwert = composite {
- object { grey_one_half } // tab
- composite { twelve_white_keys translate <1.5, 0, 0> }
- }
-
- #declare topnums = composite {
- composite { dertien_white_keys }
- object { grey_two translate <13, 0, 0> } // bksp
- }
-
- #declare func_keys = composite {
- object { GreyKey } // esc
- composite { four_white_keys translate <2, 0, 0> }
- composite { four_grey_keys translate <6.5, 0, 0> }
- composite { four_white_keys translate <11, 0, 0> }
- }
-
- #declare left_part = composite {
- composite { bottom_keys }
- composite { zxcvb translate <0, 0, 1> }
- composite { asdfg translate <0, 0, 2> }
- composite { qwert translate <0, 0, 3> }
- composite { topnums translate <0, 0, 4> }
- composite { func_keys translate <0, 0, 6.5> }
- object { vert_grey_two translate <14, 0, 2> } // return
- bounded_by { box { <0, 0, 0>, <15, key_height, 7.5> } }
- }
-
- #declare middle_part = composite {
- composite { three_grey_keys translate <0, 0, 0> }
- object { GreyKey translate <1, 0, 1> }
- composite { three_grey_keys translate <0, 0, 3> }
- composite { three_grey_keys translate <0, 0, 4> }
- composite { three_grey_keys translate <0, 0, 6.5> }
- bounded_by { box { <0, 0, 0>, <3, key_height, 7.5> } }
- }
-
- #declare numpad = composite {
- object { white_two }
- object { WhiteKey translate <2, 0, 0> }
- composite { three_white_keys }
- composite { three_white_keys translate <0, 0, 1> }
- composite { three_white_keys translate <0, 0, 2> }
- composite { three_white_keys translate <0, 0, 3> }
- composite { three_grey_keys translate <0, 0, 4> }
-
- object { vert_grey_two translate <3, 0, 0> }
- object { vert_grey_two translate <3, 0, 2> }
- object { GreyKey translate <3, 0, 4> }
- bounded_by { box { <0, 0, 0>, <4, key_height, 5> } }
- }
-
-
- #declare keyboard = composite {
- object { keyboard_base }
- composite { left_part }
- composite { middle_part translate <15.5, 0, 0> }
- composite { numpad translate <19, 0, 0> }
- bounded_by { box { <-1, -1, -1>, <25, 1, 11> } }
- rotate <-key_tilt, 0, 0>
- scale <0.02, 0.02, 0.02> // nu in cm
- }
-
- composite {
- object { altar }
- composite { monitor rotate <0, -30, 0> translate <-0.3, 1.05, 0.3> }
- composite { closed_book rotate <0, 45, 0> translate <0.2, 1.05, 0.3> }
- composite { keyboard translate <-0.1, 1.07, -0.35> }
- }
-
- #declare hill = object {
- quadric { Ellipsoid translate <0, -0.2, 0> }
- texture {
- // waves 0.3 frequency 0.3 phase 0.0
- color red 0.506 green 0.375 blue 0.102
- ambient 0.3
- diffuse 0.4 // donker
- }
- }
-
- /* END ALTAR */
-
- camera { zoom }
-
- composite { //hills
- object {
- hill
- scale <20, 5, 10>
- translate <-30, 0, 50>
- }
- object {
- hill
- scale <11, 6.5, 12>
- translate <-33, 0, 44>
- }
- object {
- hill
- scale <15, 4, 10>
- rotate <10, 10, 10>
- translate <-20, 0, 50>
- }
- object {
- hill
- scale <5, 3, 16>
- rotate <0, 0, 10>
- translate <-50, 0, 40>
- }
- object {
- hill
- scale <15, 4, 10>
- rotate <10, 10, 10>
- translate <-60, 0, 50>
- }
- translate <-20, 0, -15>
- }
-
- object {
- Floor_Plane
- }
-
- //object { Sky_Globe}
-
-
- /*********************CRAY****************/
-
- /*
- * TEXTURES
- */
-
- #declare brownplastic = texture {
- roughness 0.2
- specular 0.2
- ambient 0.2
- diffuse 0.5
- color VeryDarkBrown
- }
-
- /***************************************************************************
- * OBJECTS *
- ***************************************************************************/
-
- /*
- * CRAY-TOWER
- */
-
- /*
- * intersect shape, projected on XY plane
- */
-
- #declare intersectshape = intersection {
- plane { <1, 0, 0>, 0 rotate <0, 0, 15> translate <2, 0, 0> }
- intersection {
- plane { <-1, 0, 0>, 0 rotate <0, 0, 10> }
- plane { <0, -1, 0>, 0 }
- inverse
- translate <1.1, 1.2, 0>
- }
- intersection {
- plane { <-1, 0, 0>, 0 }
- plane { <-1, 0, 0>, 0 rotate <0, 0, 60> }
- translate <1.3, 1.0, 0>
- inverse
- }
- }
-
- #declare crayquart = object
- {
- intersection {
- plane { <0, 1, 0>, 3.7 }
- plane { <0, -1, 0>, 0 }
- intersection { intersectshape }
- intersection { intersectshape rotate <0, 45, 0> scale <1.3, 1, 1.3> } // 1.3 = sqrt(2) - epsilon
- intersection { intersectshape rotate <0, 90, 0> }
- plane { <-1, 0, 0>, 0 }
- plane { <0, 0, 1>, 0 }
- }
- texture {
- brownplastic
- }
- bounded_by {
- box { <0, 0, -2>, <2, 3.7, 0> }
- }
- translate <0.2, 0, -0.2>
- }
-
- #declare computrons = composite {
- object { // The teraflops are pouring out! :)
- light_source {
- <0, 0.01, 0> color green 5.0
- attenuation 1
- spotlight
- point_at <0, 1, 0>
- // radius 82
- // falloff 89.5
- tightness 0.3
- }
- }
- // object { box { <-0.1, 0, -0.1>, <0.1, 0.1, -0.5> } } //small reflector to keep altar in normal color
- }
-
- #declare cray = composite {
- object { crayquart rotate <0, 0, 0> }
- object { crayquart rotate <0, 90, 0> }
- object { crayquart rotate <0, 180, 0> }
- object { crayquart rotate <0, 270, 0> }
- composite { computrons }
- bounded_by { box { <-2.3, 0, -2.3>, <2.3, 3.8, 2.3> } }
- }
-
- /*
- * PEDESTAL
- */
- #declare Pedestal_Texture = texture {
- // PinkAlabaster // Very nice texture
- // scale <0.15, 0.15, 0.15>
- color Pink
- roughness 0.2
- specular 0.2
- reflection 0.1
- ambient 0.7
- diffuse 0.3
- }
-
- #declare stair_part = box { <-1, 0, -0.5>, <1, 0.125, 0.5> }
-
- #declare stair_plane = plane { <0, 0, -1>, 0 rotate <55, 0, 0> translate <0, 0, -4> }
-
- #declare puddle = object {
- intersection {
- plane { <0, 1, 0>, 0.1 }
- union {
- sphere { <0, 0, 0>, 3 }
- sphere { <0, 0, 4>, 5 }
- }
- }
- texture {
- colour Blue
- ambient 0.1
- diffuse 0.1
- reflection 0.6
- // ripples 0.4
- scale <10, 10, 10>
- }
- }
-
- #declare stairs = object {
- union {
- box { stair_part translate <0, 0.000, -3.82148> }
- box { stair_part translate <0, 0.125, -3.642963> }
- box { stair_part translate <0, 0.250, -3.4644445> }
- box { stair_part translate <0, 0.375, -3.285926> }
- box { stair_part translate <0, 0.500, -3.1074075> }
- box { stair_part translate <0, 0.625, -2.928889> }
- box { stair_part translate <0, 0.750, -2.7503705> }
- box { stair_part translate <0, 0.875, -2.571852> }
- }
- bounded_by { box { <-1, -0.1, -4.5>, <1, 1.1, -1.3> } }
- translate <0, 0, 0.2>
- texture { Pedestal_Texture }
- }
-
- #declare railing = intersection {
- union {
- box { <-1.25, 0, -0.5>, <-1, 0.25, 4> rotate <-35, 0, 0> translate <0, 0, -4>}
- box { <1, 0, -0.5>, <1.25, 0.25, 4> rotate <-35, 0, 0> translate <0, 0, -4>}
- }
- plane { <0, -1, 0>, 0 }
- plane { <0, 1, 0>, 1 }
- }
-
- // tan(35) == 0.700207
- // /
- // /35 1
- // ?
- // 1/tan 35 = ? = 1.428148, ?/8 = 0.1785185
-
- #declare pedestal = composite {
- object {
- union {
- intersection {
- plane { <0, -1, 0>, 0 }
- plane { <0, 1, 0>, 1 }
- plane { stair_plane }
- plane { stair_plane rotate <0, 90, 0> }
- plane { stair_plane rotate <0, 270, 0> }
- plane { stair_plane rotate <0, 180, 0> }
- }
- intersection { railing rotate <0, 90, 0> }
- intersection { railing rotate <0, 180, 0> }
- intersection { railing rotate <0, 270, 0> }
- intersection { railing rotate <0, 0, 0> }
- }
- bounded_by {
- box { <-4.5, 0, -4.5>, <4.5, 1, 4.5> }
- }
- texture {
- Pedestal_Texture
- }
- }
- object {
- stairs
- rotate <0, 0, 0>
- }
- object {
- stairs
- rotate <0, 90, 0>
- }
- object {
- stairs
- rotate <0, 180, 0>
- }
- object {
- stairs
- rotate <0, 270, 0>
- }
- bounded_by { box { <-5, 0, -5>, <5, 1, 5> } }
- }
-
- object { // mirage
- puddle
- translate <10, 0, 60>
- }
-
- composite {
- composite {
- pedestal
- }
- composite {
- cray
- translate <0, 1, 0>
- }
- translate <0, 0, 7>
- }
-
-