POV-Ray : Newsgroups : povray.newusers : Glowing Plasma : Re: Glowing Plasma Server Time
1 Jun 2024 21:41:20 EDT (-0400)
  Re: Glowing Plasma  
From: Alain
Date: 6 Jun 2013 14:24:04
Message: <51b0d3c4$1@news.povray.org>

> Hi guys,
>
> I am trying to model some glowing plasma, like in
> http://www.wsz-whv.de/wp-content/uploads/2011/01/3.jpg or
> http://www.roboterschweissen.net/images/3d_plasmaschneiden2_gross.jpg.
>
> My first approach was using a union of pointlights:
> union{
>          light_source{-0.5*y, color rgb<1,1,1>}
>          light_source{-0.5*y, color rgb<1,0,1>}
>
> }

Also, you never actualy see the light_source itself, just it's effect 
and the highlights is cause.

> This approach has a nice glowing effect, however I do not have the possibility
> to model the "actual" light. As seen in the example, the light has to occlude
> the top of the plasma cutter. Moreover it has an oval shape.
>
> To have more possibilities shaping the light I tried using object-media in union
> with a light_source:
>   union{
>   sphere
>   { 0,0.5 scale <1,1.5,1>
>   pigment { rgbt 1 } hollow
>     interior
>     { media
>       { emission 1
>         density
>         { spherical density_map
>           { [0 rgb 0]
>             [0.1 rgb <.5,.1,.5>]
>             [0.2 rgb <1,.8,1>]
>             [1 rgb 1]
>           }
>         }
>       }
>    }
>   }
>   light_source{0, color rgb<1,0,1>}
>   }
>
> But I am not really confident with the results. Do you have any advice?
>
>

In your case, emissive media is the way to go. After all, that plasma is 
emissive and a gaz that media is meant to simulate.
You may want to combine it with an area_light as the media itself will 
NOT shed any light on it's environment in a normal scene, but will get 
reflected on reflective surfaces. For that, you need to use the 
radiosity feature with the option "media on".

Your media and it's container are OK, but could be coded in a beter way:
Always create your container at the origin. Many patterns are relative 
to the origin.
As you use a spherical pattern, you should start with a sphere of radius 
1 as it's the extent of that pattern.
It may be interesting to add some turbulence. In this case, you need to 
make the container larger. If you use turbulence 0.5, then a container 
of radius 1.5 should be large enough.
Apply any scaling AFTER you add your media. That way, the media will get 
scalled toggether with it's container. In your case, it will make the 
media ellipsoid.
Next, rotate the container if needed, and lastly, apply any translation 
needed to place the media in it's desired location.

To increase the quality of your media, change the samples value. It 
default to 10. For emissive media, samples 500 is not so slow... but is 
probably overkill.

If the media is emissive snough, it will hide what is beheind it. You 
may eventualy want to add some absorbing or scattering media. You can 
have many medias in any single container, but normaly, a plasma don't 
cause any shadow.

Personaly, I'd change the light to an area_light like this:

light_source{0 color rgb<1,0,1> area_light 0.6*x 0.6*z 9 9 circular 
orient adaptive 0}

If you use version 3.7 (and you realy should), you have the new 
area_illumination option that works great and can imporve your result.

circular and orient make the light act as if it was a sphere sheding light.
adaptive 0 make the area_light render MUCH faster.
There should be no need to use adaptive 1 in your case. The value after 
adaptive is NOT a boolean switch, but the minimal number os subdivision 
if the array of lightlets.

For the various metallic parts, you should try to use blured reflection.
Add a normal statement using a buzzy pigment, like granite, scalled very 
small and render using antialiasing. You modulate the intensity of the 
bluring by changing the strenght if the normal, like granite 0.1 scale 
0.00001. You can also use unevent scaling to get a brushed effect.
If you use reflection bluring, you can use a much tighter specular or 
phong highlighting as the bluring will affect those highlights.

You may try radiosity.
Initialy, just add radiosity{} in your global_settings block to enable 
radisoity using the defdault values.




Alain


Post a reply to this message

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