POV-Ray : Newsgroups : povray.newusers : Emissive media "shadow" problem - please help : Re: Emissive media "shadow" problem - please help Server Time
4 May 2024 17:47:40 EDT (-0400)
  Re: Emissive media "shadow" problem - please help  
From: Alain
Date: 29 Nov 2010 21:35:22
Message: <4cf462ea$1@news.povray.org>

> Hi,
>
> In developing my first POV-Ray scene I encountered a subtle artifact and I am
> not sure how to get rid of it. I have a 100% transmissive cylinder containing
> identically-transformed emissive media with a cylindrical distribution. When in
> front of a dark reflective texture, the edges of the cylinder appear dark (a
> little bit like a shadow, but obviously not a shadow). When in front of a
> brighter or flatter texture, the edges of the cylinder do not appear darker than
> the surroundings--the desired effect. This artifact seems a bit stronger when
> the cylinder is partially embedded in the dark-textured object. This image shows
> what I mean:
>
> http://www.freeimagehosting.net/image.php?923dd7c03e.png
>
> Could anyone suggest what causes this, and how I might get rid of it?
>

Change your reflective box with:
box { <-1,-1,-1>, <1,1,1>
    texture {pigment{Blue}finish{reflection 1 ambient 0 diffuse 0}}
}

Presto, you can no longer see where the front cylinder get in front of 
the box.

The reason: your ground plane is pure blue -> NO red and no green.
The gold box contribure a good amount of red and green.
The red media add some red.
Result: on front of the blue parts the only red comes from the media, 
while in front of the box, you have more red giving a brighter, less 
saturated, shade.

I'd change your container as follow:
#declare med1cont = cylinder {
          <0,1,0>, <0,-1,0>, 1
          pigment {rgbt 1}
interior{media {
    emission 7
    intervals 1
    samples 10
    method 3
    density {
         cylindrical color_map {
          [0 rgb <0,0,0>]
          [1 rgb <1,0,0>]
       }
    }
}
}

Then:

union{
    object { med1cont
       scale <.1,1.1,.1>
       translate <1,0,-1>
    }
    object { med1cont
       scale <.1,1.1,.1>
       translate <0,0,-2>
    }
}

Put the media in the container defined around the Y axis.
Then, as you translate the object, it's media will get translated with it.

You don't need media_interaction off and shadowless in your light 
source, as only the box can cast a shadow.

Also, the emissive media container already don't cast any shadow, so 
no_shadow is not usefull.


Alain


Post a reply to this message

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