|
|
Just a bit of fun with an isosurface I did a while ago.
// Persistence of Vision Ray Tracer Scene Description File
// File: IsoTest
// Vers: 3.5
// Desc: Crackle world
// Date: 11 Apr 2004
// Auth: PM 2Ring
//
#version 3.5;
global_settings {
assumed_gamma 1.0
//max_trace_level 20
}
//----Textures, etc--------------------------------------------
#declare SkyBlue = rgb <.035, .27, .67>*.6; //For water & sky
#declare CM_Clouds1 =
color_map {
[0.0 SkyBlue ]
[0.82 rgb 0.75]
[0.87 rgb 0.85]
[0.90 rgb 1]
}
#declare T_Clouds =
texture{
pigment {
crackle
color_map {CM_Clouds1}
warp{
//turbulence 0.75
turbulence 0.2
octaves 6
omega 0.7
lambda 2.25
}
}
finish{ambient 0.9 diffuse 0.2}
}
//Planet colour map
#declare WLevel = 0.15;
//Interpolate Levels
#macro Level(h)(WLevel + h*(1-WLevel))#end
#declare CMPlanet =
color_map{
[0 blue .15]
//[WLevel rgb<0,0,0.4> filter 0.2 transmit 0.5]
[WLevel/2 rgb<0,0.55,0.55>]
[WLevel rgb<0,0.1,0.55>]
[WLevel rgb<.75,.65,.2>]
[Level(0.025) rgb<.05,.5,.15>]
[Level(0.3) rgb<.9,.8,.25>]
[Level(0.5) rgb<.65,.45,.1>]
[Level(0.6) rgb<.35,.25,0.2>]
[Level(0.7) rgb .5]
[Level(0.8) rgb<.7, .7, .725>]
[Level(0.9) rgb .9]
[1 rgb 1]
}
#declare PCrackle =
pigment{
crackle
//form vnormalize(<-.5,.25,.25>)
//metric 2
//offset 0.25
//solid
}
#declare PlanetCrackle =
pigment{
//PCrackle
gradient y scale .95
color_map{
CMPlanet
}
}
//--------------------------The actual scene-------------------
#declare f_ground = function{pigment{PCrackle}}
#declare SGround =
isosurface{
function{
y - 0.075*f_ground(x*7, y, z*5).x
}
max_gradient 1.213
contained_by{ box{<-1, 0, -.5>, <1, .2, 1.4>} }
accuracy 0.003 //default 0.001
scale 12
}
object {
SGround
texture{
pigment{PlanetCrackle}
finish{
brilliance 1.25
phong 1 phong_size 100
diffuse 0.7 ambient 0.1
}
}
}
#declare SkyRad = 1E3;
sphere{0, SkyRad
inverse
no_shadow
texture{
T_Clouds
scale <1, .2, 1> * SkyRad / 5
}
}
//--------------------------Lights & camera-------------------
#declare LightLoc = <10, 40, -30> * 30;
#declare Sun = sphere{
LightLoc, 3E2
pigment{rgb<1,1,.8>}
finish{ambient 1.5 diffuse 0}
}
light_source {
LightLoc rgb 1
parallel point_at 0
looks_like{object{Sun}}
}
camera {
location <0, 5, -8.0> * 2.5 * 1.1
look_at 3.75*y
right x*image_width/image_height
direction z
angle 30
}
//-------------------------End of file-------------------------
Post a reply to this message
Attachments:
Download 'isoteste2.jpg' (104 KB)
Preview of image 'isoteste2.jpg'
|
|
|
|
"Janet" <par### [at] attnet> wrote:
> "PM 2Ring" <nomail@nomail> wrote:
> > Here's a shot of a partially terraformed planetoid.
>
> This one's nice and bizarre - twin craters - a giant number 8 fell from the
> sky. What do you use to make the height field(?)
To generate the heightfield, I used an earlier version of a crater field
generator that I posted in early December last year. Here's an example
scene of ice craters, complete with the heightfield used to generate the
image. The scene file lets you select whether to render the heightfield
data as an actual heightfield, or as an isosurface.
http://news.povray.org/povray.binaries.images/thread/%3Cweb.438b0e52708b6d64f7ce4c3a0%40news.povray.org%3E/?ttop=229667
&toff=450&mtop=221081&moff=10
The crater field generator runs on Linux. I don't have a C compiler for
Windows. Here's a link to the program (with C source and docs):
http://news.povray.org/povray.binaries.utilities/message/%3Cweb.438fbab0708b6d6491e6526b0%40news.povray.org%3E/#%3Cweb.
438fbab0708b6d6491e6526b0%40news.povray.org%3E
The old version didn't smooth the outside of craters properly, and you can
see the resulting anomolies around the 'figure-8' craters.
I suppose I could write the crater generator in POV SDL, but it would be
very slow: you need millions of craters to make a realistic scene.
Post a reply to this message
|
|