POV-Ray : Newsgroups : povray.general : TerraPOV : Re: TerraPOV Server Time
31 Jul 2024 04:27:25 EDT (-0400)
  Re: TerraPOV  
From: Bruno Cabasson
Date: 13 Nov 2007 11:55:01
Message: <web.4739d6ada0e33012e8ba46670@news.povray.org>
Jaime Vives Piqueres <jai### [at] ignoranciaorg> wrote:
> Bruno Cabasson wrote:
> > As I got inspired by Terragen, I have named this projet TerraPOV.
>
>    I hope you have more success than I with my "Project Tierra".... I have
> it stalled, waiting for large amounts of free time to expend... :)
>
>    BTW, if the rest of the elements come with the same quality as the skies,
> it can be a great system!
>
> --
> Jaime

Thank you Jaime!!

Coming from you it is a great encouragement for me!

I am not finished yet with skies. For example, I must integrate single-cloud
macros (with or without DF3 generation step), with optional flat bottoms. I
already have some results. I also would like to define a typology for clouds
and the corresponding settings in order to define "macro-settings". I also have
to deal with the Sun appearance and halo (not very successful until now).

For cumuli, the problem is different than clouscapes and quite tricky. I think
I'll have to do with single clouds. But I am afraid that the turbulence feature
is not completely appropritate for the 'roundness' of cumuli. I tried with the
current system, but it is not suitable for cumuli and I could never get
acceptable results (mainly because the density is based on standard patterns).
Perhaps a particle system will be necessary, but I absolutely do not master
that. Advice/ideas welcome.

For terrain, the embryo is close to be operational for the basic features.

'*' mean implemented
'+' means partielly implemented
'-' means not yet implemented.

The engine can (will) provide several views:
    *) Elevation view (see attached file in next p.b.i post), inspired by
Terragen: Grayscale with iso-levels and decorations, including text.
    *) Scene view
    -) Sky dome generation view
    -) Local view of the scene from above with all objects.

It can define the terrain either as
    *) pigment-based function (user-defined), allowing overhangs (isosurface)
    *) Height field out of pigment function
    *) Height field out of image_map
    *) Image_map generation from pigment function

It can (will) define the sky as
    *) Media, like the skies I already posted. Allows cloudscape to cast shadows
    -) Sky-dome image map (probably a sphere)
    -) DF3 generation for single clouds.

It provides (or will) for
    +) Placement macros and utilities
    +) Predefined textures (thanks for contribs)
    *) Water
    -) Embeded SDL-code (TBC)
    +) Adding user-defined objects, one main interest of TerraPOV.

One big piece will also be to incorporate vegetation. It can use POV-Tree, and
stuff from PlantStudio or so. I would like to provide for pattern-based
placement macros (I already have something for that).

I want all be declarative, so that a MMI can be easily plugged. For example, for
the last version of my sky system, and for the sky that is currently rendering:

// ======================== DECLARATIONS ===============================
#declare QUICK = no;

// Sun
#declare SUN_ELEVATIONS = array [5] {10, 20, 5, 0.5, -0.5};
#declare SUN_HEADING = 20;
#declare SUN_POWER = 4;

// Atmosphere
#declare Ta = 110*km;
#declare Ha = -1*m;
#declare BASE_SKY_COLOR = rgb <0.45, 0.65, 1>;
#declare k = 1.2;
#declare DENSITY_BASE_POWER = 4;
#declare DENSITY_POWER_FACTOR = 1;
#declare ATMO_INTERVALS = 3;
#declare ATMO_SAMPLES = 5;
#declare ATMO_QUICK_INTERVALS = 1;
#declare ATMO_QUICK_SAMPLES = 5;

// Layers
#declare USE_LAYER_1 = no;
#declare USE_LAYER_2 = yes;
#declare USE_LAYER_3 = yes;

// Layer 1: high low-density clouds
#declare L1_H = 8000*m;
#declare L1_T = 300*m;
#declare L1_SCATTERING = 2.5;
#declare L1_SCATTERING_COLOR = White;
#declare L1_ABSORPTION = 0.5;
#declare L1_ABSORPTION_COLOR = White;
#declare L1_INTERVALS = 3;
#declare L1_SAMPLES = 5;
#declare L1_QUICK_INTERVALS = 1;
#declare L1_QUICK_SAMPLES = 5;
#declare L1_DENSITY = density
{
    wrinkles
    scale <100,1,100>
    scale L1_T
    color_map {[0.63 rgb 0.0][1 rgb 0.2]}
}

// Layer 2: normal height quite opaque cloud cover
#declare L2_H = 1000*m;
#declare L2_T = 200*m;
#declare L2_SCATTERING = 1;
#declare L2_SCATTERING_COLOR = White;
#declare L2_ABSORPTION = 0.25;
#declare L2_ABSORPTION_COLOR = 0.5+0.3*(1-Pink);
#declare L2_INTERVALS = 3;
#declare L2_SAMPLES = 3;
#declare L2_QUICK_INTERVALS = 1;
#declare L2_QUICK_SAMPLES = 3;
#declare L2_DENSITY = density
{
    wrinkles
    scale <15, 1, 15>
    warp {turbulence 0.3 octaves 10 lambda 2.05 omega 0.63}
    scale L2_T
    translate <300, 0, 5000>*m*z
    //color_map {[0.35 rgb 0.][0.36 rgb 0.6][0.8 rgb 0.9]}
    color_map {[0 rgb 1][0.6 rgb 0.7][0.75 rgb 0]}
}

// Layer 3: Ground-to-Layer2 haze for scattering beams
#declare L3_H = -1*m;
#declare L3_T = L2_H-L3_H - 1*m;
#declare L3_SCATTERING = 1;
#declare L3_SCATTERING_COLOR = White;
#declare L3_ABSORPTION = 0;
#declare L3_ABSORPTION_COLOR = White;
#declare L3_INTERVALS = 5;
#declare L3_SAMPLES = 10;
#declare L3_QUICK_INTERVALS = 1;
#declare L3_QUICK_SAMPLES = 5;
#declare L3_DENSITY = density
{
    function {0.1}
}

// Camera
#declare VIEW_CAM = 0;
#declare FISHEYE_CAM = 1;
#declare CAM = VIEW_CAM;

// Radiosity
#declare USE_RAD = yes;
#declare BUILD_RAD_DATA = no;
#declare RAD_BRIGHT = 1 ;
#declare RAD_FILE_NAME = "sky_22.rad";
// ====================== END OF DECLARATIONS ==========================


    Bruno


PS: By essence, skies require intensively the media feature. What about media
with 3.7?


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.