|
|
// Persistence of Vision Ray Tracer Scene Description File
// File: rocket nozzle.pov
// Vers: 3.5
// Desc: example of a rocket nozzle and supersonic exhaust
// Date: 2004.139
// Auth: Bob Hughes
// Mail: omn### [at] charternet
// Note: plume expands to mimic going from atmosphere to vacuum of space
// Free: use as needed, no credit necessary
global_settings {
assumed_gamma 1
}
camera {
location <0,0,-15>
angle 50
look_at 2*x
}
light_source {
-1000*z,
1
rotate <30,-30,0>
}
plane {z,100
pigment {
hexagon color rgb 1, color rgb 0.5, color rgb 0
rotate 90*x scale 10
}
hollow
}
/* Rocket Nozzle */
#declare N=
function {
(sin(0.667*pow(x,4))-pow(1.04*pow(x,2),1.12)-pow(y,2)-pow(z,2)+0.4)-0.0333*x
}
#declare Nozzle=
isosurface {
function {
abs(N(x,y,z))-0.03
}
contained_by {
box {<-1.4,-0.75,-0.75>,<-0.125,0.75,0.75>}
}
max_gradient 2
//all_intersections
texture {
pigment {
gradient x
color_map { // nozzle's heated colors
[0 color rgb 0.5]
[0.3 color rgb <5,0.5,0>]
[1 color rgb <8,5,0.5>]
}
scale 1.1
}
normal {
gradient x 0.6 scallop_wave scale 0.05
}
finish {
ambient 0.05 diffuse 0.3 specular 0.5 roughness 0.01
}
}
scale <1.5,1,1> //translate x
}
/* Exhaust Plume */
#declare S=
density {
function {N(x,y,z)}//spherical
density_map {
[0 rgb 0]
[0.0125 rgb <0.1,0.3,0.9>]
[0.1 rgb <0.1,0.3,0.9>*0.02]
[0.6 rgb <0.1,0.3,0.9>*0.06]
[1 rgb <0.1,0.3,0.9>]
}
translate -x/6
}
#declare GS=
density {
gradient x
density_map {
[0 S]
[0.5 rgb 0]
}
}
#declare C=
density {
cylindrical
density_map {
[0.1 rgb 0]
[0.25 rgb <0.9,0.3,0.6>*0.25]
[0.5 rgb <0.9,0.3,0.6>*2]
[0.75 rgb <0.9,0.3,0.6>*0.25]
[0.9 rgb 0]
}
poly_wave 0.8
warp {turbulence <0.2+0.1*clock,0,0.2+0.1*clock>}
warp {repeat y/4 flip y}
warp {turbulence <0.2,0,0.2>*clock}
scale <1/3-0.15*clock,1/3,1/3-0.15*clock> //rotate 90*z
}
#declare G=
density {
gradient y
density_map {
[0.1 rgb 0]
[0.2 rgb 0.05]
[0.5 C]
[0.6 C]
[0.8 rgb 0.05]
[0.9 rgb 0]
}
poly_wave 0.4 frequency 8
}
#declare GC=
density {
cylindrical
density_map {
[0.25 rgb 0]
[0.75 G]
[1 rgb 0]
}
rotate 90*z
}
#declare X=
function(x) {x}
#declare Exhaust=
sphere {
0,1
scale <0.5,1,1> translate -0.5*x
pigment {
color rgbt 1
}
interior {
media {
samples 15
emission 1.5
density {
function {abs(X(x))}
density_map {
[0 rgb 0]
[0.5 GC]
[0.75 GS]
}
}
}
media {
samples 15
absorption 0.5
density {
function {abs(X(x))}
density_map {
[0 rgb 0]
[0.5 GC]
[0.75 GS]
}
}
}
}
scale <12,1.5+1.5*clock,1.5+1.5*clock> translate <11.2+0.4*clock,0,0>
hollow
}
/* Finished Nozzle */
union {
object {
Nozzle
}
object {
Exhaust
}
translate -3*x
rotate 75*clock*y
}
Post a reply to this message
|
|