|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
For those who have followed my recent bug-reports
about vanishing objects, focal-blur etc, I've posted
a minimum scene-file in beta-test.binaries.
I've tracked the bug down to a
vnormalize(<0,0,0>) used as a translation.
--
Tim Nikias
Homepage: http://www.digitaltwilight.de/no_lights/index.html
Email: Tim### [at] gmxde
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
in news:3CBB230A.1E027FE2@gmx.de Tim Nikias wrote:
> I've tracked the bug down to a
> vnormalize(<0,0,0>) used as a translation.
>
From the doc:
vnormalize(A) Normalize vector A. Returns a unit length vector that is the
same direction as A. Formula is vnormalize(A)=A/vlength(A).
vnormalize(<0,0,0>) will not give a usefull result
^^^^^^^^^^^^^^^^^^^^^^^^^
Ingo
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
That's right, its in the docs. Though I think "not a useful result"
isn't something I'd expect to run loose on the entire
scene.
Can't a default <0,1,0>, or better
(because we're dealing with a <0,0,0> vector) a
<0,0,0> be returned instead of some haywire?
Also, I didn't know that the reason for all this was
this vnormalize-issue, I thought it had something to
do with macros, because thats when it popped up
first with my Particle-System, and then with the
Gerbera.
ingo wrote:
>
> From the doc:
>
> vnormalize(A) Normalize vector A. Returns a unit length vector that is the
> same direction as A. Formula is vnormalize(A)=A/vlength(A).
> vnormalize(<0,0,0>) will not give a usefull result
> ^^^^^^^^^^^^^^^^^^^^^^^^^
> Ingo
--
Tim Nikias
Homepage: http://www.digitaltwilight.de/no_lights/index.html
Email: Tim### [at] gmxde
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
in news:3C92D851.CC58115B@gmx.de Tim Nikias wrote:
> That's right, its in the docs. Though I think "not a useful result"
> isn't something I'd expect to run loose on the entire
> scene.
I'll see what I can changein the text.
> Can't a default <0,1,0>, or better
> (because we're dealing with a <0,0,0> vector) a
><0,0,0> be returned instead of some haywire?
I would prefer an error. While making mesh generation macros I've been
bitten by this often. Investigation always showed that I did something
wrong in my code with the result of a <0,0,0> vector. It always took a
while to find the problems because POV-Ray just goes on parsing after a
vnormalize(<0,0,0>).
> Also, I didn't know that the reason for all this was
> this vnormalize-issue, I thought it had something to
> do with macros, because thats when it popped up
> first with my Particle-System, and then with the
> Gerbera.
>
Shows the importance of reducing the scene as much as possible ;)
Ingo
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
How about returning <0,0,0> as value AND giving
a warning-message? As long as that vector is needed
for translation, an error might be fine, but in certain
cases, in certain POV-SDL-Code, you might do
thousands of calculations with vnormalize(), but only
one (due to some random input) may result with
vnormalize(<0,0,0>).
So, at least programming would be made easy.
Of course, the solution would be a macro, purposefully
named
VNormalize ( Vector ), which checks the length of the
vector (using vlength()), and if its !=0, you normalize,
otherwise, return a preffered value e.g. <0,0,0> or <0,1,0>.
That's what I'll probably do, because I believe this
bug is similiar to that strange pow() behaviour, and it may
be impossible and very inefficient to check for the
vnormalize(<0,0,0>) in POV itself (I think there a lot
of things which are done by POV because of inefficiency).
And regarding "reducing" the scene:
How about putting a section in the Docs which simply
state a list of "probably unexpected behaviour", which
cover pow(), vnormalize(), and I don't know what else
pops up? Just than one can check easily and fast.
ingo wrote something like:
> I would prefer an error. While making mesh generation macros I've been
> bitten by this often. Investigation always showed that I did something
> wrong in my code with the result of a <0,0,0> vector. It always took a
> while to find the problems because POV-Ray just goes on parsing after a
> vnormalize(<0,0,0>).
>
--
Tim Nikias
Homepage: http://www.digitaltwilight.de/no_lights/index.html
Email: Tim### [at] gmxde
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <Xns### [at] povrayorg> , ingo <ing### [at] homenl>
wrote:
> From the doc:
>
> vnormalize(A) Normalize vector A. Returns a unit length vector that is the
> same direction as A. Formula is vnormalize(A)=A/vlength(A).
> vnormalize(<0,0,0>) will not give a usefull result
It will be an error in the next beta.
Thorsten
____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trfde
Visit POV-Ray on the web: http://mac.povray.org
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|