home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #7
/
amigamamagazinepolishissue1998.iso
/
varia
/
povray3
/
povray3_fpu
/
pov3demo
/
showoff
/
smoke.pov
< prev
next >
Wrap
Text File
|
1997-12-12
|
5KB
|
220 lines
// Persistence Of Vision raytracer version 3.0 sample file.
// File by Dan Farmer
#version 3.0
global_settings { assumed_gamma 2.2 }
#include "colors.inc"
#include "metals.inc"
#include "textures.inc"
#include "glass.inc"
#include "metals.inc"
// Dummy glass for testing
#declare Ashtray_Texture =
texture {
T_Glass3
finish {
specular 0.3 roughness 0.01
caustics 1
}
}
camera {
location <-50, 45, -140>
angle 52
look_at <15, 10, 0>
}
light_source{<-10, 100, 60> colour White }
// Cigarette smoke
#declare Smoke =
sphere { 0, 1
hollow
no_shadow
pigment { colour Clear }
halo {
linear
max_value 0.15
cylindrical_mapping
attenuating
turbulence 0.75
octaves 6
omega (1/1.618)
lambda 1.618
colour_map {
[0.0 color rgbt <1, 1, 1, 1>]
[0.5 color rgbt <1, 1, 1, 0.65>]
[1.0 color rgbt <0, 0, 0, 0>]
}
scale <0.4, 0.65, 0.4>
samples 10
aa_level 0
aa_threshold 0.3
}
scale <10, 30, 10>
translate <-5, 40, 0>
}
// Glowing ashes
#declare GlowTip =
cylinder { -y, y, 1 hollow
no_shadow
pigment { colour Clear }
halo {
linear
max_value 0.15
cylindrical_mapping
turbulence 0.3
colour_map {
[0.0 color rgbt <1, 0.5, 0, 1>]
[0.95 color rgbt <1, 0.5, 0, 0>]
}
samples 10
aa_level 0
aa_threshold 0.3
scale <0.75, 1.1, 1.1>
}
rotate z*90
scale <2.0, 7.5, 7.5>
translate -x*3 // position at ash tip of cigarette
}
#declare Cigarette =
union {
object { Smoke }
union {
// Glow surrounding burned tip
object { GlowTip}
// ashes... a cylinder with rounded cap ends
superellipsoid { <1.0, 0.65> scale <4, 4, 5> rotate y*90
pigment {
gradient x
turbulence 0.35
color_map {
[ 0.00 Gray60 ] // ashes
[ 0.05 Gray20 ] // dark burned area
[ 0.10 Gray60 ] // ashes
[ 0.15 Gray20 ] // dark burned area
[ 0.20 Gray60 ] // ashes
[ 0.25 Gray20 ] // dark burned area
[ 0.30 Gray60 ] // ashes
[ 0.50 Gray20 ] // dark burned area
[ 0.60 Orange ] // a little extra glow
[ 0.85 red 0.4 ]
[ 0.90 Gray20 ]
[ 1.00 White ]
}
scale 5.5
translate -x*5
}
finish { ambient 0.4 }
}
// unburned portion of cigarette
union {
// white part
cylinder { x, x*73 , 4 open
pigment {
gradient x // lightly banded paper
color_map {
[0.5 White ]
[0.5 White*0.95 ]
[1.0 White ]
}
}
finish { crand 0.05 ambient 0.30 diffuse 0.6 }
}
// Gold band
cylinder { x*73 x*73.5, 4 open
texture {
pigment { Tan }
finish { metallic ambient 0.3 diffuse 0.7 }
}
}
// White band
cylinder { x*73.5 x*75 , 4 open
texture {
pigment { White }
finish { crand 0.15 ambient 0.30 diffuse 0.6 }
}
}
// Gold band
cylinder { x*75 x*75.5, 4 open
texture {
pigment { Tan }
finish { metallic ambient 0.3 diffuse 0.7 }
}
}
// White band
cylinder { x*75.5 x*77 , 4 open
texture {
pigment { White }
finish { crand 0.15 ambient 0.30 diffuse 0.6 }
}
}
// filter part
cylinder { x*77, x*100 , 4 open
texture {
Cork
scale 30
finish { crand 0.15 ambient 0.30 diffuse 0.6 }
}
}
}
rotate z*9
}
translate -y*12
}
#declare FloorPlane =
plane { y, -20.001 pigment { Blue } }
// Cutout for notches in ashtray
#declare Groove =
union {
cylinder { <0,0,0>, <0, 0, 1>, 1 }
box { <-1 0, 0> <1, 5, 1> }
scale <5, 5, 50>
translate y*5
}
// Ashtray
#declare Ashtray =
difference {
// Make outside shape
superellipsoid { <0.5, 0.1> rotate x*90 scale <40, 10, 40> }
// Cut out inside shape
superellipsoid { <0.8, 0.2> rotate x*90 scale <35, 20, 35> translate y*12 }
// Cut out grooves
union {
object { Groove rotate y*0 }
object { Groove rotate y*90 }
object { Groove rotate y*180 }
object { Groove rotate y*270 }
}
texture {
Ashtray_Texture
finish {
caustics 2
}
}
translate -y*10
}
object { FloorPlane }
union {
object { Cigarette }
object { Ashtray }
}