![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Pardon me if this isn't the correct group to bring this up in.
It probably is if there is no work-around for the effect I want
to create.
I've been working with media lately, trying to model realistic
flames and smoke, and while doing so it occured to me that it'd
be nice to be able to have the ior of a material vary in a controlled
way. Does anyone know how this can be done (or simulated) in
MegaPov?
If not, I wonder how difficult it would be to extend MegaPov's
interior ior to optionally use an ior map, much like the density
statement for media?
Something like:
interior{
ior{
bozo
color_map{
[0.0 rgb 0]
[0.2 rgb 1]
[0.5 rgb 1.2]
[1.0 rgb 2.5]
}
}
}
TIA
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Artemia Salina" <y2k### [at] sheayright com> wrote in message
news:390A4CA3.1A5A0F7E@sheayright.com...
| Pardon me if this isn't the correct group to bring this up in.
| It probably is if there is no work-around for the effect I want
| to create.
povray.general would have sufficed I believe.
| I've been working with media lately, trying to model realistic
| flames and smoke, and while doing so it occured to me that it'd
| be nice to be able to have the ior of a material vary in a controlled
| way. Does anyone know how this can be done (or simulated) in
| MegaPov?
Although this should probably make it into the VFAQ:
http://www.students.tut.fi/~warp/povVFAQ/
I didn't see it there just now.
Thing is that when ior was moved to 'interior' there became no
way of mapping a variable refraction. It could be done in POV v3.0*
but not now in v3.1. How? you might ask. By using 'texture_map',
which had refraction in 'finish'.
There have been ideas on work arounds, not sure there really is any.
I know it's been said that the change needed for v3.1 and beyond
to accomadate a variable 'ior' is not easy or at least hasn't been tried
yet (I guess not anyway).
Bob
| If not, I wonder how difficult it would be to extend MegaPov's
| interior ior to optionally use an ior map, much like the density
| statement for media?
|
| Something like:
|
| interior{
| ior{
| bozo
| color_map{
| [0.0 rgb 0]
| [0.2 rgb 1]
| [0.5 rgb 1.2]
| [1.0 rgb 2.5]
| }
| }
| }
|
|
|
| TIA
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Fri, 28 Apr 2000 23:38:14 -0500, Bob Hughes wrote:
>Thing is that when ior was moved to 'interior' there became no
>way of mapping a variable refraction. It could be done in POV v3.0*
>but not now in v3.1. How? you might ask. By using 'texture_map',
>which had refraction in 'finish'.
To be fair, though, the method in 3.0 wouldn't have been anything like
accurate. Refraction is only calculated on entry and exit; variable
IOR requires it to be calculated continuously over the path of the ray.
--
Ron Parker http://www2.fwi.com/~parkerr/traces.html
These are my opinions. I do NOT speak for the POV-Team.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <390A4CA3.1A5A0F7E@sheayright.com>, Artemia Salina
<y2k### [at] sheayright com> wrote:
> Pardon me if this isn't the correct group to bring this up in.
> It probably is if there is no work-around for the effect I want
> to create.
>
> I've been working with media lately, trying to model realistic
> flames and smoke, and while doing so it occured to me that it'd
> be nice to be able to have the ior of a material vary in a controlled
> way. Does anyone know how this can be done (or simulated) in
> MegaPov?
>
> If not, I wonder how difficult it would be to extend MegaPov's
> interior ior to optionally use an ior map, much like the density
> statement for media?
While this would be possible, it wouldn't be easy...it would require
stepping the ray through the object by small distances and evaluating
the refraction at each point. This would be slow, slower than scattering
media with method 1, and would be difficult to code.
--
Christopher James Huff - Personal e-mail: chr### [at] yahoo com
TAG(Technical Assistance Group) e-mail: chr### [at] tag povray org
Personal Web page: http://chrishuff.dhs.org/
TAG Web page: http://tag.povray.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
couldn't you make copies of the original object with the ior, break the
copies up using csg difference into the parts with different ior values
and then csg them together? of course, this would only work well with
simple geometries, but it would be something.
Artemia Salina wrote:
>
> Pardon me if this isn't the correct group to bring this up in.
> It probably is if there is no work-around for the effect I want
> to create.
>
> I've been working with media lately, trying to model realistic
> flames and smoke, and while doing so it occured to me that it'd
> be nice to be able to have the ior of a material vary in a controlled
> way. Does anyone know how this can be done (or simulated) in
> MegaPov?
>
> If not, I wonder how difficult it would be to extend MegaPov's
> interior ior to optionally use an ior map, much like the density
> statement for media?
>
> Something like:
>
> interior{
> ior{
> bozo
> color_map{
> [0.0 rgb 0]
> [0.2 rgb 1]
> [0.5 rgb 1.2]
> [1.0 rgb 2.5]
> }
> }
> }
>
> TIA
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <390B1436.99D49861@yahoo.com>, ryan constantine
<rco### [at] yahoo com> wrote:
> couldn't you make copies of the original object with the ior, break the
> copies up using csg difference into the parts with different ior values
> and then csg them together? of course, this would only work well with
> simple geometries, but it would be something.
This might work, but you would have to set max_trace_level really high,
and it would be very slow.
--
Christopher James Huff - Personal e-mail: chr### [at] yahoo com
TAG(Technical Assistance Group) e-mail: chr### [at] tag povray org
Personal Web page: http://chrishuff.dhs.org/
TAG Web page: http://tag.povray.org/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Sat, 29 Apr 2000 12:47:56 -0500, Chris Huff
<chr### [at] yahoo com> wrote:
>In article <390B1436.99D49861@yahoo.com>, ryan constantine
><rco### [at] yahoo com> wrote:
>
>> couldn't you make copies of the original object with the ior, break the
>> copies up using csg difference into the parts with different ior values
>> and then csg them together? of course, this would only work well with
>> simple geometries, but it would be something.
>
>This might work, but you would have to set max_trace_level really high,
>and it would be very slow.
And don't forget the air gaps problem, too.
Peter Popov ICQ : 15002700
Personal e-mail : pet### [at] usa net
TAG e-mail : pet### [at] tag povray org
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Sat, 29 Apr 2000 23:29:08 +0300, Peter Popov wrote:
>And don't forget the air gaps problem, too.
Speaking of the air gaps problem, I posted something over on cgrr about
that and only got a response from one person. There is no correct way
to do the junction of two objects with different IORs.
--
Ron Parker http://www2.fwi.com/~parkerr/traces.html
These are my opinions. I do NOT speak for the POV-Team.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 29 Apr 2000 17:26:03 -0400, ron### [at] povray org (Ron Parker)
wrote:
>Speaking of the air gaps problem, I posted something over on cgrr about
>that and only got a response from one person. There is no correct way
>to do the junction of two objects with different IORs.
Instruct the render engine that this is the case (group the two
objects in some way). When a ray leaves the first object and hits air,
it will be split in two rays. One will be refracted and one will not.
First the non-refracted ray will be checked against the second object.
if the distance to the intersection is smaller than epsilon, the air
gap is ignored (as is the other ray), i.e. the ray tracing continues
from that intersection point and the ray direction is determined from
the well-known formula of the two iors. If this test fails then the
refracted ray will be the one to be traced further.
Will this work?
Peter Popov ICQ : 15002700
Personal e-mail : pet### [at] usa net
TAG e-mail : pet### [at] tag povray org
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Ron Parker wrote:
>
> On Sat, 29 Apr 2000 23:29:08 +0300, Peter Popov wrote:
> >And don't forget the air gaps problem, too.
>
> Speaking of the air gaps problem, I posted something over on cgrr about
> that and only got a response from one person. There is no correct way
> to do the junction of two objects with different IORs.
>
Do you mean 'no way' or 'POV doesn't do it'?
Isn't refraction calculated by the difference in ior when a ray crosses
a surface?
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |