home *** CD-ROM | disk | FTP | other *** search
- /* VLOTHACK.R
- * A port to Rayce of
- * A port to PoV
- * of Lex van der Sluijs' vlot.v for Vivid,
- * by Han-Wen Nienhuys <hanwen@stack.urc.tue.nl>
- */
-
- #include "colors.inc"
- #include "shapes.inc"
-
- #declare FoV_45 = 1.373 /* bij aspect 1:1 */
-
- camera {
- location <170, -286, 60>
- direction <1.373, 0, 0>
- sky <0, 0, 1>
- look_at <0, -40, 65>
- fov 45
- }
-
- options { background color SkyBlue }
-
- object {
- light_source { <-600, -450, 1500> color red 1.0 green 1.0 blue 1.0 }
- }
-
- #declare LeXgreen = color red 0.3 green 0.6 blue 0.8
- #declare waterplane = object { /* water */
- plane { <0, 0, 1>, -1 }
- texture{
- diffuse color green .1 blue .05
- reflection color red .05 green .15 blue .1
- refraction color red .5 green .8 blue .7
- ior 1.2
- roughness 0.01
- specular color White
- diffuse color Gray10
- // waves 0.1 frequency 30
- // ripples 0.4 frequency 0.2
- }
- }
-
- object { /* voor digital zits */
- plane { <0, 0, 1>, -50 }
- texture {
- color LeXgreen
- ambient 1.0 diffuse 0.0
- reflection 0.0
- refraction 0.0
- }
- }
-
- #declare Zeil_Texture = texture {
- /*granite
- turbulence 1.0 */
- diffuse color rgb <.6, .6, .6>
- ambient color rgb <.4, .4, .4>
- specular color rgb <.1, .1, .1>
-
- /* color_map {
- [0.0 0.7 color Gray80 color Gray80]
- [0.7 1.0 color Gray80 color Gray50]
- }*/
-
- brilliance 1.5
- specular 0.13
- roughness 1.0
- reflection 0.0
- refraction 0.0
- }
-
-
- #declare varnished_pine = texture {
- color rgb 0.7 * <color Brown> // Dark_Wood
- ambient color rgb 0.2 * <color White>
- diffuse color rgb 0.6 * <color White>
- roughness 0.2
- specular 0.5
- }
- /*
- #declare bound_balk_Y = object {
- intersection { Y_Disk }
- bounded_by { box { <-1, 0, -1>, <1, 1, 1> } }
- }
- #declare bound_balk_X = object {
- intersection { X_Disk }
- bounded_by { box { <0, -1 ,-1>, <1, 1, 1> } }
- }
- #declare bound_balk_Z = object {
- intersection { Z_Disk }
- bounded_by { box { <-1, -1, 0>, <1, 1, 1> } }
- }
- #declare balk_Y = object {
- intersection { Y_Disk }
- }
- #declare balk_X = object {
- intersection { X_Disk }
- }
- #declare balk_Z = object {
- intersection { Z_Disk }
- }
- */
- #declare houtenvlot = composite {
- cylinder {
- <-40, -61, 0>, <-40, 101, 0>, 10
- }
- cylinder {
- <-20, -60, 0>, <-20, 100, 0>, 10
- }
- cylinder {
- <0, -63, 0>, <0, 100, 0>, 10
- }
- cylinder {
- <20, -62, 0>, <20, 98, 0>, 10
- }
- cylinder {
- <40, -58, 0>, <40, 100, 0>, 10
- }
- bounded_by { box { <-50, -70, -10 >, <50, 110, 10> } }
- texture { varnished_pine }
- }
-
- #declare zeil_en_tuig = composite {
- cylinder {
- <0,10, 0>, <0, 10, 180>, 3
- /* bound_balk_Z
- scale <3, 3, 180>
- translate <0, 10, 0>*/
- }
- cylinder {
- // bound_balk_X
- <-50, 6, 170>, <50, 6, 170>, 1
- // scale <100, 1, 1> translate <-50, 6, 170>
- }
- cylinder {
- <-50, 6, 20>, <50, 6, 20>, 1
- // bound_balk_X
- // scale <100, 1, 1> translate <-50, 6, 20>
- }
- object { // zeil
- quadric { Cylinder_X scale <1, 182, 182> translate <0, 171, 95> }
- bounded_by {
- box { <-50, -30, 0>, <50, 5.5, 180> }
- }
- clipped_by { bounded_by }
- texture { Zeil_Texture }
- }
- bounded_by { box { <-51, -15, 9>, <51, 15, 180> } }
- texture { varnished_pine }
- }
-
-
- #declare Gold = colour red 0.8 green 0.498039 blue 0.196078
- #declare metallic_gold = texture {
- color Gold
- // metallic
- ambient 0.2
- diffuse 0.7
- brilliance 6.0
- reflection 0.25
- refraction 0.0
- specular 0.75
- roughness 0.0125
- }
-
- #declare schatkist = composite {
- composite {
- object {
- box { <-30, 0, 0>, <0, 40, 30> }
- }
- cylinder {
- <-15, 0, 30>, <-15, 40, 30>, 15
- }
- texture { varnished_pine }
- }
- composite{
- cylinder {
- <-15, 10, 30>, <-15, 13, 30>, 15.21
- }
- cylinder { < -15, 27, 30>, <-15, 30, 30>, 15.21 }
- object { // verticaal
- box { <-30.21, 27, 0>, <0.21, 30, 30> }
-
- }
- object { // verticaal
- box { <-30.21, 10, 0 >, <0.21, 13, 30> }
-
- }
- object { // horiz onder
- box { <-30.21, -0.21, 3.5>, <0.21, 40.21, 6.5> }
-
- }
- object { // horiz boven
- box { <-30.21, -0.21, 23.5>, <0.21, 40.21, 26.5> }
-
- }
- object { // slot
- box { <0.2, 17.5, 22.5>, <0.22, 22.5, 27.5> }
- }
- texture { metallic_gold }
- }
- bounded_by { box { <-31, -1, -1>, <31, 42, 45> } }
- rotate <0, 0, -15>
- translate <-10, -50, 10>
- }
-
- /*************************************************************************
- * schipbreukeling *
- *************************************************************************/
-
- #declare real_chrome = texture {
- color LightGray
- // metallic
- ambient 0.3
- diffuse 0.7
- reflection color rgb 0.15 * <1,1,1>
- brilliance 8.0
- specular 0.8
- roughness 0.1
- refraction 0.0
- }
-
-
- #declare poppetje = composite {
- /*
- * ONDER DE GORDEL
- */
- texture { real_chrome }
- composite {
- cylinder { <-10,0,0>, <10,0,0>, 7.5 }
- sphere { <-10, 0, 0>, 7.5 }
- sphere { <10, 0, 0>, 7.5 }
- }
-
-
- // benen
- composite {
- composite {
- object { // benen
- cylinder { <-10, -40, 0>, <-10, 0, 0>, 3 }// scale <3, 40, 3> translate <-10, -40, 0>
- }
- object {
- cylinder { <10, -40, 0>, <10, 0, 0>, 3 }// scale <3, 40, 3> translate <-10, -40, 0>
- // balk_Y scale <3, 40, 3> translate <10, -40, 0>
-
- }
- object { // knieen
- sphere { <-10, -40, 0>, 5 }
-
- }
- object {
- sphere { <10, -40, 0>, 5 }
- }
- bounded_by { box { <-15, -40, -6>, <15, 0, 6> } }
- }
-
- composite { // onderbenen
- composite { // links
- object {
- //balk_Z scale <3, 3, 40> translate <-10, -40, -40>
- cylinder { <-10, -40, -40>, <-10, -40, 0>, 3 }
- }
- object {
- // balk_Z scale <3, 3, 40> translate <10, -40, -40>
- cylinder { <10, -40, -40>, <10, -40, 0>, 3 }
-
- }
- object { // voet
- sphere { <10, -40, -40>, 6 }
- clipped_by { plane { <0, 0, -1>, 40 } }
-
- rotate <2, 2, 0>
- }
- object { // voet
- sphere { <-10, -40, -40>, 6 }
- clipped_by { plane { <0, 0, -1>, 40 } }
- rotate <-2, -2, 0>
- }
- bounded_by { box { <-16, -45, -50>, <16, -35, 0> } }
- }
-
- // transform_pop //einde onderbenen
- rotate <5, 0, 0>
- } /* onderbenen */
- // transform_pop //einde benen
- rotate <5, 0, 0>
- }
-
- /*
- * BOVEN DE GORDEL
- */
- composite { // ruggegraat
- object {
- // bound_balk_Z scale <3, 3, 50>
- cylinder { <0>,50*z, 3 }
- }
-
- composite {
- object { // schouders
- union {
- cylinder { <-12.5 ,0,0>, <12.5,0,0> ,5}
- sphere { <-12.5, 0, 0>, 5 }
- sphere { <12.5, 0, 0>, 5 }
- }
-
- }
- composite { // hoofd & nek
- object {
- cylinder { <0>, 15*z, 3}
-
- }
- object {
- sphere { <0, 0, 20>, 10 }
-
- }
- }
- bounded_by { box { <-12.5, -5, -5>, <12.5, 5, 30> } }
- rotate <25, 0, 0>
- translate <0, 0, 50>
- }
-
- composite { // rechterarm
- object {
- // balk_Z scale <3, 3, 35> translate <-12.5, 0, 15>
- cylinder { <-12.5, 0, 15>, <-12.5, 0, 50>, 3}
- }
- object { // elleboog
- sphere { <-12.5, 0, 15>, 5 }
- }
- composite { // onderarm
- object {
- // balk_Z scale <3, 3, 35> translate <-12.5, 0, -20>
- cylinder { <-12.5, 0, 15>, <-12.5, 0, 35>, 3}
-
- }
- composite { // rechterhand
- object {
- intersection {
- sphere { <-12.5, 0, -20>, 6 }
- // plane { <0, 0, 1> -20 texture { metallic_gold } }
- }
- }
- translate <12.5, 0, 20>
- rotate <0, 10, 0>
- translate <-12.5, 0, -20>
- }
-
- // einde rechter onderarm
-
- translate <12.5, 0, -15>
- rotate <-90, 0, 15>
- translate <-12.5, 0, 15>
- } /* r.onderarm */
- translate <12.5, 0, -50>
- rotate <-30, 0, -20>
- translate <-12.5, 0, 50>
- } /* einde RECHTER arm */
-
- composite { // linkerarm
- object {
- // balk_Z
- // scale <3, 3, 35> translate <12.5, 0, 15>
- cylinder { <12.5,0,15> , <12.5, 0, 50> , 3}
- }
- // elleboog
- object {
- sphere { <12.5, 0, 15>, 5 }
- }
-
- composite { // onderarm
- cylinder {
- //balk_Z
- <12.5,0,-20>, <12.5,0,15>, 3
- // scale <3, 3, 35> translate <12.5, 0, -20>
- }
-
- // rechterhand ??? volgens mij de linker, maar ja...
- composite {
- object {
- intersection {
- sphere { <12.5, 0, -20>, 6 }
- plane { <0, 0, 1>, -20 texture { metallic_gold } }
- }
- }
- }
-
- // einde linkerhand/rechterhand (LeX, wat is dit nu weer?)
- translate <-12.5, 0, -15>
- rotate <-80, 0, -5>
- translate <12.5, 0, 15>
- } /* einde onderarm */
- translate <-12.5, 0, -50>
- rotate <-30, 0, 20>
- translate <12.5, 0, 50>
- } /* einde linker arm */
-
- // transform_pop // einde ruggegraat
- rotate <30, 0, 0>
- }
- bounded_by { box { <-36, -60, -50>, <36, 40, 80> } }
- rotate <0, 0, 10>
- translate <23, -34, 15>
- } /* composite */
-
- composite {
- composite { poppetje }
- composite { zeil_en_tuig }
- composite { houtenvlot }
- composite { schatkist }
- rotate <0, 0, 30>
- }
-
- object { waterplane }
-