POV-Ray : Newsgroups : povray.newusers : Diffusing interior of an object : Re: Diffusing interior of an object Server Time
29 Jul 2024 08:11:57 EDT (-0400)
  Re: Diffusing interior of an object  
From: Alain
Date: 29 Apr 2006 12:10:17
Message: <44538fe9$1@news.povray.org>
pare03 nous apporta ses lumieres en ce 27/04/2006 17:21:
> Hi,
> 
> I am trying to create an object that will filter and diffuse light at the
> same time, so a structured light coming from one side of that object will
> be diffused by the object but will gain the texture/pigment of that object.
> Is it possible ?
> 
> Basically, I am trying to create a semi-transparent and diffusing plastic !
> I tried to add an interior_texture but that does not diffuse the light.
> And the interior modifyer does not seem to be working either (does not have
> a diffusion parameter).
> 
> Here is a part of the code:
> 
> #declare HollowDome = object
> {
>   sphere{<0, 0, 0>, DomeRadius
>   hollow
This enable media to exist inside the object.
>   texture{
>   pigment {color rgb <0.78, 0.85, 0.99> filter 0.5} finish {diffuse 0.5} }
>   interior_texture {
>   pigment {color rgb <0.78, 0.85, 0.99> filter 0.5} finish {diffuse 0.9} }}
> }
> 
> Thank you,
> David
> 
The diffuse atribute control how much your pigment is affected by incoming light, not
how much it 
diffuse light comming through it. diffuse 0.5 means that you use 0.5 of the incident
light.

Can be done, to a point and will require a prety long render time and tons of RAM.
You can use some "micro-normals", that's a normal scaled very small relative to the
scene scale.
You can use average with a normal_map that contains up to 255 entries. You set a list
of randomly 
shifted normals, small scale normals with small displacements or large scale normals
with large 
displacements. The first works best when using antialias, the second without AA.
You will need to use photons so that your light get dispersed. This will cause your
render time to 
skyrocket! If you use average normals, you will use *HUGE* amount of RAM, as the
photons will be 
multiplicated by all those different normals. Each incident photon can generate 255
outbound 
photons, and reducing spacing or count will cause splotchiness.

Another aproach is to fake it. Add area_light to your light_source. Make it as large
as your dome. 
Use a fairly large aray, like 17*17, 33*33 or even 65*65, use adaptive 0 to help
reduce render time, 
increase to adaptive 1 if you get artefacts. Add circular orient to simulate a
spherical source.

You can use radiosity, optionaly remove the light inside the dome, make it opaque or
nearly so, and 
give the dome an ambient 1 to make it emit light. Give the dome a pigment the same
colour as your 
light's.

You don't need the interior_texture. You may want to use double_illuminate to have the
exterior to 
be bright. You can make the dome hollow, and fill with some media. Use scathering
media to have the 
media interact with your light. Use emiting media to have the media glow by itself.
With radiosity 
and the "media on" option, this last one will emit light for the surrounding area.

-- 
Alain
-------------------------------------------------
Change is inevitable, except from vending machines.


Post a reply to this message

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