home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computerspiele Selbermachen
/
computerspieleselbermachen.iso
/
arch
/
archtect.pov
< prev
Wrap
Text File
|
1994-09-21
|
18KB
|
419 lines
// archtect.pov
// PovRay 2.0 file
// Simple illustration of some objects in archtect.inc
// Michael G. Wilkins 9/94
// < CIS [73042,1022]; Internet/Bitnet wilkins@bootes.unm.edu>
#include "shapes.inc"
#include "colors.inc"
#include "textures.inc"
#include "stones.inc"
#include "fov.inc"
#include "archtect.inc"
// set up floating constants (dx and dz come from archtect.inc file)
#declare xd = 2.*dx //x translation for laying flags of side 2
#declare zd = 2.*dz //z translation for laying flags of side 2
#declare gr = 0.05 //grout cutback between flags
#declare xt = -10.3923 //shift to front of foundation
// useful to have
#declare Tex1 = texture { Stone13
finish {
ambient .35
diffuse .6
reflection .01
}
}
//****************************CAMERAS******************************
/* camera { //slant front view
location < 2., 8.0, -50.0 >
direction <0.0, 0.1, 1.3 >
up < 0.0, 1.0, 0.0 >
right < 4/3, 0.0, 0.0 >
look_at < 0., 4.0, 3.0 >
} */
camera { // Doric plinth closeup
location < -3., 3.0, -21.0 >
direction <0.0, 0.1, 1.7 >
up < 0.0, 1.0, 0.0 >
right < 4/3, 0.0, 0.0 >
/* right < 1.0, 0.0, 0.0 > for 1:1 aspect ratio */
look_at < -3.0, 2.0, xt >
}
/* camera { // Doric cap closeup
location < -4., 12.0, -24.0 >
direction <0.0, 0.1, 1.8 >
up < 0.0, 1.0, 0.0 >
right < 4/3, 0.0, 0.0 >
look_at < -3.0, 11.0, xt >
} */
//---------------------------FOUNDATION------------------------------
//big flagstone
#declare Flag = object { Hex scale <2.0-2*gr, 0.1, 2.0-2*gr > }
#declare Found = object { Hex scale < 12.0, 0.90, 12.0 >
texture {
pigment { Gray30 } //gray grout and base
finish {
ambient .1
diffuse .9
}
}
}
//----------------------------FLAGSTONES---------------------------------
// Stick flags on top of foundation. If you use strong marble patterns,
// randomize the texture of each flag (by a translate) to see the flag
// pattern rather than the marble pattern.
#declare Base1 = object {
union {
object { Found }
// central flag in big hex floor plan - bit of color
object { Flag pigment { Sapphire_Agate }}
// up + z central col
object { Flag pigment { Gray90 }
translate <0.,0.9,zd>}
object { Flag pigment { Gray90 }
translate <0.,0.9,2*zd> }
object { Flag pigment { Gray90 }
translate <0.,0.9,3*zd> }
//down -z
object { Flag pigment { Gray90 }
translate <0.,0.9,-zd> }
object { Flag pigment { Gray90 }
translate <0.,0.9,-2*zd> }
object { Flag pigment { Gray90 }
translate <0.,0.9,-3*zd> }
// up + z 1 col -x
object { Flag pigment { Gray90 }
translate <-xd,0.9,dz> }
object { Flag pigment { Gray90 }
translate <-xd,0.9,zd+dz> }
object { Flag pigment { Gray90 }
translate <-xd,0.9,2*zd+dz> }
//down -z
object { Flag pigment { Gray90 }
translate <-xd,0.9,-dz> }
object { Flag pigment { Gray90 }
translate <-xd,0.9,-zd-dz> }
object { Flag pigment { Gray90 }
translate <-xd,0.9,-2*zd-dz> }
// up + z 2 col -x
object { Flag pigment { Gray90 }
translate <-2*xd,0.9,0.> }
object { Flag pigment { Gray90 }
translate <-2*xd,0.9,zd> }
object { Flag pigment { Gray90 }
translate <-2*xd,0.9,2*zd> }
object { Flag pigment { Gray90 }
translate <-2*xd,0.9,3*zd> }
//down -z
object { Flag pigment { Gray90 }
translate <-2*xd,0.9,-zd> }
object { Flag pigment { Gray90 }
translate <-2*xd,0.9,-2*zd> }
object { Flag pigment { Gray90 }
translate <-2*xd,0.9,-3*zd> }
// up + z 3 col -x
object { Flag pigment { Gray90 }
translate <-3*xd,0.9,dz> }
object { Flag pigment { Gray90 }
translate <-3*xd,0.9,zd+dz> }
//down -z
object { Flag pigment { Gray90 }
translate <-3*xd,0.9,-dz> }
object { Flag pigment { Gray90 }
translate <-3*xd,0.9,-zd-dz> }
//last -x central corner
object { Flag pigment { Gray90 }
translate <-4*xd,0.9,0.> }
// up + z 1 col +x
object { Flag pigment { Gray90 }
translate <xd,0.9,dz> }
object { Flag pigment { Gray90 }
translate <xd,0.9,zd+dz> }
object { Flag pigment { Gray90 }
translate <xd,0.9,2*zd+dz> }
//down -z
object { Flag pigment { Gray90 }
translate <xd,0.9,-dz> }
object { Flag pigment { Gray90 }
translate <xd,0.9,-zd-dz> }
object { Flag pigment { Gray90 }
translate <xd,0.9,-2*zd-dz> }
// up + z 2 col +x
object { Flag pigment { Gray90 }
translate <2*xd,0.9,0.> }
object { Flag pigment { Gray90 }
translate <2*xd,0.9,zd> }
object { Flag pigment { Gray90 }
translate <2*xd,0.9,2*zd> }
object { Flag pigment { Gray90 }
translate <2*xd,0.9,3*zd> }
//down -z
object { Flag pigment { Gray90 }
translate <2*xd,0.9,-zd> }
object { Flag pigment { Gray90 }
translate <2*xd,0.9,-2*zd> }
object { Flag pigment { Gray90 }
translate <2*xd,0.9,-3*zd> }
// up + z 3 col -x
object { Flag pigment { Gray90 }
translate <3*xd,0.9,dz> }
object { Flag pigment { Gray90 }
translate <3*xd,0.9,zd+dz> }
//down -z
object { Flag pigment { Gray90 }
translate <3*xd,0.9,-dz> }
object { Flag pigment { Gray90 }
translate <3*xd,0.9,-zd-dz> }
//last +x central corner
object { Flag pigment { Gray90 }
translate <4*xd,0.9,0.> }
}
finish { ambient 0.2
diffuse 0.7
reflection 0.1
}
}
//now clean up edges of Base where flags overhang.
// a box would be far better here, as kindly pointed out
// by Truman Brown [71477,221].
#declare Base2 = object {
intersection {
object { Base1 }
//angled
plane { < 0 0 1>, 0 rotate y*60 translate x*12 }
plane { < 0 0 1>, 0 rotate y*120 translate x*12 }
plane { < 0 0 1>, 0 rotate y*240 translate <-12,0,0> }
plane { < 0 0 1>, 0 rotate y*300 translate <-12, 0, 0> }
//parallel X
plane { < 0 0 1>, -xt }
plane { < 0 0 1>, 0 rotate y*180 translate z*xt }
}
}
//------------------------------WALL---------------------------------------
#declare Brick = object { Bric scale <1.,1.,0.5> }
// Build wall of 1 course of blocks at origin. For front, move xt in Z.
// Make wall longer than necessary, clip cleanly for corners
#declare Wall = object {
union {
object { Brick translate <-5*tau,0., 0. > }
object { Brick translate <-4*tau, 0., 0. > }
object { Brick translate < -3*tau, 0., 0. > }
object { Brick translate < -2*tau, 0., 0. > }