POV-Ray : Newsgroups : povray.binaries.images : Distant Haze - How To? Server Time
10 Oct 2026 06:40:07 EDT (-0400)
  Distant Haze - How To? (Message 1 to 21 of 21)  
From: Sven Littkowski
Subject: Distant Haze - How To?
Date: 31 Mar 2018 06:49:14
Message: <5abf67aa@news.povray.org>
Hi, please have a look to the attached photo. It shows, here from orbit,
the distant haze at the horizon that makes the horizon line less visible.

I am working on my 1850s Mississippi Paddle-Wheel Steamboat, and need
such a horizon-affecting distant haze, too. But i tried ground fog and
regular fog already, and did not achieve the desired effect.

Does anyone of us POV-Ray community citizens have some tricks that can
do that? Maybe a huge torus with some sort of media in it? That would be
my guess (I however have almost no clue how to create media). Doing it
at the moment with Photoshop only...


---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com


Post a reply to this message


Attachments:
Download 'button_titan_110km.jpg' (11 KB) Download 'sl - mississippi paddle-wheel steamer - prow - side.jpg' (530 KB)

Preview of image 'button_titan_110km.jpg'
button_titan_110km.jpg

Preview of image 'sl - mississippi paddle-wheel steamer - prow - side.jpg'
sl - mississippi paddle-wheel steamer - prow - side.jpg


 

From: Alain
Subject: Re: Distant Haze - How To?
Date: 31 Mar 2018 12:24:17
Message: <5abfb631$1@news.povray.org>
Le 18-03-31 à 06:49, Sven Littkowski a écrit :
> Hi, please have a look to the attached photo. It shows, here from orbit,
> the distant haze at the horizon that makes the horizon line less visible.
> 
> I am working on my 1850s Mississippi Paddle-Wheel Steamboat, and need
> such a horizon-affecting distant haze, too. But i tried ground fog and
> regular fog already, and did not achieve the desired effect.
> 
> Does anyone of us POV-Ray community citizens have some tricks that can
> do that? Maybe a huge torus with some sort of media in it? That would be
> my guess (I however have almost no clue how to create media). Doing it
> at the moment with Photoshop only...
> 
> 
> ---
> Diese E-Mail wurde von AVG auf Viren geprüft.
> http://www.avg.com
> 

Using fog, you probably need to increase the distance parameter.

Otherwise, I'd use some atmospheric scattering media using the mie_haze 
or mie_murky model. You need to use a low density. A sample count of 3 
to 5 should be enough.

Don't forget to provide some actual back plane behind that fog or media. 
It can be a simple plane with pigment{rgbt 1}.


Post a reply to this message

From: Sven Littkowski
Subject: Re: Distant Haze - How To?
Date: 31 Mar 2018 13:53:23
Message: <5abfcb13$1@news.povray.org>
Thanks. But would atmospheric scattering media not be hazy to all
directions? I still want to see the deep-blue sky (sphere), just at the
horizon i want to have that blurred stripe of hazy distance haze.

---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com


Post a reply to this message

From: Sven Littkowski
Subject: Re: Distant Haze - How To?
Date: 31 Mar 2018 13:54:01
Message: <5abfcb39$1@news.povray.org>
Thanks. But would atmospheric scattering media not be hazy to all
directions? I still want to see the deep-blue sky (sphere), just at the
horizon i want to have that blurred stripe of hazy distance haze.

I still give a try, always curious. :-D

---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com


Post a reply to this message

From: clipka
Subject: Re: Distant Haze - How To?
Date: 31 Mar 2018 14:30:50
Message: <5abfd3da@news.povray.org>
Am 31.03.2018 um 19:53 schrieb Sven Littkowski:
> Thanks. But would atmospheric scattering media not be hazy to all
> directions? I still want to see the deep-blue sky (sphere), just at the
> horizon i want to have that blurred stripe of hazy distance haze.

For realistic results, I alwasy recommend to consider reality:

In reality, the reason why the haze is only visible toward the horizon
is because the atmosphere gets less dense as you go up.

So that's exactly what I'd do with the media.

(I'd use two different media, one just for the blue with density
corresponding to atmospheric density to model some clear air, and
another one more strongly confined to lower altitudes for a white-ish
hazy air. For the blue component, Rayleigh scattering should be used
because that's what happens in the atmosphere, and for the white-ish
component one of the haze scattering modes is probbably best suited,
modelling larger dirt particles.)


Post a reply to this message

From: Thomas de Groot
Subject: Re: Distant Haze - How To?
Date: 1 Apr 2018 03:03:46
Message: <5ac08452$1@news.povray.org>
You could try this code, changing the colours of the media of course to 
white or very light grey.

//start code
#local SkyScale = 100;

#local Density_out =
density {
   bozo  //agate
   density_map {
     [0.2 rgb 1.0]
     [0.5 rgb 0.2]
     [0.8 rgb 1.0]
   }
   scale 0.05 //0.1
   warp {turbulence <0.5 0.4, 0.5>*2}
}

#local MistSphere =
difference {
   sphere { <0, 0, 0>, 1}
   plane {-y, 0 translate 10/SkyScale*y}
   texture {pigment {rgb 0 transmit 1} }
   hollow
   interior {
     media {
       intervals 1
       absorption <0.10, 0.10, 0.12>
       scattering {1, rgb <1, 1, 0.8>*1.4/SkyScale}
       samples 50
       confidence 0.9999
       variance 1/1000
       ratio 0.9
       density {
         spherical
         density_map {
           [0.880 Density_out]
           [0.960 rgb 0]
         }
       }
     }
   }
   scale SkyScale
   translate CamLoc
}

MistSphere
//end code

-- 
Thomas


Post a reply to this message

From: Sven Littkowski
Subject: Re: Distant Haze - How To?
Date: 25 Apr 2018 14:25:28
Message: <5ae0c818$1@news.povray.org>
Working with this feature now, trying to make some changes. I need the
haze at the horizon, but not too much higher than it. Changing the
spherical density map to a gradient density map, maybe that can do the
trick.

---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com


Post a reply to this message

From: Sven Littkowski
Subject: Re: Distant Haze - How To?
Date: 26 Apr 2018 12:15:53
Message: <5ae1fb39@news.povray.org>
Okay, for the amusement, I am posting now some of my results of creating
a "horizon haze". Not finish yet, but the first results are from ...
some other dimension (the image with the black fragments).

The second image shows ground fog, but the disadvantage here is that
this fog makes the water whitish with its own light color. Is there a
way to cut away any part of the ground fog that is below -0.75?


---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com


Post a reply to this message


Attachments:
Download 'horizon haze - 01.jpg' (96 KB) Download 'horizon haze - 02.jpg' (47 KB)

Preview of image 'horizon haze - 01.jpg'
horizon haze - 01.jpg

Preview of image 'horizon haze - 02.jpg'
horizon haze - 02.jpg


 

From: clipka
Subject: Re: Distant Haze - How To?
Date: 26 Apr 2018 12:29:43
Message: <5ae1fe77$1@news.povray.org>
Am 26.04.2018 um 18:15 schrieb Sven Littkowski:
> Okay, for the amusement, I am posting now some of my results of creating
> a "horizon haze". Not finish yet, but the first results are from ...
> some other dimension (the image with the black fragments).
> 
> The second image shows ground fog, but the disadvantage here is that
> this fog makes the water whitish with its own light color. Is there a
> way to cut away any part of the ground fog that is below -0.75?

IIRC you can set up "negative" ground fog to counteract the positive one.


Post a reply to this message

From: Thomas de Groot
Subject: Re: Distant Haze - How To?
Date: 27 Apr 2018 03:42:46
Message: <5ae2d476$1@news.povray.org>
The following has worked fairly well for me in the past. Tweak, by all 
means!

#declare NearFogColor = <0.799, 0.799, 0.80>*1.2; //Blueish color
#declare FarFogColor  = <0.90, 0.90, 0.90>; //Light gray horizon color

//Near fog
fog {distance 4000 fog_type 2 fog_offset 25 fog_alt 20 color srgb 
NearFogColor}

//Distant fog
fog {distance 8000 fog_type 2 fog_offset 25 fog_alt 20 color srgb 
FarFogColor-NearFogColor}



-- 
Thomas


Post a reply to this message

From: Sven Littkowski
Subject: Re: Distant Haze - How To?
Date: 27 Apr 2018 13:04:42
Message: <5ae3582a$1@news.povray.org>
Can you show me a scene that uses this concept? I am curious. Big
thanks! :-)

---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com


Post a reply to this message

From: Sven Littkowski
Subject: Re: Distant Haze - How To?
Date: 27 Apr 2018 13:10:33
Message: <5ae35989$1@news.povray.org>
Interesting concept. Never thought about such. Will look into.

But meanwhile, I came to another idea and want to find out, if this can
be done with POV-Ray:

A torus-shaped media-based haze. A hollow torus, filled with a haze
media that is thickest at the center of the curved cylinder shape, and
invisible at the edges. Means, the media density_map needs probably to
have the shape of a torus, too, as Spherical and other shapes won't do
the trick in this particular case. That torus haze would be scaled to be
at the edge of the scene. This way, no influence of any other item would
occur.

Is such a torus-shaped media possible?

---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com


Post a reply to this message

From: Sven Littkowski
Subject: Re: Distant Haze - How To?
Date: 27 Apr 2018 13:40:54
Message: <5ae360a6@news.povray.org>
Clipka, do you think, adding "torus" to the existing patters (spherical,
planar, cylindrical, and boxed) of density_maps would be useful and
possible?

I could imagine its usefulness for my horizon haze, but also for mighty
(nuclear or scifi) explosions (here also using Turbulence) as seen in
movies and documentaries.

---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com


Post a reply to this message

From: Bald Eagle
Subject: Re: Distant Haze - How To?
Date: 27 Apr 2018 15:00:00
Message: <web.5ae37205df423779c437ac910@news.povray.org>
Sven Littkowski <I### [at] SvenLittkowskiname> wrote:

> Is such a torus-shaped media possible?

Sure.
A torus is defined by the implicit equation
(sqrt(pow(x,2)-pow(y,2))-pow(R,2)+pow(z,2) = pow(r,2)

So if you do
sqrt((sqrt(pow(x,2)-pow(y,2))-pow(R,2)+pow(z,2)) you get r

divide by r and you get a range of 1 at the center and 0 at the surface (what
you'd see if you made an isosurface with threshold 0

So your media function would be:
#declare Torus = function {sqrt((sqrt(pow(x,2)-pow(y,2))-pow(R,2)+pow(z,2))/r}


Post a reply to this message

From: clipka
Subject: Re: Distant Haze - How To?
Date: 27 Apr 2018 18:44:50
Message: <5ae3a7e2$1@news.povray.org>
Am 27.04.2018 um 19:40 schrieb Sven Littkowski:
> Clipka, do you think, adding "torus" to the existing patters (spherical,
> planar, cylindrical, and boxed) of density_maps would be useful and
> possible?

There is no such thing as "patterns of density_maps"; any pattern that
can be used with a pigment_map can also be used with a density_map.

Adding a torus pattern should be possible; however, it would have to be
specified what syntax to use to parameterize it (at least the ratio
between minor and major radius should be configurable; the major radius
could be specified by scaling the pattern), and whether the pattern
should continue /ad infinitum/ like `onion`/`wood`, or rather drop to
zero like `spherical`/`cylindrical`.

Also, it is questionable whether the use case is important enough to
warrant implementing a dedicated pattern, or whether the inbuilt
`f_torus()` function (accessible via `functions.inc`) combined with a
function pattern can be considered sufficient.


Post a reply to this message

From: Sven Littkowski
Subject: Re: Distant Haze - How To?
Date: 28 Apr 2018 02:18:36
Message: <5ae4123c$1@news.povray.org>
Thanks. I want to use this formula.

I am good with arts and creativity, but my weak point is, indeed,
complex types of mathematics, like this formula here. I am going to give
a try right away, and will find out where to put numbers (torus-related)
into this formula. And of course, I will post the resulting images here
in this thread. :-)

---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com


Post a reply to this message

From: Thomas de Groot
Subject: Re: Distant Haze - How To?
Date: 28 Apr 2018 03:04:10
Message: <5ae41cea$1@news.povray.org>
On 27-4-2018 19:04, Sven Littkowski wrote:
> Can you show me a scene that uses this concept? I am curious. Big
> thanks! :-)
> 

Why don't you try it yourself? Take the basic POV-Ray scene and add the 
code. Then play with the settings. Nothing better than getting your own 
hands dirty.

-- 
Thomas


Post a reply to this message

From: Sven Littkowski
Subject: Re: Distant Haze - How To?
Date: 28 Apr 2018 03:53:57
Message: <5ae42895$1@news.povray.org>
Thanks for the answer.

I wonder, if the other users would want it.

---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com


Post a reply to this message

From: Bald Eagle
Subject: Re: Distant Haze - How To?
Date: 28 Apr 2018 07:55:00
Message: <web.5ae46037df4237795cafe28e0@news.povray.org>
"Bald Eagle" <cre### [at] netscapenet> wrote:

> So your media function would be:
> #declare Torus = function {sqrt((sqrt(pow(x,2)-pow(y,2))-pow(R,2)+pow(z,2))/r}

Transcription error in there - trying to juggle too many things at once and
convert to POV-Ray syntax from Wikipedia image.  :(

This is tested code, and you can see that it gets you identical results compared
to the internal f_torus function.   I haven't yet explored it further, but
perhaps the /r part I added just affects the density gradient towards the
center.  Maybe using it as a pigment function and cross section would answer
that.




#version 3.7;
global_settings {assumed_gamma 1.0}

#include "colors.inc"
#include "functions.inc"

sky_sphere {pigment {rgb <1, 1, 1>*1}}

camera {
   location <0, 0, -5>    // position & direction of view
  look_at  <0, 0, 0>
  right x*image_width/image_height           // horizontal size of view
  up y // vertical size of view
 }

light_source {<25, 25, -150> color White}

#declare R = 1;
#declare r = 0.5;

//#declare Torus = function (x, y, z) {sqrt(pow( sqrt(pow(x,2)+pow(y,2)) - R,2)
+ pow(z,2)) - r}
#declare Torus = function (x, y, z) {(sqrt(pow( sqrt(pow(x,2)+pow(y,2)) - R,2) +
pow(z,2)) - r)/r}

isosurface {
  function{
            //f_torus (x, y, z, 1, 0.1)
            Torus (x, y, z)
          }
  threshold 0
  contained_by {box {<-2,-2,-2>*2, <2,2,2>*2}}
  max_gradient 2
  accuracy 0.0001
  //evaluate 1,20,0.99
  texture { pigment{ color rgb <1, 0, 0>}
            //normal {bumps 0.5 scale 0.05}
            finish { phong 1}
   }
  //scale 0.80
  //rotate <0,-40,0>
 // rotate <-30,0,0>
  //translate < 0, 1.2, 0>
} // end of isosurface


Post a reply to this message

From: Bald Eagle
Subject: Re: Distant Haze - How To?
Date: 29 Apr 2018 21:55:00
Message: <web.5ae6776fdf4237795cafe28e0@news.povray.org>
So, did a quick and dirty experiment, where I just looped the threshhold values
for the isosurface from 0 to 1, and varied the color through the HSV angle, and
it appears that 0 is the inner torus (for the POV-Ray f_torus function)

Haven't had the time to experiment any more, but curious about my own function.

The idea would be to just lay down nested tori, with a noise function applied,
to generate the media function.

Probably also lots faster if i break it up like I did the initial spiral
experiments for Kenneth, plotting spheres for data points in the x/y/z array.

'till tomorrow...

---------------------------------------------------------------
#version 3.7;
global_settings {assumed_gamma 1.0}

#include "colors.inc"
#include "functions.inc"
#include "shapes.inc"
#include "shapes2.inc"
#include "Bounding_Box.mcr"

sky_sphere {pigment {rgb <1, 1, 1>*1}}

camera {
   location <0, 0, -5>    // position & direction of view
  look_at  <0, 0, 0>
  right x*image_width/image_height           // horizontal size of view
  up y // vertical size of view
 }

light_source {<25, 25, -150> color White}

#declare R = 1;
#declare r = 0.5;

//#declare Torus = function (x, y, z) {sqrt(pow( sqrt(pow(x,2)+pow(y,2)) - R,2)
+ pow(z,2)) - r}
#declare Torus = function (x, y, z) {(sqrt(pow( sqrt(pow(x,2)+pow(y,2)) - R,2) +
pow(z,2)) - r)/r}

#declare Tori = //intersection {

 //box {<-R*2, -r*2, 0>, <R*2, r*2, R*2> pigment {rgbt 1}}
union{
 #for (V, 0, 1, 0.2)
  #declare Current = CHSV2RGB(<V*180, 1, 1, 0, 0.8>);
  #debug concat ( " V = ", str (V, 3, 1),  "\n")
  isosurface {
    function{
     f_torus (x, y, z, R, r)
     //Torus (x, y, z)
    }
    threshold V
    contained_by {box {<-R*2, -r*2, -R*2>, <R*2, r*2, R*2>}}
    max_gradient 2
    accuracy 0.0001
      evaluate 1,20,0.99
      open
    texture {pigment {color rgbft Current}
     //normal {bumps 0.5 scale 0.05}
     //finish {phong 1}
    }
    //scale 0.80
    //rotate <0,-40,0>
    //rotate <90,0,0>
    //translate < 0, 1.2, 0>
  } // end of isosurface
 #end // end for V
}


object {Tori}

//Loc (Tori, 0.01, yes) // my bounding box macro


Post a reply to this message


Attachments:
Download 'torus_function.png' (181 KB)

Preview of image 'torus_function.png'
torus_function.png


 

From: Sven Littkowski
Subject: Re: Distant Haze - How To?
Date: 15 Jun 2018 21:33:55
Message: <5b246903@news.povray.org>
It actually looks beautiful! :-)

---
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com


Post a reply to this message

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