 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Why interior_texture doesn't work at all with CSG?
Here is an example scene (change the merge with any other CSG keyword to
see that it doesn't work with any of them). The object at the left is a
sphere with almost transparent outer texture and then a blue interior
texture (I bumped up the ambient to make it more visible). The object at
the right is a CSG of two spheres; interior_texture has absolutely no
effect in it.
#version Unofficial MegaPov 0.5;
global_settings { ambient_light 4 }
camera { location <-1,2,-5>*1.3 look_at 0 angle 35 }
light_source { <170,200,-50>, 1 }
plane { y, -1 pigment { checker rgb 1, rgb .5 } }
sphere
{ -x*1.2, 1
pigment { rgbt <1,1,0,.9> }
interior_texture { pigment { rgb <0,1,1> } }
}
merge
{ sphere { x*1.2, 1 }
sphere { <1.2,.5,0>, 1 }
pigment { rgbt <1,1,0,.9> }
interior_texture { pigment { rgb <0,1,1> } }
}
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
 |
|  |
|  |
|
 |
From: Warp
Subject: Do shadow rays take into account interior_texture?
Date: 28 Jul 2000 08:09:27
Message: <398177f6@news.povray.org>
|
|
 |
|  |
|  |
|
 |
The subject says it all. It seems to my that they don't. I can post a
concrete example if someone needs it.
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Warp" <war### [at] tag povray org> wrote in message
news:398176cc@news.povray.org...
> Why interior_texture doesn't work at all with CSG?
>
Dunno, but it works if you texture the individual components of the CSG:
merge
{ sphere { <0,0,0>, 1 pigment { rgbf 1 } interior_texture { pigment { rgbf
<0,1,1,0.9> }}}
sphere { <0,1,0>, 1 pigment { rgbf 1 } interior_texture { pigment { rgbf
<0,1,1,0.9> }}}
}
Post a reply to this message
|
 |
|  |
|  |
|
 |
From: Thorsten Froehlich
Subject: Re: interior_texture doesn't work with CSG?
Date: 28 Jul 2000 09:20:02
Message: <39818882@news.povray.org>
|
|
 |
|  |
|  |
|
 |
In article <39817f77$1@news.povray.org> , "Tom Melly"
<tom### [at] tomandlu f9 co uk> wrote:
> Dunno, but it works if you texture the individual components of the CSG:
>
> merge
> { sphere { <0,0,0>, 1 pigment { rgbf 1 } interior_texture { pigment { rgbf
> <0,1,1,0.9> }}}
> sphere { <0,1,0>, 1 pigment { rgbf 1 } interior_texture { pigment { rgbf
> <0,1,1,0.9> }}}
> }
>
This implies that someone forgot to add the proper promotion code to do it
for these in the parser...
____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trf de
Visit POV-Ray on the web: http://mac.povray.org
Post a reply to this message
|
 |
|  |
|  |
|
 |
From: Nicolas Calimet
Subject: Re: interior_texture doesn't work with CSG?
Date: 28 Jul 2000 10:03:08
Message: <398192EF.EF6F43DA@free.fr>
|
|
 |
|  |
|  |
|
 |
Thorsten Froehlich wrote:
>
> In article <39817f77$1@news.povray.org> , "Tom Melly"
> <tom### [at] tomandlu f9 co uk> wrote:
>
> > Dunno, but it works if you texture the individual components of the CSG:
> >
> > merge
> > { sphere { <0,0,0>, 1 pigment { rgbf 1 } interior_texture { pigment { rgbf
> > <0,1,1,0.9> }}}
> > sphere { <0,1,0>, 1 pigment { rgbf 1 } interior_texture { pigment { rgbf
> > <0,1,1,0.9> }}}
> > }
> >
>
> This implies that someone forgot to add the proper promotion code to do it
> for these in the parser...
At least the objects contained in the CSG object have Interior_Texture == NULL.
*** Nicolas Calimet
*** http://pov4grasp.free.fr
Post a reply to this message
|
 |
|  |
|  |
|
 |
From: Nicolas Calimet
Subject: Re: interior_texture doesn't work with CSG?
Date: 28 Jul 2000 10:25:23
Message: <3981982A.EC976774@free.fr>
|
|
 |
|  |
|  |
|
 |
Thorsten Froehlich wrote:
>
> In article <39817f77$1@news.povray.org> , "Tom Melly"
> <tom### [at] tomandlu f9 co uk> wrote:
>
> > Dunno, but it works if you texture the individual components of the CSG:
> >
> > merge
> > { sphere { <0,0,0>, 1 pigment { rgbf 1 } interior_texture { pigment { rgbf
> > <0,1,1,0.9> }}}
> > sphere { <0,1,0>, 1 pigment { rgbf 1 } interior_texture { pigment { rgbf
> > <0,1,1,0.9> }}}
> > }
> >
>
> This implies that someone forgot to add the proper promotion code to do it
> for these in the parser...
Yes exactly true. Works when adding the following line in Post_Process
(parse.c) afterwards the equivalent code for Object_Texture :
if (Object->Interior_Texture == NULL)
{
Object->Interior_Texture = Copy_Texture_Pointer(Parent->Interior_Texture);
if (Test_Flag(Parent, UV_FLAG))
Set_Flag(Object, UV_FLAG);
}
PS: please ignore my previous post which is completely unclear...
*** Nicolas Calimet
*** http://pov4grasp.free.fr
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In article <39818882@news.povray.org>, "Thorsten Froehlich"
<tho### [at] trf de> wrote:
> This implies that someone forgot to add the proper promotion code to
> do it for these in the parser...
And that someone would be me...oops!
Well,it shouldn't be too hard to follow the texture code and add
interior_texture support...
BTW, I don't think it works with blobs or per-triangle mesh textures,
either...and the blobs are probably the only thing I have any chance at
all of understanding enough to add it to.
--
Christopher James Huff - Personal e-mail: chr### [at] mac com
TAG(Technical Assistance Group) e-mail: chr### [at] tag povray org
Personal Web page: http://homepage.mac.com/chrishuff/
TAG Web page: http://tag.povray.org/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In article <398177f6@news.povray.org>, Warp <war### [at] tag povray org>
wrote:
> The subject says it all. It seems to my that they don't. I can post a
> concrete example if someone needs it.
Please do...this might be something that was just missed in the addition
of this patch to MegaPOV.
--
Christopher James Huff - Personal e-mail: chr### [at] mac com
TAG(Technical Assistance Group) e-mail: chr### [at] tag povray org
Personal Web page: http://homepage.mac.com/chrishuff/
TAG Web page: http://tag.povray.org/
Post a reply to this message
|
 |
|  |
|  |
|
 |
From: Nicolas Calimet
Subject: Re: interior_texture doesn't work with CSG?
Date: 28 Jul 2000 10:34:01
Message: <39819A2D.C0EF04AB@free.fr>
|
|
 |
|  |
|  |
|
 |
Of course this code should be surrounded by:
#ifdef InteriorTexturePatch
...
#endif
;-)
> *** Nicolas Calimet
> *** http://pov4grasp.free.fr
Post a reply to this message
|
 |
|  |
|  |
|
 |
From: Warp
Subject: Re: Do shadow rays take into account interior_texture?
Date: 28 Jul 2000 11:01:19
Message: <3981a03f@news.povray.org>
|
|
 |
|  |
|  |
|
 |
I think that the source code and the image itself are self-explanatory:
#version Unofficial MegaPov 0.5;
camera { location <0,-.5,-6> look_at 0 angle 35 }
// A plane with opaque outer texture and transparent inner texture (with
// slides of opaque to visualize where the plane actually is):
plane
{ y,0
texture
{ pigment { rgb 1 } }
interior_texture
{ pigment
{ gradient x color_map
{ [0 rgb 1][.05 rgb 1][.05 rgbt 1][.95 rgbt 1][.95 rgb 1][1 rgb 1]
}
}
}
}
// A red light source above the plane
light_source
{ <1,1,0>, <1,0,0>
looks_like { sphere { 0,.1 pigment { rgb <1,.5,.5> } finish { ambient 1 } } }
}
// A blue light source below the plane
light_source
{ <1,-1,0>, <0,0,1>
looks_like { sphere { 0,.1 pigment { rgb <.5,.5,1> } finish { ambient 1 } } }
}
// Sphere above the plane:
sphere { <-1,1,0>, .5 pigment { rgb 1 } finish { specular .5 } }
// Sphere below the plane:
sphere { <-1,-1,0>, .5 pigment { rgb 1 } finish { specular .5 } }
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
 |
|  |
|  |
|
 |
From: Nicolas Calimet
Subject: Re: Do shadow rays take into account interior_texture?
Date: 28 Jul 2000 11:37:02
Message: <3981A8F2.A76B0D14@free.fr>
|
|
 |
|  |
|  |
|
 |
Strange result, indeed...
But I also wonder how it's possible even to see the top sphere and
the red light that lit it ? I would expect that the opaque texture blocks
camera rays even if the interior_texture has transparent parts...
[you should add a "hollow" flag to you plane ;-) ]
*** Nicolas Calimet
*** http://pov4grasp.free.fr
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> #version Unofficial MegaPov 0.5;
>
> global_settings { ambient_light 4 }
> camera { location <-1,2,-5>*1.3 look_at 0 angle 35 }
> light_source { <170,200,-50>, 1 }
> plane { y, -1 pigment { checker rgb 1, rgb .5 } }
>
> sphere
> { -x*1.2, 1
> pigment { rgbt <1,1,0,.9> }
> interior_texture { pigment { rgb <0,1,1> } }
> }
> merge
> { sphere { x*1.2, 1 }
> sphere { <1.2,.5,0>, 1 }
> pigment { rgbt <1,1,0,.9> }
> interior_texture { pigment { rgb <0,1,1> } }
> }
interior_texture is not getting distributed to the spheres, do this:
> merge
> { sphere { x*1.2, 1
> pigment { rgbt <1,1,0,.9> }
> interior_texture { pigment { rgb <0,1,1> } }
> }
> sphere { <1.2,.5,0>, 1
> pigment { rgbt <1,1,0,.9> }
> interior_texture { pigment { rgb <0,1,1> } }
> }
> }
And about those shadows, comment out your own interior_texture's and watch
the shadows on the checkered plane get lighter, seems right to me, unless
you meant something else.
Post a reply to this message
|
 |
|  |
|  |
|
 |
From: Warp
Subject: Re: Do shadow rays take into account interior_texture?
Date: 28 Jul 2000 12:48:10
Message: <3981b94a@news.povray.org>
|
|
 |
|  |
|  |
|
 |
Nicolas Calimet <pov### [at] free fr> wrote:
: Strange result, indeed...
: But I also wonder how it's possible even to see the top sphere and
: the red light that lit it ? I would expect that the opaque texture blocks
: camera rays even if the interior_texture has transparent parts...
No, I think that in this case it's correct that you can see through the
plane from inside but not outside (at least this works right). This can
be used for neat effects (like mirrors than can be look through from the
other side, 1-sided polygons and so on).
The shadowing should work accordingly.
My original goal was to fix the self-shadowing problem of bump-mapped
surfaces with this trick. I'll post a report when the patch gets fixed.
: [you should add a "hollow" flag to you plane ;-) ]
I intentionally left it out. I _wanted_ the camera to be inside the plane,
and the povray warning just confirms that it indeed is there.
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
In article <3981982A.EC976774@free.fr>, Nicolas Calimet
<pov### [at] free fr> wrote:
> Yes exactly true. Works when adding the following line in Post_Process
> (parse.c) afterwards the equivalent code for Object_Texture :
...snip...
I have added this fix, it will be in future releases of MegaPOVPlus.
--
Christopher James Huff - Personal e-mail: chr### [at] mac com
TAG(Technical Assistance Group) e-mail: chr### [at] tag povray org
Personal Web page: http://homepage.mac.com/chrishuff/
TAG Web page: http://tag.povray.org/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Chris Huff <chr### [at] mac com> wrote:
: I have added this fix, it will be in future releases of MegaPOVPlus.
What about megapov?
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Warp <war### [at] tag povray org> wrote:
> Chris Huff <chr### [at] mac com> wrote:
> : I have added this fix, it will be in future releases of MegaPOVPlus.
>
> What about megapov?
Added it there also!
Smellenbegh
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
<twiddles thumbs>
Grim
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|
 |