POV-Ray : Newsgroups : povray.general : Overlaping objects with different ior values Server Time
6 Aug 2024 00:12:53 EDT (-0400)
  Overlaping objects with different ior values (Message 1 to 10 of 48)  
Goto Latest 10 Messages Next 10 Messages >>>
From: Micha Riser
Subject: Overlaping objects with different ior values
Date: 21 Jul 2002 04:19:23
Message: <3d3a6e8b@news.povray.org>
Considering two objects with ovelaping area. Like:

sphere{<-1,0,0>,2 pigment{rgbt 0.8} finish{ior 1.5}}
sphere{<1,0,0>,2 pigment{rgbt 0.8} finish{ior 1.2}}

How does POV-Ray handle this? In the intersection of the spheres there are 
two ior values defined. Which one does POV use?

- Micha


Post a reply to this message

From: Tom Melly
Subject: Re: Overlaping objects with different ior values
Date: 21 Jul 2002 05:57:31
Message: <3d3a858b@news.povray.org>
"Micha Riser" <mri### [at] gmxnet> wrote in message
news:3d3a6e8b@news.povray.org...

> two ior values defined. Which one does POV use?

My 2c.

Since ior is defined in the finish a surface property), the overlap is
irrelavent?

The only place that this would be an issue is on co-incident surfaces, which
are a no-no anyway (for presumably exactly this kind of reason).


Post a reply to this message

From: Rafal 'Raf256' Maj
Subject: Re: Overlaping objects with different ior values
Date: 21 Jul 2002 06:53:56
Message: <Xns925282A371CD5raf256com@204.213.191.226>
Micha Riser <mri### [at] gmxnet> wrote in news:3d3a6e8b@news.povray.org

> sphere{<-1,0,0>,2 pigment{rgbt 0.8} finish{ior 1.5}}
> sphere{<1,0,0>,2 pigment{rgbt 0.8} finish{ior 1.2}}
> How does POV-Ray handle this? In the intersection of the spheres there
> are two ior values defined. Which one does POV use?

If You have i.e. big box (A) and small (B) placed like :

aaaaa
abbba
abbba
abbba
aaaaa

Then in 'a' area (that is inside of object A) - ior will be as in A object

In 'b' are - with is both inside A and B - AFAIK ior will be like in 'B' - 
because this object is closest to tested points - in other words - ray 
intersect surface of B at last.

in area 'A' ray traveled trought A surface so ior is A
in 'B' tray traveled trought A, and later trought B - and the last value is 
important

If You talk about two _ideal_ same objects in same space like
sphere { 0 1 } and sphere {0 1 } - this will always result errors, not only 
in interior

-- 
#macro g(U,V)(.4*abs(sin(9*sqrt(pow(x-U,2)+pow(y-V,2))))*pow(1-min(1,(sqrt(
pow(x-U,2)+pow(y-V,2))*.3)),2)+.9)#end#macro p(c)#if(c>1)#local l=mod(c,100
);g(2*div(l,10)-8,2*mod(l,10)-8)*p(div(c,100))#else 1#end#end light_source{
y 2}sphere{z*20 9pigment{function{p(26252423)*p(36455644)*p(66656463)}}}//M


Post a reply to this message

From: Warp
Subject: Re: Overlaping objects with different ior values
Date: 21 Jul 2002 08:49:50
Message: <3d3aade9@news.povray.org>
Tom Melly <tom### [at] tomandlucouk> wrote:
> Since ior is defined in the finish a surface property), the overlap is
> irrelavent?

  IOR should not be defined in the finish block,
but in the interior block.

-- 
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -


Post a reply to this message

From: Micha Riser
Subject: Re: Overlaping objects with different ior values
Date: 21 Jul 2002 12:51:19
Message: <3d3ae686@news.povray.org>
Rafal 'Raf256' Maj wrote:

> Micha Riser <mri### [at] gmxnet> wrote in news:3d3a6e8b@news.povray.org
> 
>> sphere{<-1,0,0>,2 pigment{rgbt 0.8} finish{ior 1.5}}
>> sphere{<1,0,0>,2 pigment{rgbt 0.8} finish{ior 1.2}}
>> How does POV-Ray handle this? In the intersection of the spheres there
>> are two ior values defined. Which one does POV use?
> 
> If You have i.e. big box (A) and small (B) placed like :
> 
> aaaaa
> abbba
> abbba
> abbba
> aaaaa

This case is clear as B is compleatly inside A. But what happens if A and B 
only partly overlap?

> 
> If You talk about two _ideal_ same objects in same space like
> sphere { 0 1 } and sphere {0 1 } - this will always result errors, not
> only in interior
> 

No, that's not was I meant. Look closer at my example scene above.

- Micha


Post a reply to this message

From: Rafal 'Raf256' Maj
Subject: Re: Overlaping objects with different ior values
Date: 21 Jul 2002 13:00:33
Message: <Xns9252C0CB37C84raf256com@204.213.191.226>
Micha Riser <mri### [at] gmxnet> wrote in news:3d3ae686@news.povray.org

> Rafal 'Raf256' Maj wrote:
> 
>> Micha Riser <mri### [at] gmxnet> wrote in news:3d3a6e8b@news.povray.org
>> 
>>> sphere{<-1,0,0>,2 pigment{rgbt 0.8} finish{ior 1.5}}
>>> sphere{<1,0,0>,2 pigment{rgbt 0.8} finish{ior 1.2}}
>>> How does POV-Ray handle this? In the intersection of the spheres
>>> there are two ior values defined. Which one does POV use?
>> 
>> If You have i.e. big box (A) and small (B) placed like :
>> 
>> aaaaa
>> abbba
>> abbba
>> abbba
>> aaaaa
> 
> This case is clear as B is compleatly inside A. But what happens if A
> and B only partly overlap?

They should not overlap. At least - they can overlap in some not-connected 
points, like sphere { y*0 1 } sphere { y*2 1 }. Point <0,1,0> is inside A 
_OR_ inside B, the result is quite random - it deppends on implementation, 
but if this is 1 separate pint - this artfact probably will not be visible.

If the overlap area is bigger, like
cone { y*0 1 y*1 1 }
cone { y*1 1 y*2 1 }

then area with shape of cone { y*1 1 y*1 1 }will have random artefacts (it 
can be i.e. black pixels)

-- 
#macro g(U,V)(.4*abs(sin(9*sqrt(pow(x-U,2)+pow(y-V,2))))*pow(1-min(1,(sqrt(
pow(x-U,2)+pow(y-V,2))*.3)),2)+.9)#end#macro p(c)#if(c>1)#local l=mod(c,100
);g(2*div(l,10)-8,2*mod(l,10)-8)*p(div(c,100))#else 1#end#end light_source{
y 2}sphere{z*20 9pigment{function{p(26252423)*p(36455644)*p(66656463)}}}//M


Post a reply to this message

From: Rafal 'Raf256' Maj
Subject: Re: Overlaping objects with different ior values
Date: 21 Jul 2002 13:04:37
Message: <Xns9252C17CE93CEraf256com@204.213.191.226>
"Rafal 'Raf256' Maj" <raf### [at] raf256com> wrote in
news:Xns### [at] 204213191226 

[...]

in other words - any objects in POV intersect, but intersection of objects 
_surfaces_ can lead to errors it some cases (if objects, or it's parts are 
too similar to each other)

-- 
#macro g(U,V)(.4*abs(sin(9*sqrt(pow(x-U,2)+pow(y-V,2))))*pow(1-min(1,(sqrt(
pow(x-U,2)+pow(y-V,2))*.3)),2)+.9)#end#macro p(c)#if(c>1)#local l=mod(c,100
);g(2*div(l,10)-8,2*mod(l,10)-8)*p(div(c,100))#else 1#end#end light_source{
y 2}sphere{z*20 9pigment{function{p(26252423)*p(36455644)*p(66656463)}}}//M


Post a reply to this message

From: Micha Riser
Subject: Re: Overlaping objects with different ior values
Date: 21 Jul 2002 13:09:03
Message: <3d3aeaae@news.povray.org>
Tom Melly wrote:

> "Micha Riser" <mri### [at] gmxnet> wrote in message
> news:3d3a6e8b@news.povray.org...
> 
>> two ior values defined. Which one does POV use?
> 
> Since ior is defined in the finish a surface property), the overlap is
> irrelavent?

As Warp said ior is a interior property. It is allowed to be specified in 
finish only for backwards compatibility. See chapter 6.6.1 of the 
documentation.

I made some further test with CSG and ior. Obviously there is also a 
problem when objects with different ior ar merged together/intersected. 
Consider:

merge{ // or intersection{
  sphere{<-1,0,0>,2 pigment{rgbt 0.8} finish{ior 1.5}}
  sphere{<1,0,0>,2 pigment{rgbt 0.8} finish{ior 1.2}}
}

Note that here ior is specified in finish where it does no longer belong to.
What ior does the resulting object have? Testing showed that POV-Ray uses 
the ior value from the first object that has a finish{ior xy} defined for 
the whole object.

However if I specify ior in interior as

merge{ // or intersection{
  sphere{<-1,0,0>,2 pigment{rgbt 0.8} interior{ior 1}}
  sphere{<1,0,0>,2 pigment{rgbt 0.8} interior{ior 1.2}}
}

I get a different result. I cannot exactly say how POV treats this case 
though... anybody?

- Micha


Post a reply to this message

From: TinCanMan
Subject: Re: Overlaping objects with different ior values
Date: 21 Jul 2002 13:11:19
Message: <3d3aeb37$1@news.povray.org>
"Micha Riser" <mri### [at] gmxnet> wrote in message
news:3d3a6e8b@news.povray.org...
> Considering two objects with ovelaping area. Like:
>
> sphere{<-1,0,0>,2 pigment{rgbt 0.8} finish{ior 1.5}}
> sphere{<1,0,0>,2 pigment{rgbt 0.8} finish{ior 1.2}}
>
> How does POV-Ray handle this? In the intersection of the spheres there are
> two ior values defined. Which one does POV use?

From what I understand, the ior value comes into play whaent he ray passes
through a surface, so any time the ray passed through a surface of  either
sphere, that sphere's ior value would be applied even if the surface is
inside or intersects another surface.  On the other hand, if you apply a
'merge' to these two spheres, the surfaces inside the intersection are
removed so the image would come out quiet different looking.

-tgq


Post a reply to this message

From: Micha Riser
Subject: Re: Overlaping objects with different ior values
Date: 21 Jul 2002 13:14:54
Message: <3d3aec0d@news.povray.org>
Rafal 'Raf256' Maj wrote:

> Micha Riser <mri### [at] gmxnet> wrote in news:3d3ae686@news.povray.org
> 
>> Rafal 'Raf256' Maj wrote:
>> 
>>> Micha Riser <mri### [at] gmxnet> wrote in news:3d3a6e8b@news.povray.org
>>> 
>>>> sphere{<-1,0,0>,2 pigment{rgbt 0.8} finish{ior 1.5}}
>>>> sphere{<1,0,0>,2 pigment{rgbt 0.8} finish{ior 1.2}}
>>>> How does POV-Ray handle this? In the intersection of the spheres
>>>> there are two ior values defined. Which one does POV use?
>>> 
>>> If You have i.e. big box (A) and small (B) placed like :
>>> 
>>> aaaaa
>>> abbba
>>> abbba
>>> abbba
>>> aaaaa
>> 
>> This case is clear as B is compleatly inside A. But what happens if A
>> and B only partly overlap?
> 
> They should not overlap. At least - they can overlap in some not-connected
> points, like sphere { y*0 1 } sphere { y*2 1 }. Point <0,1,0> is inside A
> _OR_ inside B, the result is quite random - it deppends on implementation,
> but if this is 1 separate pint - this artfact probably will not be
> visible.
> 
> If the overlap area is bigger, like
> cone { y*0 1 y*1 1 }
> cone { y*1 1 y*2 1 }
> 
> then area with shape of cone { y*1 1 y*1 1 }will have random artefacts (it
> can be i.e. black pixels)
> 

I think we are talking of different things. With 'overlap' I do not mean 
that big parts of the *surface* overlap. Obviously this has undefined 
result. What happens if the objects have a partly common interior. Maybe 
csg intersection is better to make you clear what I mean:

intersection{
  box{0,5 interior{ior 1.1}}
  box{2,6 interior{ior 1.2}}
}

This results in a box{2,5} but what ior is used?


Post a reply to this message

Goto Latest 10 Messages Next 10 Messages >>>

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