POV-Ray : Newsgroups : povray.documentation.inbuilt : SOR documentation : Re: SOR documentation Server Time
28 Aug 2025 16:25:24 EDT (-0400)
  Re: SOR documentation  
From: Bald Eagle
Date: 13 Aug 2025 09:20:00
Message: <web.689c9020251da1bcbc0c1c5925979125@news.povray.org>
So where my confusion lies is with the following:

The documentation says,
"The coefficients A(j), B(j), C(j) and D(j) are calculated for every segment
using the equation"
and then immediately gives "b = M * x".


b is a column vector, M is a matrix, and then x is a column vector of the
coefficients that we're supposed to be calculating as implied by that initial
sentence.

The best I have been able to do in terms of trying to work this out and make any
sense of it is:

if b = M * x, and x is the column vector of coefficients, then x = b/M.

So, why start off with how to calculate b, if b is already given in the next
line, and why express it that way if what you actually want to say is that x =
b/M?

The next problem is that M has values that are hard-coded as zeroes, which would
lead to division by zero in every instance, and if a control point leads to any
of the terms of the matrix evaluating to zero, then the same problem occurs.

Finally, it seems that the h's in the b and M calculations are the actual
geometric heights of the control points, whereas the h's in the equation r^2 =
f(h) = A*h^3 + B*h^2 + C*h + D are the values of an interpolant along a single
segment. (otherwise with multiple control points, which of the h's get used? and
which control points get used, if the discussion that immediately follows states
that the function is divided up into separate segments?

Also, I see no "interpolation" happening between point J and point (j+1).

If I am in error, hopefully someone can show me where I missed or misinterpreted
something.

The source code (
https://github.com/POV-Ray/povray/blob/master/source/core/shape/sor.cpp )
states that

*  Ideas for the surface of revolution were taken from:
*
*    P. Burger and D. Gillies, "Rapid Ray Tracing of General Surfaces
*    of Revolution", New Advances in Computer Graphics, Proceedings
*    of CG International '89, R. A. Earnshaw, B. Wyvill (Eds.),
*    Springer, ..., pp. 523-531

and try as I might, I have not been able to find a readable copy of this 1989
paper, nor have had enough time to try and puzzle out the source code to work
backwards.

- BE


Post a reply to this message

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