491 lines
10 KiB
POVRay
491 lines
10 KiB
POVRay
// 0 = simple gradient skysphere
|
|
// 1 = emitting media
|
|
#declare sky_type = 1;
|
|
// Radiosity looks bad here, probably because I don't know how to use it.
|
|
#declare use_radiosity = 0;
|
|
|
|
// Arbaro
|
|
#include "palm.inc"
|
|
|
|
#include "functions.inc"
|
|
#include "rad_def.inc"
|
|
#declare invsquare = function { 1 / pow(2, sqrt(x*x + y*y + z*z + 0.01)) }
|
|
#declare sinewave = function { sin(x) + sin(y)/2 + 0.5 + sin(z) }
|
|
// Screw you, I'm defining my own gradient function... bastards...
|
|
// height = y, base = sqrt(x^2+z^2), angle = arctan(opp/adj) = arctan(height/base)
|
|
// This is in radians. Horizon is 0 rad, zenith is pi/2 rad.
|
|
// This is for a texture map, so let's get that into [0,1] instead of [0,pi/2]
|
|
#declare gah = function { atan2(y, sqrt(x*x+z*z)) / (3.14 / 2) }
|
|
|
|
global_settings {
|
|
adc_bailout 0.00392157
|
|
assumed_gamma 1.5
|
|
noise_generator 2
|
|
#if (use_radiosity)
|
|
radiosity { Rad_Settings(Radiosity_OutdoorLight, off, off) }
|
|
#end
|
|
}
|
|
|
|
#if (sky_type = 0)
|
|
sky_sphere {
|
|
pigment {
|
|
gradient y
|
|
//granite
|
|
color_map {
|
|
[(1-cos(radians( 0)))/2 color rgb <0.5,0,0>]
|
|
[(1-cos(radians(45)))/2 color rgb <0.5,0.4,0>]
|
|
[(1-cos(radians(90)))/2 color rgb <0.5,0,0>]
|
|
}
|
|
}
|
|
}
|
|
#declare sun_vector = <64, 5, 90>;
|
|
#declare sun = sphere {
|
|
sun_vector * 4 - <0,12,0>, 20
|
|
pigment { color rgbt 1 }
|
|
interior { media {
|
|
emission 0.05
|
|
density { bozo density_map {
|
|
[0 rgb <1,0.5,0>]
|
|
//[0.6 rgb <0,0,0>]
|
|
[1 rgb <0,0,0>] }
|
|
}
|
|
} }
|
|
hollow
|
|
}
|
|
|
|
light_source {
|
|
sun_vector, rgb <1, 1, 1>
|
|
looks_like { sun }
|
|
}
|
|
object { sun }
|
|
#end
|
|
|
|
|
|
|
|
#if (sky_type = 1)
|
|
#declare sun_vector = <64, 5, 90>;
|
|
#declare sun = sphere {
|
|
sun_vector*3 - <0,5,0>, 20
|
|
pigment { color rgbt 1 }
|
|
interior {
|
|
media {
|
|
emission 0.1
|
|
density { bozo density_map {
|
|
[0 rgb <1,0.5,0>]
|
|
[1 rgb <0,0,0>] }
|
|
}
|
|
}
|
|
}
|
|
hollow
|
|
}
|
|
|
|
sky_sphere { pigment { color rgb <1,1,1> } }
|
|
|
|
light_source {
|
|
sun_vector, rgb <1, 1, 1>
|
|
}
|
|
object { sun }
|
|
|
|
#if(use_radiosity = 0)
|
|
light_source {
|
|
<0, 6, 0>, 0.1
|
|
shadowless
|
|
media_interaction off
|
|
}
|
|
#end
|
|
|
|
#declare sky_red = density {
|
|
bozo density_map {
|
|
[0 rgb 0.6]
|
|
[0.2 rgb <0.2, 0.5, 0.5>]
|
|
[0.5 rgb <0.0, 0.3, 0.8>]
|
|
[0.7 rgb <0.2, 0.3, 0.8>]
|
|
[0.8 rgb <0.05, 0.8, 0.9>]
|
|
[0.9 rgb <0.2, 0.3, 0.8>]
|
|
[1 rgb 0.6]
|
|
}
|
|
scale <4, 0.8, 4>
|
|
}
|
|
#declare sky_red2 = density {
|
|
bozo density_map {
|
|
[0 rgb 0.7]
|
|
[0.2 rgb <0.2, 0.6, 0.6>]
|
|
[0.5 rgb <0.0, 0.4, 0.9>]
|
|
[0.7 rgb <0.2, 0.4, 0.9>]
|
|
[0.8 rgb <0.05, 0.9, 1.0>]
|
|
[0.9 rgb <0.2, 0.4, 0.9>]
|
|
[1 rgb 0.7]
|
|
}
|
|
scale <4, 1.5, 4>
|
|
}
|
|
#declare sky_yellow = density {
|
|
bozo density_map {
|
|
[0 rgb 0.2]
|
|
[0.2 rgb <0.14, 0.11, 0.19>]
|
|
[0.5 rgb <0.00, 0.06, 0.35>]
|
|
[0.6 rgb <0.01, 0.16, 0.14>]
|
|
[0.7 rgb <0.04, 0.08, 0.05>]
|
|
[0.9 rgb <0.02, 0.12, 0.4>]
|
|
[1 rgb 0.2]
|
|
}
|
|
scale <6, 0.53, 6>
|
|
}
|
|
#declare sky_yellow2 = density {
|
|
bozo density_map {
|
|
[0 rgb 0.2]
|
|
[0.2 rgb <0.14, 0.21, 0.39>]
|
|
[0.5 rgb <0.05, 0.16, 0.45>]
|
|
[0.6 rgb <0.11, 0.26, 0.24>]
|
|
[0.7 rgb <0.14, 0.18, 0.15>]
|
|
[0.9 rgb <0.12, 0.22, 0.5>]
|
|
[1 rgb 0.2]
|
|
}
|
|
scale <9, 0.79, 9>
|
|
}
|
|
#declare sky_orange = density {
|
|
bozo density_map {
|
|
[0 rgb<0.05, 0.31, 0.90>]
|
|
[0.5 rgb<0.05, 0.24, 0.93>]
|
|
[1.0 rgb<0.05, 0.31, 0.90>]
|
|
}
|
|
scale <6, 0.4, 6>
|
|
}
|
|
#declare sky_orange_light = density {
|
|
bozo density_map {
|
|
[0 rgb<0.05, 0.18, 0.80>]
|
|
[0.5 rgb<0.09, 0.11, 0.73>]
|
|
[1.0 rgb<0.05, 0.18, 0.80>]
|
|
}
|
|
scale <21, 0.44, 22>
|
|
}
|
|
#declare sky_gradient = density {
|
|
function { gah(x,y,z) } density_map {
|
|
//gradient y density_map {
|
|
[0 sky_red ]
|
|
[0.1 sky_red2 ]
|
|
[0.2 sky_orange ]
|
|
[0.3 sky_yellow ]
|
|
[1.0 sky_orange_light ]
|
|
}
|
|
scale <1,1,1>
|
|
}
|
|
sphere {
|
|
<0,0,0> 60
|
|
translate 15*y
|
|
rotate 0
|
|
pigment { rgbt 1 }
|
|
hollow
|
|
interior {
|
|
media {
|
|
absorption 0.07
|
|
density { sky_gradient }
|
|
}
|
|
}
|
|
}
|
|
#end
|
|
|
|
#declare bark = pigment {
|
|
onion
|
|
//spiral1 1
|
|
turbulence 0.7
|
|
color_map {
|
|
[ 0 color rgb <0.50, 0.42, 0.25> ]
|
|
[ 0.2 color rgb <0.55, 0.50, 0.22> ]
|
|
[ 0.25 color rgb <0.52, 0.35, 0.25> ]
|
|
[ 0.4 color rgb <0.55, 0.50, 0.52> ]
|
|
[ 0.5 color rgb <0.52, 0.35, 0.25> ]
|
|
[ 1 color rgb <0.50, 0.42, 0.25> ]
|
|
}
|
|
rotate 100*x + 180*z
|
|
scale <1, 0.2, 1>
|
|
}
|
|
|
|
#declare vine_texture = texture {
|
|
finish {
|
|
//ambient rgbft <0.188235, 0.196078, 0.156863, 0.1, 0.1>
|
|
diffuse 0.9
|
|
brilliance 1
|
|
specular 0.5
|
|
roughness 0.0029512
|
|
}
|
|
pigment {
|
|
gradient <1, 1, 1>
|
|
turbulence <0.4, 0.4, 0.4>
|
|
pigment_map {
|
|
[ 0 rgb <0.49, 0.50, 0.22> ]
|
|
[ 0.6 bark ]
|
|
[ 1.0 rgb <0.49, 0.50, 0.22> ]
|
|
}
|
|
//rotate z*130
|
|
//scale 0.1
|
|
}
|
|
normal {
|
|
gradient <1, 1, 1> 1
|
|
turbulence <0.4, 0.4, 0.4>
|
|
slope_map {
|
|
[ 0 <0, 0> ]
|
|
[ 0.6 <0.5, 2> ]
|
|
[ 0.9 <0.2, 4> ]
|
|
}
|
|
rotate z*130
|
|
scale 0.1
|
|
}
|
|
}
|
|
|
|
#declare leaf = texture {
|
|
finish {
|
|
brilliance 3
|
|
specular 0.4
|
|
roughness 0.005
|
|
}
|
|
pigment {
|
|
spotted
|
|
turbulence 0.2
|
|
color_map {
|
|
[0 color rgb <0.10, 0.46, 0.09>]
|
|
[0.5 color rgb <0.06, 0.27, 0.05>]
|
|
[0.75 color rgb <0.63, 0.68, 0.08>]
|
|
[1 color rgb <0.1, 0.46, 0.09>]
|
|
}
|
|
}
|
|
}
|
|
|
|
#declare palmtree = merge {
|
|
object {
|
|
palm_13_stems
|
|
texture { vine_texture }
|
|
}
|
|
object {
|
|
palm_13_leaves
|
|
texture { leaf }
|
|
}
|
|
}
|
|
|
|
#declare sand2 = texture {
|
|
finish {
|
|
ambient rgb <0.19, 0.19, 0.19>
|
|
diffuse 0.8
|
|
}
|
|
//*PMRawBegin
|
|
normal { bumps 0.12 scale 0.0001 }
|
|
//*PMRawEnd
|
|
scale 0.0001
|
|
|
|
pigment {
|
|
granite
|
|
turbulence <0.6, 0.6, 0.6>
|
|
|
|
color_map {
|
|
[ 0 color rgb <0.65, 0.62, 0.45> ]
|
|
[ 0.1 color rgb <0.19, 0.19, 0.19> ]
|
|
[ 0.2 color rgb <0.82, 0.77, 0.70> ]
|
|
[ 0.35 color rgb <1, 0.83, 0.64> ]
|
|
[ 0.4 color rgb <0.50, 0.50, 0.42> ]
|
|
[ 0.7 color rgb <0.25, 0.25, 0.25> ]
|
|
[ 1 color rgb <0.47, 0.45, 0.42> ]
|
|
}
|
|
}
|
|
}
|
|
|
|
#declare sand3 = texture {
|
|
finish {
|
|
ambient rgb <0.19, 0.19, 0.19>
|
|
diffuse 0.8
|
|
}
|
|
//normal { bumps 0.12 scale 0.0001 }
|
|
scale 0.0001
|
|
|
|
pigment {
|
|
granite
|
|
turbulence <0.6, 0.6, 0.6>
|
|
|
|
color_map {
|
|
[ 0 color rgb <0.65, 0.62, 0.45> ]
|
|
[ 0.1 color rgb <0.39, 0.39, 0.39> ]
|
|
[ 0.2 color rgb <0.82, 0.77, 0.70> ]
|
|
[ 0.35 color rgb <1, 0.83, 0.64> ]
|
|
[ 0.4 color rgb <0.60, 0.55, 0.42> ]
|
|
[ 0.7 color rgb <0.65, 0.65, 0.65> ]
|
|
[ 1 color rgb <0.57, 0.45, 0.42> ]
|
|
}
|
|
}
|
|
}
|
|
|
|
#declare sand4_wet = texture {
|
|
finish {
|
|
ambient 0.02
|
|
diffuse 0.4
|
|
specular 0.8 roughness 0.0005
|
|
reflection <0.14, 0.10, 0.06>
|
|
}
|
|
normal { bumps 0.12 scale 0.0001 }
|
|
scale 0.0001
|
|
|
|
pigment {
|
|
granite
|
|
turbulence <0.6, 0.6, 0.6>
|
|
|
|
color_map {
|
|
[ 0 color rgb <0.60, 0.57, 0.40> ]
|
|
[ 0.1 color rgb <0.34, 0.34, 0.34> ]
|
|
[ 0.2 color rgb <0.77, 0.72, 0.66> ]
|
|
[ 0.35 color rgb <0.95, 0.79, 0.60> ]
|
|
[ 0.4 color rgb <0.55, 0.51, 0.39> ]
|
|
[ 0.7 color rgb <0.61, 0.60, 0.61> ]
|
|
[ 1 color rgb <0.52, 0.41, 0.39> ]
|
|
}
|
|
}
|
|
}
|
|
|
|
#declare sand4 = texture {
|
|
finish {
|
|
ambient 0.1
|
|
diffuse 0.8
|
|
specular 0.05 roughness 0.0005
|
|
//reflection <0.14, 0.10, 0.06>
|
|
}
|
|
//normal { bumps 0.12 scale 0.0001 }
|
|
scale 0.0001
|
|
|
|
pigment {
|
|
granite
|
|
turbulence <0.6, 0.6, 0.6>
|
|
|
|
color_map {
|
|
[ 0 color rgb <0.65, 0.62, 0.45> ]
|
|
[ 0.1 color rgb <0.39, 0.39, 0.39> ]
|
|
[ 0.2 color rgb <0.82, 0.77, 0.70> ]
|
|
[ 0.35 color rgb <1, 0.83, 0.64> ]
|
|
[ 0.4 color rgb <0.60, 0.55, 0.42> ]
|
|
[ 0.7 color rgb <0.65, 0.65, 0.65> ]
|
|
[ 1 color rgb <0.57, 0.45, 0.42> ]
|
|
}
|
|
}
|
|
}
|
|
|
|
#declare sand = texture {
|
|
gradient x + z
|
|
texture_map {
|
|
[ 0.0 sand4 ]
|
|
[ 0.5 sand4 ]
|
|
[ 0.65 sand4_wet ]
|
|
[ 1.0 sand4_wet ]
|
|
}
|
|
// Tune these so it starts with the dry sand and gets to its max near
|
|
// the water
|
|
scale <20,1,20>
|
|
translate <-3,0,-3>
|
|
|
|
}
|
|
|
|
#declare sky1 = texture {
|
|
pigment {
|
|
bozo
|
|
turbulence <1, 0, 1>
|
|
scale <2, 1, 0.5>
|
|
|
|
pigment_map {
|
|
[ 0 color rgbt <0.19216, 0.14902, 0.21569, 0.8> ]
|
|
[ 0.3 color rgbt <0.533333, 0.301961, 0.690196, 0.2> ]
|
|
[ 0.6 color rgbt <0.21569, 0.16863, 0.23922, 0.8> ]
|
|
}
|
|
}
|
|
finish {
|
|
ambient rgb <0.24314, 0.24314, 0.24314>
|
|
diffuse 0
|
|
}
|
|
}
|
|
|
|
#declare water = material {
|
|
texture {
|
|
pigment {
|
|
color rgbf <0.7, 0.4, 0.9, 0.6>
|
|
}
|
|
finish {
|
|
ambient 0.0
|
|
diffuse 0.0
|
|
|
|
reflection {
|
|
0.0, 1.0
|
|
fresnel on
|
|
}
|
|
|
|
specular 0.4
|
|
roughness 0.003
|
|
}
|
|
normal {
|
|
function {
|
|
f_ridged_mf(x, y, z, 0.1, 3.0, 7, 0.7, 0.7, 2)
|
|
} 0.8
|
|
scale 0.5
|
|
}
|
|
}
|
|
interior {
|
|
ior 1.3
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#declare xmin = -8;
|
|
#declare zmin = -8;
|
|
#declare xscale = 64;
|
|
#declare zscale = 64;
|
|
#declare xcount = 8;
|
|
#declare zcount = 8;
|
|
#declare r = <6,0,-5.5>;
|
|
#declare height = 6;
|
|
// Y start
|
|
#declare y1 = -2;
|
|
|
|
#declare sandfloor = height_field {
|
|
png "/home/hodapp/geomorph/floor1.png"
|
|
smooth
|
|
}
|
|
|
|
#declare cx = 0;
|
|
#while (cx < xcount)
|
|
#declare cz = 0;
|
|
#while (cz < zcount)
|
|
object {
|
|
sandfloor
|
|
scale <xscale, height, zscale>
|
|
translate <xmin + cx * xscale, y1, zmin + cz * zscale>
|
|
rotate r
|
|
texture { sand }
|
|
}
|
|
#declare cz = cz + 1;
|
|
#end
|
|
#declare cx = cx + 1;
|
|
#end
|
|
|
|
box {
|
|
<xmin, -0.75, zmin>,
|
|
<xmin + xscale * xcount, -3, zmin + zscale * zcount>
|
|
material { water }
|
|
}
|
|
|
|
object {
|
|
palmtree
|
|
rotate 90*y
|
|
scale 0.25
|
|
translate <0.5,0.5,-0.5>
|
|
}
|
|
|
|
light_source {
|
|
<-0.5, 0.25, -1.5>, 0.1
|
|
shadowless
|
|
media_interaction off
|
|
}
|
|
|
|
camera {
|
|
perspective
|
|
location <-2.5, 3, -2.5>
|
|
sky <0, 1, 0>
|
|
direction <0, 0, 1>
|
|
right <1.33333, 0, 0>
|
|
up <0, 1, 0>
|
|
look_at <0, 2.5, 0>
|
|
} |