![](/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) |
Ben Chambers wrote:
>
> Does anyone know how I can make a texture vary depending on the
> angle from which it is viewed? I've thought about using a radial, but that
> isn't quite what I want... As in, the angle of incidence between the
> intersecting ray and the surface normal would act as a sort of index
> into a pigment map.
There's a soluition for you : ML-Pov, a tiny MegaPOV 7 based patch,
which has an "aoi" pattern !
http://martial.rameaux.free.fr/mael/mlpovall.zip
pigment {aoi color_map {..}}
Fabien.
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) |
I've put an image on p.b.i which uses an angle dependant mix of two
colours. This is a one-line shader for POVMan, but it can only mix two
colours as it stands. It could probably be adapted to do other things
...
I'll post the source to the shaders and the pov file to p.b.s-f.
Bye for now,
Mike Andrews.
Ben Chambers wrote:
>
> Does anyone know how I can make a texture vary depending on the
> angle from which it is viewed? I've thought about using a radial, but that
> isn't quite what I want... As in, the angle of incidence between the
> intersecting ray and the surface normal would act as a sort of index
> into a pigment map.
>
> ...Chambers
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) |
I just get a gray sphere... What's it supposed to do?
...Chambers
Bill DeWitt <bde### [at] cfl rr com> wrote in message
news:3b530aab$1@news.povray.org...
>
> "Bob H." <omn### [at] msn com> wrote :
> >
> > sphere {0,1
> > texture {
> > pigment {rgb .25}
> > finish {
> > reflection_type 0 reflection_min <.1,0,0> reflection_max <1,0,0>
> > }
> > }
> > texture {
> > pigment {rgbt .75}
> > finish {
> > reflection_type 0 reflection_min <0,0,1> reflection_max <0,0,.1>
> > }
> > }
> > }
>
>
> I don't know about car paint, but it's a neat effect!
>
>
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) |
"Ben Chambers" <bdc### [at] hotmail com> wrote in message
news:3b54b957@news.povray.org...
> I just get a gray sphere... What's it supposed to do?
It's supposed to use MegaPOV and it helps if you give it something to
reflect.
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) |
"Bill DeWitt" <bde### [at] cfl rr com> wrote in message
news:3b54fa9c$1@news.povray.org...
>
> "Ben Chambers" <bdc### [at] hotmail com> wrote in message
> news:3b54b957@news.povray.org...
> > I just get a gray sphere... What's it supposed to do?
>
>
> It's supposed to use MegaPOV and it helps if you give it something to
> reflect.
Ha ha, yeah, sorry. I knew it needed an "environment" to expose the
different colors but I neglecting to say so. My apologies. Actually,
anything other than rgb 0 works even if just background {rgb .5} , for
example, is used.
Bob H.
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) |
Well, I have megapov, and I tried it with a plane below...
the reflection still doesn't work there. However, the plane
_above_ it reflects quite nicely.
...Chambers
Bill DeWitt <bde### [at] cfl rr com> wrote in message
news:3b54fa9c$1@news.povray.org...
>
> "Ben Chambers" <bdc### [at] hotmail com> wrote in message
> news:3b54b957@news.povray.org...
> > I just get a gray sphere... What's it supposed to do?
>
>
> It's supposed to use MegaPOV and it helps if you give it something to
> reflect.
>
>
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 <3b50f379@news.povray.org>, Warp <war### [at] tag povray org>
wrote:
> AFAIK patterns do not get info about the incoming ray nor the normal
> vector, so they can't produce a pattern depending on them. Not even a function
> pattern can do this.
It is possible (and fairly easy, though tedious) to make the ray
information available to patterns, I had to do so for my portal pigment
patch. I assume the POVMan and aoi pattern patches also have this
modification.
The surface normal is already available, though...it is part of the
intersection information.
--
Christopher James Huff - chr### [at] mac com, http://homepage.mac.com/chrishuff/
TAG: chr### [at] tag povray org, 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) |
Ben Chambers <bdc### [at] hotmail com> wrote in message
news:3b560d9b@news.povray.org...
> Well, I have megapov, and I tried it with a plane below...
> the reflection still doesn't work there. However, the plane
> _above_ it reflects quite nicely.
>
> ...Chambers
I figured it out... the texture reflected red and blue lights. The plane
below it was green :)
...Chambers
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) |
"Ben Chambers" <bdc### [at] hotmail com> wrote in message
news:3b575d7a@news.povray.org...
>
> Ben Chambers <bdc### [at] hotmail com> wrote in message
> news:3b560d9b@news.povray.org...
> > Well, I have megapov, and I tried it with a plane below...
> > the reflection still doesn't work there. However, the plane
> > _above_ it reflects quite nicely.
> >
> > ...Chambers
>
> I figured it out... the texture reflected red and blue lights. The plane
> below it was green :)
Oh, yeah, makes sense. Same as filter does with colors always need some
color component present to pass to the other.
Bob H.
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) |
Michael Andrews wrote:
>
> The way I'd have done it with a POVMan shader would be something like
>
> #declare incoming = pigment {
> shader{
> shader_file "incoming.slp"
> "falloff" 5
> shadow_type shader_shadow
> }
> }
>
> sphere { 0,5
> pigment {
> pigment_pattern { incoming }
> pigment_map {
> [0.5 granite colour_map {[0 rgb x][1 rgb y]} ]
> [0.5 bozo colour_map {[0 rgb z][1 rgb 1]} ]
> }
> }
> finish { ambient 1 diffuse 0 specular 0 metallic }
> }
>
> where the shader just returns the dot product between I (the incoming
> ray) and N (the surface normal).
>
> Unfortunately, POVMan seems to count the pigment_pattern interior as a
> non-object pigment definition so neither I nor N are defined. I'm having
> to assume this from the fact that it does not work; usually it warns you
> about an incomplete initialization (when a shader is used in a warp, for
> instance) but in this case the pigment_pattern simply returns a value of
> 1 without any warnings.
>
> If anyone can see another way of doing it I would also like to know ...
I tried it and indeed it doesn't work as expected. Seems like I vector
is wrong. POVMan calculates I by subtracting initial point of incoming
ray from intersection point in order to obtain 'true' (unnormalized)
view vector (incoming ray structure contains direction vector, but it is
normalized.) I assume that intersection point is correct, so initial
point in ray structure is one to blame. Unfortunately I don't have time
to examine it right now (i'm on vacation and packing for bicycle tour)
and I can't say, where is the problem. But I made note in 'things to do'
list to correct it in next version.
Temporary solution, which will work for trivial cases, would be to
calculate I vector by 'hand' by subtracting E (camera position) from P
(shading point). I made quick test and it seems to work. However, this
will not work in more complicated cases (e.g. with reflecting rays or
materials with different ior.)
HTH,
Vahur
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |