|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
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>}
}
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?
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> 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
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Alain <kua### [at] videotronca> wrote:
> > 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
Thank you for this detailed answer!
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hi,
I have activated radiosity with the default settings and modified my plasma:
union{
sphere{ 0,1
pigment { rgbt 1 } hollow
interior{
media{
emission 6
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> area_light 0.6*x 0.6*z 5 5 circular
orient adaptive 0}
scale <0.4,.5,.4>
}
The results are now way better. I will check the other advices next week.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> Hi,
>
> I have activated radiosity with the default settings and modified my plasma:
> union{
> sphere{ 0,1
> pigment { rgbt 1 } hollow
> interior{
> media{
> emission 6
> 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> area_light 0.6*x 0.6*z 5 5 circular
> orient adaptive 0}
> scale <0.4,.5,.4>
> }
>
> The results are now way better. I will check the other advices next week.
>
>
Another advice:
Declare your plasma as an object like this:
#declare Plasma=union{.....}
That way, you only have to define ot once if you want yo use several
plasma "flames".
You can now use "Plasma" by itself to place that object at it's default
location, or use:
object{Plasma rotate Rotation translate Location}
to place it anywhere you want.
You should place your scale statement before the light. Uneven scaling
don't play well with circular area_light. It generate a warning and undo
the uneven scaling. It can result in unexpected behaviour.
Alain
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|