|
![](/i/fill.gif) |
Rune wrote:
> > No. A "plain normal" can't exist, as a normal is a variation !
>
> Wrong. The normal is a vector which points away from the surface and is
> perpendicular to it. When you specify a normal with a pattern, POV-Ray
> artificially modifies this normal vector. But it's there no matter if you
> modifies it or not!
I meant that the normal {..} can't be plain. I wasn't speaking of
the general normal of a surface, but of the perturbated normal
obtained by the normal {..} statement.
Thus, the default is rather "no perturbation".
> There is no such thing as a pigment value. There are colour vectors that are
> controlled by the pigment statement.
There IS ! It is the rgbft value of the color at a given space point
(that value being determined by the pattern, color_map, and
transformations).
> There is no such thing as a normal value. There are normal vectors that are
> controlled by the normal statement.
There IS ! It is the slope value at a given point of a surface.
(that value being determined by the pattern values at adjacent points of
the surface, and transformations).
> There is no such thing as a finish value.
Guess what ? There IS ! It is the rgb value of the color that will
be added to the others texture elements at a given point of a surface,
that value being determined by the finish definition (amount of
reflection, etc..), the normal of the surface at that point,
AND the camera, lights, objects positions.
> There's the ambient value, the
> diffuse value,
> Ambient and diffuse are
> the phong, reflection, brilliance, and metallic values, and a
> whole lot of other values. None of those values are dependent on light
> positions or other objects' positions or anything. (If I specify reflection
> to be 0.6, then it is 0.6 independent on other objects.)
That is the DEFINITION, not the resulting value !!
(and, BTW, ambient and diffuse shouldn't be in finish, since they are
view-independent)
When POV-Ray searches the finish value for a pixel, it doesn't search
the "0.6", since it *already* knows that, it searchs for the color of
the reflected ray, which will be multiplied by 0.6 before being
"incorporated" with the pigment and normal values.
> But the appearances of the pigment and normal are also dependent on those
> things. If I make a pigment with a white colour it will look red if I have a
> red light_source only.
> So you see, everything is dependent on each other, not just the finish.
The finish is MORE fundamentally dependant on those things, since it
needs camera/lights/objects data to give its value for some point of
a surface. Pigment and normal have an independant value, which is,
later,
affected by environment. So, finish RELY on environment, while pigment
and normal are AFFECTED by environment.
> Besides, you can't obtain the normal vector at some point either, so you
> have no "proof".
You could obtain the normal at some point of a surface. It's not
availiable, but it's possible (you "just" have to interpolate
the values of adjacent points on the surface).
In fact, a simple macro using 'trace' and 'eval_pattern' could give
you that value, but it's impossible (or tell me how) to get the
equivalent
finish information.
Fabien.
Post a reply to this message
|
![](/i/fill.gif) |