POV-Ray : Newsgroups : povray.newusers : TRACE returns a unit-length NORMAL vector : Re: TRACE returns a unit-length NORMAL vector Server Time
29 Jul 2024 14:21:17 EDT (-0400)
  Re: TRACE returns a unit-length NORMAL vector  
From: Kenneth
Date: 5 Oct 2005 04:50:00
Message: <web.43439161d049092fd47c191c0@news.povray.org>
Skip Talbot <Ski### [at] aolcom> wrote:
> Kenneth, doesn't it seem logical, and wouldn't you assume that the
> vectore returned by trace would indeed be a unit length vector?  What
> else would it possibly be?  Although the docs don't specifically mention
> its one unit in length, the sample code demonstrates it quite well.

I do agree that the sample code you've included, from the POV docs, does
visually show that the vector is indeed 1 unit in length.  However... that
doesn't seem (to me anyway) to be the best way of imparting information,
especially to the beginner. (I.e., how many different places does one need
to
look in the docs to find an answer to a question?)  As to "what else could
it possibly be," that presupposes a knowledge of vector math that I didn't
have when starting out. It did take me quite a while to really understand
the concept of vectors in general (more specifically, what values POV
itself generates, in such operations as TRACE.) Since the three values
making up a typical vector can be anywhere from 0 to 1 (and of course
beyond), my own thinking was that there was no way  to know (without a fair
amount of experimentation and screwups) if trace was creating very SMALL
<x,y,z> values, very large ones, or in fact WHAT the values could be. (If
the values are all scaled equally, the vector DIRECTION remains the same.)
When writing code (especially as a beginner), there are far too many things
that can go wrong (erroneous thinking, bad concepts, typos) to have to
"guess" at POV's workings.  I can't say I assumed (or would assume even
now) that trace would automatically return values that would "create" a
unit length.  Perhaps the more mathematically-minded POV users would... but
how do beginners know that? (I've come to understand--guess?-- that trace
must include a vnormalize function within itself to do this.)

Not to say that those starting out in POV need to be completely spoon fed!
But, let's be honest, many of the tutorials and explanations in the POV
docs seem to assume a rather deep mathematical knowledge from the get-go.
(Perhaps an indication of its lineage?) No doubt, the many tutorial
websites devoted to "explaining" things in POV reflect this. Yes, yes, I
agree that POV intrinsically works WITH math...but it need not have such a
steep learning curve, IMO.

Note that I posted my own code (and discussion) in the New Users forum, in
order to try and make life a little easier for beginners. I did assume that
more advanced users would already know about all this.


Post a reply to this message

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