RENDERING (COMPLEX) ALGEBRAIC SURFACES
´
ıa
Departament of Computer Archictecture and Electronic
University of Almeria
Ctra Sacramento s/n, 04120, Almeria (Spain)
Keywords:
Geometric computing, Roots of complex polynomials, Interval arithmetic, Rendering complex space, Ray
tracing.
Abstract:
The traditional ray-tracing technique based on a ray-surface intersection is reduced to a surface-surface in-
tersection problem. At the core of every ray-tracing program is the fundamental question of detecting the
intersecting point(s) of a ray and a surface. Usually, these applications involve computation and manipulation
of non-linear algebraic primitives, where these primitives are represented using real numbers and polynomial
equations. But the fast algorithms used for real polynomial surfaces are not useful to render complex polyno-
mials. In this paper, we propose to extend the traditional ray-tracing technique to detect the intersecting points
of a ray and complex polynomials. Each polynomial equation with some complex coefﬁcients are called
complex polynomials. We use a root ﬁnder algorithm based on interval arithmetic which computes veriﬁed
enclosures of the roots of a complex polynomial by enclosing the zeros in narrow bounds. We also propose a
new procedure to render real o r complex polynomials in the real and the complex space. If we want to render
a surface in the complex space, the algorithm must detect all real and complex roots. The color of a pixel will
be calculated with those roots with an argument inside a selected complex space and minimum magnitude of
the complex roots.
1 INTRODUCTION
The ray tracing technique has captured its place as
an extremely valuable tool in generating photoreal-
istic synthetic imagery. Ray tracing has been inten-
sively and successfully employed to emulate specular
reﬂections and/or refractions, as well as to delineate
illuminated regions from those in shadow.
In ray tracing, a ray is deﬁned as the set of points:
R =
(
x = a
x
+ t · V
x
;
y = a
y
+ t · V
y
;
z = a
z
+ t · V
z
;
)
(1)
where (a
x
, a
y
, a
z
) is the viewpoint of the scene, and
(V
x
, V
y
, V
z
) is the unit vector deﬁning the direction
of the ray. Intersections between R and a polynomial
surface deﬁned by f(x, y, z), is given by the set of
points in f(x, y, z) R, such that:
f(x, y, z) = f(a
x
+tV
x
, a
y
+tV
y
, a
z
+tV
z
) = 0 (2)
This work has been partially supported by the Ministry
of Education and Science of Spain through grants TIC2002-
00228 and TIN2005-00447
If f(s(t)) 6= 0; t 0 then f(x, y, z) R = and
there is no intersection between the surface and the
ray. In the case where there exist one or more values
of t (t
0
, t
1
, . . . ; t
i
0) for which f(s(t
i
)) = 0, then
the point to visualize on the screen corresponds to the
smallest value of t
i
.
Polynomials form a fundamental class of mathe-
matical objects with diverse scientiﬁc applications.
According to the Fundamental Theorem of Algebra,
a polynomial of degree n, with real or complex coef-
ﬁcients, has n zeros (roots) which may or may not
be distinct. The task of computing accurate zeros
of polynomials has been one of the most inﬂuential
problem in the development of several important ar-
eas in mathematics.
Computer graphics can help to visualize complex
polynomials. An good example is the visualiza-
tion software developed by Bahman Kalantari, called
polynomiography. For a given polynomial equation,
the computer applies a speciﬁc root-ﬁnding method
to a large number of zeros (z). For each initial value,
the computer determines toward which root that value
converges and assigns a colour to the point, a differ-
139
´
cıa I. (2006).
RENDERING (COMPLEX) ALGEBRAIC SURFACES.
In Proceedings of the First International Conference on Computer Vision Theory and Applications, pages 139-146
DOI: 10.5220/0001369901390146
c
SciTePress
ent colour for each root. Shades of colour indicate
how fast that point comes close to the root (Kalantari,
2004).
In this work, we propose to extend the original
ray tracing technique to complex space. Unfortu-
nately, contemporary methods for ray-tracing polyno-
mial surfaces work with real number. So it is neces-
sary to design and implement a root ﬁnder algorithm
that works with complex number.
This paper is organized as follows. Section 2
presents the algorithm to ﬁnd roots of complex poly-
nomial. This algorithm uses an iterative scheme that
starts with an initial approximation of all the roots,
reﬁnes them and updates the error bound. Section 3
shows some improvements to exploit the spatial co-
herence and so to speed up the root ﬁnder algorithm.
Section 4 describes how to include these improve-
ments in ray tracing technique to render polynomial
surfaces in the complex space. Finally, several ex-
amples of real and complex polynomials rendered in
complex space are shown in Section 5.
2 ZEROS OF COMPLEX
POLYNOMIALS
In this paper, we apply the algorithm proposed in
(Hammer et al., 1995) to ﬁnd a single root of the inter-
section between a complex polynomical surface and
a ray. This algorithm is based on the fact that the
roots of the complex polynomial of degree n match
the eigenvalues of the companion matrix:
A =
0 · · · 0
p
0
p
n
1
p
1
p
n
.
.
.
.
.
.
1
p
n1
p
n
(3)
Hammer showed a formulation of the Newton itera-
tion to solve the eigenvalue problem with
g
q
z
= R · d + R ·
z
·
q
0
+
(I R · J
f
) ·
q
z
(4)
where matrix R is the inverse of the Jacobian matrix
(J
f
),
q
is the residual value of coefﬁcients of com-
plex polynomial,
z
is the residual value of the eigen-
values, and
d = (A ˜z · I) ·
˜q
p
n
(5)
where I is the identity matrix of dimension n, ˜q is an
approximation of the coefﬁcients of the deﬂated poly-
nomial and ˜z is an approximation of the exact root of
the complex polynomial p(z).
p(z) =
n
X
i=0
p
i
· z
i
, p
i
C (6)
This algorithm is structured in two parts: the Ap-
proximation and the IntervalIteration.
2.1 Approximation Algorithm
First, the Approximation algorithm improves an ini-
tial approximation ˜z of a root of a complex polyno-
mial p(z) =
P
n
i=0
p
i
· z
i
. Approximation works by
transforming the original problem to the equivalent
problem of ﬁnding an eigenvalue and its correspond-
ing eigenvector for the companion matrix A of Equa-
tion (3).
It improves the approximations of a root and the co-
efﬁcients of the corresponding deﬂacted polynomial
to avoid overestimation during the ﬂoating-point in-
terval calculations. Approximation uses a residual it-
eration method to improve the initial approximation
of a root until the accuracy requirement of IntervalIt-
eration is achieved. No guarantee for the correctness
of the approximation computed by Approximation is
claimed.
In the following algorithm, the iteration
(k+1)
= g(∆
(k)
) is done directly using some
loops that are equivalent to Equation (4).
Approximation(p, ˜z)
1. Termination criteria: = 10
10
; k
max
= 50
2. Determination of an approximate eigenvector ˜q for
the initial polynomial zero ˜z
˜q
n1
= p
n
˜q
i
= ˜q
i+1
· z + p
i+1
; for i = n 2 to 0
3. Floating-point iteration of an eigenvalue ˜z and an
eigenvector ˜q
k = 0
(a) repeat
i. Compute the deﬂect d = (A ˜z · I) · ˜q
d
0
= (˜z · ˜q
0
p
0
)
d
i
= (˜q
i1
˜z · ˜q
i
p
i
); for i = 1 to n 1
ii. Compute the components of R, the inverse of
the Jacobian J
f
w
n1
= ˜q
n1
w
i
= (˜q
i
+ ˜z · w
i+1
); for i = n 2 to 0
if w
0
= 0 then Err=”Inversion failed”
iii. Compute
(k+1)
= g(∆
(k)
)
k+1
n1
= d
n1
(k+1)
i
= d
i
+ ˜z ·
(k+1)
i+1
; for i = n 2 to 0
t =
(k+1)
0
/w
0
(k+1)
i
=
(k+1)
i+1
+ t · w
i+1
; for i = 0 to
VISAPP 2006 - IMAGE FORMATION AND PROCESSING
140
n 2
(k+1)
n1
= t
iv. Update ˜q and ˜z
˜q
i
= ˜q
i
+
(k+1)
i
; for i = 0 to n 2
˜z = ˜z +
(k+1)
n1
v. k = k + 1
(b) until
||||
max(||(
˜
(q )
n2
i=0
||
,|˜z|)
or (k = k
max
)
4. Return ˜q, ˜z, Err
We use k
max
= 50 as the maximum number of
iterations, and = 10
10
as the value for the rela-
tive error. If the condition number of the inverse R is
extremely large, then the convergence of the residual
iteration is slow. To avoid the possibility of an un-
bounded number of iterations at step 3, we halt after
k
max
iterations. It turned out that k
max
and are good
values for minimizing the effort to get sufﬁciently ac-
curate approximations of ˜z and ˜q.
2.2 Interval Iteration Algorithm
The algorithm IntervalIteration computes a veriﬁed
enclosure of a root of a complex polynomial using
an interval iteration. Starting with good approx-
imations ˜z for a root of the complex polynomial
p(z) and ˜q for the coefﬁcients of the deﬂated
polynomial q(z) =
p(z)
z˜z
, a veriﬁcation strategy
based on Schauder’s ﬁxed-point theorem is used to
determine (if possible) a guaranteed enclosure of a
polynomial root z
(Granas and Dugundji, 2004) and
guaranteed enclosures of the coefﬁcients of the
deﬂated polynomial q
(z) =
p(z)
zz
are returned.
IntervalIteration(p, ˜z)
1. Computation of the interval evaluation
(a) Compute an enclosure of d (Eq. (5))
[d]
0
= (˜z · ˜q
0
p
0
)
[d]
i
= (˜q
i1
˜z · ˜q
i
p
i
); for i = 1 to n 1
(b) Compute an enclosure of [R], the inverse of the
Jacobian J
f
[w]
n1
= ˜q
n1
[w]
i
= (˜q
i
+ ˜z · [w]
i+1
); for i = n 2 to 0
if 0 [w]
0
then Err=”Veriﬁed enclosure failed”
(c) Compute enclosures of
(0)
q
and
(0)
z
[∆]
(0)
n1
= d
n1
[∆]
(0)
i
= [d]
i
+ ˜z · [∆]
(0)
i+1
; for i = n 2 to 0
[t] = [∆]
(0)
0
/[w]
0
[∆]
(0)
i
= [∆]
(0)
i+1
+ [t] · [w]
i+1
; for i = 0 to
n 2 [∆]
(0)
n1
= [t]
2. Interval iteration
k = 0; = 10
1
; k
max
= 10
(a) Repeat
i. Slightly enlarge the enclosure interval
[∆]
(k)
= [∆]
(k)
ii. Determine a new enclosure interval of (4)
[v]
n1
= 0
[v]
i
= ([∆]
(k)
n1
·[∆]
(k)
i
+˜z·[v]
i+1
); for i = n2
to 0
[v]
0
=
[v ]
0
[w]
0
[∆]
(k+1)
i
= ([∆]
(0)
i
+ [v]
i+1
[v]
0
· [w]
i+1
) for
i = 0 to n 2
[∆]
(k+1)
n1
= [∆]
(0)
n1
[v]
0
iii. k = k + 1
(b) until ([∆]
(k)
[∆]
(k1)
) or (k = k
max
)
3. Veriﬁcation of the result
if ([∆]
(k)
[∆]
(k1)
) then
[q]
i
= (˜q
i
+ [∆]
(k)
i
); for i = 0 to n 2
[q]
n1
= p
n
[z] = (˜z + [∆]
(k)
n1
)
else Err=”Inclusion failed”
4. Return [q], [z], Err
We use k
max
= 10 as the maximum number of
iterations, and = 0.1 as the value for the epsilon
inﬂation. It turned out that these are good values for
minimizing the effort if no veriﬁcation is possible.
2.3 CAllPolyZero Algorithm
Hammer et al. designed an algorithm for ﬁnding a sin-
gle complex root (CPolyZero) which uses algorithms
Approximation and IntervalIteration (Hammer et al.,
1995). Because of our interest in ﬁnding all the com-
plex and real roots of polynomial, we have designed a
new algorithm called CAllPolyZero. By repeating the
deﬂation of a veriﬁed zero from the reduced polyno-
mial pdef lated[q], the approximation of a new zero
in the reduced polynomial and the veriﬁcation of the
new zero in the original polynomial, we get all simple
zeros of the polynomial. The new deﬂated polyno-
mial is computed by the algorithm IntervalIteration
based on the current value of [q]. For approximating a
new zero, the deﬂated polynomial pdeflated is used.
The veriﬁcation of the new zero is done in the orig-
inal polynomial p because zeros of the approximate
deﬂated polynomial are smeared out because [q] has
interval-valued coefﬁcients, while p has point-valued
coefﬁcients.
AllCPolyZeros(p, ˜z)
1. pdeflated = p
2. for i = 1 to n 1 do veriﬁcation of a new zero
(a) Approximate a new zero of pdeﬂated:
Approximate(pdeflated, ˜z)
RENDERING (COMPLEX) ALGEBRAIC SURFACES
141
(b) Verify the new zero for p
(c) Deﬂate veriﬁed zero from pdeflated
This algorithm ﬁnds all roots of complex and real
polynomials. If AllCPolyZeros algorithm works with
a real polynomial (imaginary part of each coefﬁcient
is zero) and a real initial approximation of ˜z R, it
will never get enclosures of a pair of conjugate com-
plex zeros of p(z), because all complex arithmetic op-
erations deliver a real result. However, for ﬁnding
a complex conjugate zero of a real polynomial, All-
tial approximation ˜z.
3 SPATIAL COHERENCE
In this section, some improvements to speed up of
CAllPolyZero algorithm are shown. This algorithm
needs an initial approximation ˜z to start the process.
If this parameter is near to the exact root then it is nec-
essary a few number of iterations. This means that is
necessary to supply a good initial approximation ˜z to
reduce the algorithm execution time.
Numerous optimization methods for ray tracing
have been suggested since it was ﬁrst introduced
(Whitted, 1980). Many have suggested the exploita-
tion of spatial coherence (Glassner, 1989). Once a
single ray has been processed, a ray emitted for a
nearby pixel at a similar direction will hit, most likely,
a nearby target. We propose to exploit spatial coher-
ence, so that if a primary ray hit a surface in pixel
(j, k), it is very probable that the primary rays of
neighboring pixels hit the same object. These neigh-
boring pixels are (j1, k1), (j, k1), (j+1, k1),
(j 1, k), (j + 1, k), (j 1, k + 1), (j, k + 1) and
(j + 1, k + 1).
In order to ﬁnd the initial approximation of the root
associated to pixel (j, k), we propose to choose the
average value of the roots in the neighboring pixels.
Following, we show how to compute this average ini-
tial approximation ˜z for pixel (j, k):
1. CAllPolyZero only can use the roots associated to
pixels: (j 1, k 1), (j, k 1), (j + 1, k 1) and
(j 1, k). Notice that the roots associated to the
remaining neighboring pixels have not been com-
puted yet.
2. If a primary ray does not hit an object in a neighbor-
ing pixel, then this pixel is not used in this average.
3. If every primary rays of neighboring pixels does
not hit an object then the initial approximation ˜z is
0 + i.
4. If several primary rays of neighboring pixels hit
some objects:
(a) If the primary rays hit the same object, we cal-
culate only a single average value of the initial
approximation.
(b) If the primary rays hit several objects, several
average values of the initial approximations are
computed, one for each object.
4 RAY TRACING IN COMPLEX
SPACE
The previous sections describes our general algorithm
for computing all roots of a polynomial, and compu-
tations are done in the complex space. In this section,
we will brieﬂy describe the technique used to com-
pute the colour of each pixel in an image rendered
by ray tracing techniques. The traditional ray tracing
uses the minimum positive root to assign the colour of
a pixel in real space. A complex number z = x + i · y
can be represented in complex space, like ρ · e
i·θ
, the
magnitude represents its modulus ρ and the angle θ its
complex argument (see Figure 1).
Figure 1: Sampling complex space.
In our algorithm the selected root is that with the
minimum magnitude and with its complex argument
θ in a selected range given by σ θ σ + δ. The
selected root will determine the ﬁnal colour of a pixel.
This means that the rendering process is guided not
only by the magnitude of the roots but also it can play
with their complex arguments. This algorithm will
allow to sample the complex space, so that different
images can be obtained by choosing the interval angle
[σ, σ + δ] (see Figure 1). For example, for rendering
a scene in the real space, σ = 0 and δ = 10
10
are
appropriate values. However, for σ = 0.1 and δ =
π
4
,
the selected roots belong to the complex space with
angles between 0.1 θ 0.1 +
π
4
and their complex
VISAPP 2006 - IMAGE FORMATION AND PROCESSING
142
conjugate 0.1
π
4
θ 0.1. In this case, the
real roots are not included in the search space.
This procedure allows us to render three-
dimensional complex algebraic surfaces in the
complex space with an angle bounded. For rendering
all complex space using ray tracing, we can sample
all space with different values of δ and σ. Due to the
symmetry of the conjugate complex roots, it is only
necessary to sample the complex space determined
by σ 0 and σ + δ π .
When we render a scene deﬁned by complex alge-
braic surfaces, we can use a maximum δ value equal
to π (and σ = 0). The result is that we obtain a large
amount of roots associated to the same pixel because
we are dealing with the full complex space. Our pro-
posal consists of sampling the complex space with a
narrow aperture angle; i.e. small values of δ. This
method allows us to generate an animated sequence
of images, each corresponding to a different value of
δ. The animated sequence of images gives an interest-
ing information about the distribution of roots in the
complex space.
5 EXPERIMENTATION
We use the C-XSC library, a C++ class library for eX-
tended Scientiﬁc Computing, to implement the pro-
posed algorithm. Its wide range of numerical data
types, operators and functions for scientiﬁc compu-
tation makes C-XSC especially well suited as a speci-
ﬁcation language for programming with automatic re-
sult veriﬁcation.
The automatic veriﬁcation of the numerical results
is based on interval arithmetic. The easiest technique
for computing veriﬁed numerical results is to replace
any real or complex operation by its interval equiva-
lent and then to perform the computations using in-
terval arithmetic. This procedure leads to reliable and
veriﬁed results. However, the diameter of the com-
puted enclosures can be as wide as to be practically
useless. We have applied the principle of iterative re-
ﬁnement (IntervalIteration) to our algorithm, which
will allow us to compute an interval error less than a
desired accuracy. The veriﬁed enclosure of the solu-
tion is given by the approximation of the root and the
enclosure of its error.
In order to observe the performance of our algo-
rithm, we have used a set of polynomials with more
than twenty different polynomials. However, in this
paper, we only show six interesting polynomials due
to space limitations (see Table 1).
The CAllPolyZero algorithm needs the coefﬁcients
of polynomial obtained by Equation (2) to transform
f(x, y, z) in an univariate polynomial f(t). So that,
the sphere polynomial is p
2
· t
2
+ p
1
· t + p
0
, while the
Table 1: Polinomial surfaces.
Surface Polynomial equation f(x, y, z)
Sphere x
2
+ y
2
+ z
2
1
Whitney x
2
· z + y
2
Steiner x
2
· y
2
+ x
2
· z
2
+ x · y · z + y
2
· z
2
Chair x
4
1.2 · x
2
· y
2
+ 3.6 · x
2
· z
2
+
16 · x
2
· z 7.5 · x
2
+ y
4
+
3.6 · y
2
· z
2
16 · y
2
· z
7.5 · y
2
0.2 · z
4
7.5 · z
2
+ 64.0625
Tangle x
4
5 · x
2
+ y
4
5 · y
2
+ z
4
5 · z
2
+ 11.8
Boy 729 · x
6
+ 1374.6156 · x
5
· z
2187 · x
4
· y
2
810 · x
4
· z
2
+ 324 · x
4
· z
2749.23 · x
3
· y
2
· z 305.47 · x
3
· z
3
2187 · x
2
· y
4
1620 · x
2
· y
2
· z
2
+
648 · x
2
· y
2
· z + 1832.82 · x
2
· y · z
3
1832.82 · x
2
· y · z
2
+ 324 · x
2
· z
4
144 · x
2
· z
2
4123.85 · x · y
4
· z+
916.41 · x · y
2
· z
3
729 · y
6
810 · y
4
· z
2
+ 324 · y
4
· z 610.94 · y
3
· z
3
+
610.94 · y
3
· z
2
+ 324 · y
2
· z
4
144 · y
2
· z
2
216 · y + 432 · z
6
288 · z
5
+
64 · z
4
Whiney polynomial is p
3
· t
3
+ p
2
· t
2
+ p
1
· t + p
0
and
p
4
·t
4
+p
3
·t
3
+p
2
·t
2
+p
1
·t+p
0
for Bicube, Steiner,
Chair and Tangle polynomials. Finally, the degree of
Boy polynomial is six, like p
6
· t
6
+ p
5
· t
5
+ p
4
· t
4
+
p
3
· t
3
+ p
2
· t
2
+ p
1
· t + p
0
.
Figures 3 and 4 show a sphere where only p
0
is
a complex coefﬁcient. Both images are different be-
cause the ﬁrst one was rendered for σ = 0 and
δ =
π
18
, while δ =
7·π
18
in the second one. It is im-
portant to see how the complex roots transform a real
sphere (see Figure 2) in a sphere with special effects.
These effects can modify the texture, size and illumi-
nation of the surface.
The Tangle polynomial was rendered in real (see
Figure 2: Sphere polynomial where all coefﬁcients are real
numbers. This image was rendered in real space for σ = 0
and δ = 0.
RENDERING (COMPLEX) ALGEBRAIC SURFACES
143
Figure 3: Sphere polynomial where p
0
is a complex coefﬁ-
cient. This image was rendered in complex space for σ = 0
and δ =
π
18
.
Figure 4: Sphere polynomial where p
0
is a complex coefﬁ-
cient. This image was rendered in complex space for σ = 0
and δ =
7·π
18
.
Figure 5) and complex space. The images rendered
in complex space were represented by p
0
(see Fig-
ure 6) and p
2
(see Figure 7) as complex coefﬁcient.
All these images show big differences. On one hand,
same pieces of real surface disappear in the complex
space, as shown in Figure 6. On the other hand, it
is very interesting to highlight the shadows appearing
on the Tangle surface (see Figure 7).
Figure 9 shows the Whitney polynomial rendered
in the complex space for σ = 0 and δ =
π
18
. When
p
0
is a complex coefﬁcient then some shadows ap-
pear on the image. These shadows are very different
from Whitney polynomial rendered in real space (see
Figure 8). However, a new piece of surface around
imaginary axis of Whitney surface appears when we
sample the complex space between 0 and
π
18
.
The following sequence of images for Steiner sur-
face is very interesting. The complex roots of this
surface do not cover the object, but they are located
around three ”imaginary” axes of surfaces. For exam-
Figure 5: Tangle polynomial where all coefﬁcients are real
numbers. This image was rendered in real space for σ = 0
and δ = 0.
Figure 6: Tangle polynomial where p
0
is a complex coefﬁ-
cient. This image was rendered in complex space for σ = 0
and δ =
π
180
.
ple, the Steiner surface shows the three axes which ap-
pear in the complex space (see Figure 10). It is impor-
tant to show that this sequence is obtained sampling
the complex space, so that this allow us to analyse the
evolution of the complex roots for the Steiner surface.
Finally, we have rendered a sequence of images for
the Boy surface (see Figure 11). This sequence begins
with a representation of the Boy surface with all co-
efﬁcients in real space and rendered in the real space.
Later the Boy surface with p
0
, p
1
, p
2
, p
3
and p
4
as
complex coefﬁcients were rendered in complex space.
This example shows how the surface is disappearing
around the real axis of complex space when the co-
efﬁcient higher is a complex number. In this case,
the Boy surface completely disappear around real axis
when p
5
or p
6
are complex coefﬁcients. That means
that complex roots for these coefﬁcients are far from
real axis.
VISAPP 2006 - IMAGE FORMATION AND PROCESSING
144
Figure 7: Tangle polynomial where p
2
is a complex coefﬁ-
cient. This image was rendered in complex space for σ = 0
and δ =
π
18
.
Figure 8: Whitney polynomial where all coefﬁcients are
real numbers. This image was rendered in real space for
σ = 0 and δ = 0.
6 CONCLUSION
We have designed and implemented a complex root
ﬁnder algorithm to render complex polynomial sur-
faces in complex space. For this problem, it is not
possible to use the Sturm sequences of a complex
polynomial as a root ﬁnder algorithm. This is due to
some of the polynomial coefﬁcients are complex and
additionally we are interested in the complex roots of
the intersection. We solve this problem as an eigen-
value problem, where we have used the polynomial
root ﬁnding algorithm proposed by Hammer with
some additional extras. On the one hand, we have
solved the problem of distinguishing zeros which are
very close one to each other with high accuracy. On
the other hand, we have extended this algorithm to
ﬁnd all the complex roots associated to each pixel of
the rendered image.
Finally, we have proposed a new procedure to ren-
der images with a ray tracing technique in the com-
Figure 9: Whitney polynomial where p
0
is a complex co-
efﬁcient. This image was rendered in complex space f or
σ = 0 and δ =
π
18
.
plex space. This technique allows us to build a se-
quences of images from which we can analyse the
evolution of the complex roots of several complex
and real polynomial surfaces in a three-dimensional
space. The typical effects of rendering real surfaces
such as reﬂection, refraction or translucent can also
be applied to rendering complex algebraic surfaces.
REFERENCES
Glassner, A. (1989). An Introdu ction to Ray Tracing. Aca-
demic Press, Boston.
Granas, A. and Dugundji, J. (2004). Fixed point the-
ory. Bulletin of the American Mathematical Society,
41(2):267–271.
Hammer, R., Hocks, M., Kulisch, U., and Ratz, D. (1995).
C++ Toolbox for Veriﬁed Computing I: Basic Numer-
ical Problems: Theory, Algorithms, and Programs.
Springer-Verlag, Berlin.
Jimenez-Melado, A. and Morales., C. (2005). Fixed point
theorems under the interior condition. Procceding of
the American Mathematical Society, 134(2):501–507.
Kalantari, B. (2004). Polynomiography and applications in
art, education, and science. Computers & Graphics,
28(3):417–430.
Whitted, T. (1980). An improved illumination model for
RENDERING (COMPLEX) ALGEBRAIC SURFACES
145
Figure 10: From up-left to down-right, Steiner surface with all real coefﬁcients are shown, obtained using the following δ
values: 0,
π
180
,
π
90
,
π
60
,
π
45
and
π
36
. All Steiner surfaces are rendering for σ = 0.
Figure 11: From up-left to down-right, Boy surface are shown: A Boy surface with all real coefﬁcients was rendered in real
space for σ = 0 and δ = 0 in ﬁrst image. The others images show a boy surface with a complex coefﬁcient in
complex space for σ = 0 and δ =
π
18
. The evolution of these complex coefﬁcients was p
0
(second image), p
1
(third image), p
2
(fourth image), p
3
(ﬁfth image) and p
4
(sixth image).
VISAPP 2006 - IMAGE FORMATION AND PROCESSING
146