POV-Ray : Newsgroups : povray.general : Journal article request(s) : Re: Journal article request(s) Server Time
15 Nov 2025 05:37:52 EST (-0500)
  Re: Journal article request(s)  
From: Bald Eagle
Date: 13 Nov 2025 18:15:00
Message: <web.691665c4e0cbc26c1f9dae3025979125@news.povray.org>
"jr" <cre### [at] gmailcom> wrote:

> if it helps, the early sources up to v3.62 are available via FTP:
> <ftp.povray.org/pub/povray/Old-Versions>

It did.
In version 3.1d, 1998, in file NORMAL.C, created 6/3/1998 at 7:05 pm,


static CONST
VECTOR Pyramid_Vect [4]= {{ 0.942809041,-0.333333333, 0.0},
                          {-0.471404521,-0.333333333, 0.816496581},
                          {-0.471404521,-0.333333333,-0.816496581},
                          { 0.0        , 1.0        , 0.0}};

first appears, with no author cited except for "The POV Team".

No citation, no author, no comments, just magic numbers.

It is then implemented in the function

void Perturb_Normal(VECTOR Layer_Normal, TNORMAL *Tnormal, VECTOR  EPoint)

with the following comment:

/* Note, even though DELTA and Pyramid_Vect are constants, we may later
   make DELTA a user-defined parameter.  Good optimising compilers
   should merge the constants anyway. */




I was able to dig back in the literature to an article by Gallagher et al from
1962 concerning Finite Element Analysis (FEM) which is the earliest that I was
able to find documenting this method of calculating a gradient with sample
points arranged in a tetrahedron.

The method used in our source has a vector pointing in the cardinal y-direction,
which could possibly introduce bias that might not be present when using all
off-axis vectors.

- BE


Post a reply to this message

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