technical notes for the raytracing of toroidal surfaces
TRANSCRIPT
Johannes StΓΆrkle, 2020-03-18 1
Technical Notes for the Raytracing of Toroidal Surfaces
Table of Contents Technical Notes for the Raytracing of Toroidal Surfaces ............................................................................... 1
Introduction ................................................................................................................................................. 2
Toroidal Surface Description ....................................................................................................................... 3
Range of x & y for Solutions at Real Numbers ............................................................................................ 5
Normal Vector of Toroidal Surface .............................................................................................................. 6
Intersection of a Ray and a Torus ............................................................................................................... 8
Special Case: Cylinder Lens ..................................................................................................................... 10
Cylinder-Line Intersection ......................................................................................................................... 10
Parametrical Toroidal Surface Description ................................................................................................ 12
Practical Example with MATLAB ............................................................................................................... 12
Attachement .............................................................................................................................................. 13
Johannes StΓΆrkle, 2020-03-18 2
Introduction In geometry, a torus is a surface of revolution generated by revolving a circle in three-dimensional space
about an axis that is coplanar with the circle.
In optics, a toroidal surface is described with the circle radius ππ₯ and the distance π π¦ to the π¦-axis, known as
the radius of rotation.
According to ZEMAX, the curve in the Y-Z plane is defined by
π§π₯=0 =
1ππ₯π¦2
1 + β1 β (1 + π )1ππ₯2 π¦
2
+ πΌ1π¦2 + πΌ2π¦
4 +β― , (1)
where π is the conic constant with respect to the π¦-direction. However, the complete three-dimensional
formulation is not given in [Zemax11]1. The toroidal surface is shown in Figure 1, whereby the blue curve
indicates the curve given by equation (1).
Figure 1: Toroidal Surface with the circle radius ππ₯ and the radius of rotation π π¦
1 [Zemax11] Zemax: Zemax Optical Design Program - User's Manual. Radiant ZEMAX LLC, 2011.
π π¦
ππ₯
Johannes StΓΆrkle, 2020-03-18 3
Toroidal Surface Description If the radii in the range of 0 β€ ππ₯ β€ π π¦, the toroidal surface in three-dimensional space without a conic
constant can be described with
π§ = π π¦ ββ(π π¦ β ππ₯ + βππ₯2 β π¦2)
2
β π₯2
as given in [Gross05]2. In order to derive the three-dimensional formulation with a conic constant, one can
first regard the curve within the y-z plane (π₯ = 0) it yields
π§ = π π¦ β (π π¦ β ππ₯ + βππ₯2 β π¦2) = ππ₯ ββππ₯
2 β π¦2
The last formulation is similar to the description of a spherical surface π§Sphere = π π β βπ π2 β π2.
Furthermore, the introduction of the conic constant leads to
π§conicSphere =1
1 + π (π π β βπ π
2 β (1 + π )π2) =π2
π π + βπ π2 β (1 + π )π2
=
1π ππ2
1 + β1 β (1 + π )1π π2 π
2
as derived in [Stoerkle18]3. Hereby, π is the radial coordinate and a binominal expansion is used for the
arrangement. The last result has the same structure as the first term in equation (1). Thus, the formulation
of the conic toroidal surface results in analogy
π§ = π π¦ ββ(π π¦ +1
1 + π (βππ₯ + βππ₯
2 β (1 + π )π¦2))
2
β π₯2.
This can be generalized to values of ππ₯ β β and π π¦ β β with
π§ = π π¦ β sign(ππ₯)β(π π¦ +1
1 + π (βππ₯
2 β (1 + π )π¦2 β ππ₯))
2
β π₯2 ,
if |π π¦| β₯ |ππ₯
1 + π | and ππ₯ β₯ 0 , or |π π¦| β€ |
ππ₯1 + π
| and ππ₯ β€ 0
(2)
and
π§ = π π¦ β sign(ππ₯)β(π π¦ +1
1 + π (ββππ₯
2 β (1 + π )π¦2 β ππ₯))
2
β π₯2
if |π π¦| < |ππ₯
1 + π | and ππ₯ > 0 , or |π π¦| > |
ππ₯1 + π
| and ππ₯ < 0 .
(3)
In order to keep the vertex at the origin, i.e. π§(0,0) = 0, a constant π§-shift must be applied. This can be
formulated for the following cases,
If π π¦ β₯ππ₯
1+π
If π π¦ππ₯ β₯ 0
π§corr = π§ (4)
2 [Gross05] Gross, H. (Ed.): Handbook of Optical Systems Vol. 1 - Fundamentals of Technical Optics. Weinheim: Wiley-VCH Verlag, 2005. (see also PPT IAP Jena) 3 [Stoerkle18] StΓΆrkle, J.: Dynamic Simulation and Control of Optical Systems. No. 58 in Dissertation, Schriften aus dem Institut fΓΌr Technische und Numerische Mechanik der UniversitΓ€t Stuttgart. Shaker Verlag, Aachen (2018). Shaker Verlag
Johannes StΓΆrkle, 2020-03-18 4
If π π¦ππ₯ < 0
π§corr = π§ β 2π
(5)
If π π¦ <ππ₯
1+π
If π π¦ππ₯ β₯ 0
π§corr = π§ + 2 (ππ₯
1 + π β π ) (6)
If π π¦ππ₯ < 0
π§corr = π§ + 2 (ππ₯
1 + π β π ) β 2π (7)
Johannes StΓΆrkle, 2020-03-18 5
Range of x & y for Solutions at Real Numbers In order to avoid complex results for π§, the range of the π₯- and π¦-coordinates can be limited. Therefore, the
terms under the square roots of to equation (2) are considered. For the term within the inner square root it
results
ππ₯2 β (1 + π )π¦2 β₯ 0
ππ₯2
(1 + π )β₯ π¦2
β|ππ₯|
β1 + π β€ π¦ β€
|ππ₯|
β1 + π
(8)
If π π¦ β 0, the outer square root results with real values for
(π π¦ +1
1 + π (βππ₯
2 β (1 + π )π¦2 β ππ₯))
2
β₯ π₯2
|π π¦ +1
1 + π (βππ₯
2 β (1 + π )π¦2 β ππ₯)| β₯ |π₯|
A more conservative estimation leads to
||π π¦| +1
1 + π (βππ₯
2 β (1 + π )π¦2 β |ππ₯|)| β₯ |π₯|.
Johannes StΓΆrkle, 2020-03-18 6
Normal Vector of Toroidal Surface The surface description given by equation (2) can also be interpreted as a zero-isoplane at the potential
π(π₯, π¦, π§) , which is also called implicit surface representation
π(π₯, π¦, π§) = π π¦ β sign(ππ₯)β(π π¦ +1
1 + π (βππ₯
2 β (1 + π )π¦2 β ππ₯))
2
β π₯2 β π§ = 0
if |π π¦| β₯ |ππ₯
1 + π | and ππ₯ β₯ 0 , or |π π¦| β€ |
ππ₯1 + π
| and ππ₯ β€ 0 .
(9)
Thereby, the gradient is equal to the direction ππ of the unit vector, which is orthogonal
to the surface.
π = grad(π(π₯, π¦, π§)) = [ππ
ππ₯
ππ
ππ¦
ππ
ππ§ ]π
At first, the partial derivative in the π₯-direction leads to
ππ
ππ₯= β
1
2sign(ππ₯)((π π¦ +
1
1 + π (βππ₯
2 β (1 + π )π¦2 β ππ₯))
2
β π₯2)
β12
(β2π₯)
= sign(ππ₯)π₯
β(π π¦ +1
1 + π (βππ₯
2 β (1 + π )π¦2 β ππ₯))
2
β π₯2
= π§π₯ .
Second, the partial derivative in the π¦-direction leads to
ππ
ππ¦= β
1
2sign(ππ₯)
(
(π π¦ +
1
1 + π (βππ₯
2 β (1 + π )π¦2 β ππ₯))
2
β π₯2
β π’(π₯,π¦) )
β12
ππ’1(π₯, π¦)
ππ¦ ,
where
ππ’1(π₯, π¦)
ππ¦= 2 (π π¦ +
1
1 + π (ππ₯2 β (1 + π )π¦2)
12 β
ππ₯1 + π
)ππ’2(π₯, π¦)
ππ¦
and where
ππ’2(π₯, π¦)
ππ¦=
1
2(1 + π )(ππ₯2 β (1 + π )π¦2)β
12 (β2(1 + π )π¦)
As a consequence, it follows
ππ
ππ¦= β
1
2sign(ππ₯)
(
(π π¦ +
1
1 + π (βππ₯
2 β (1 + π )π¦2 β ππ₯))
2
β π₯2
β π’(π₯,π¦) )
β12
β¦
2 (π π¦ +1
1 + π (ππ₯2 β (1 + π )π¦2)
12 β
ππ₯1 + π
)1
2(1 + π )(ππ₯2 β (1 + π )π¦2)β
12 (β2(1 + π )π¦)
= sign(ππ₯)
π¦ (π π¦ +1
1 + π (βππ₯
2 β (1 + π )π¦2 β ππ₯))
βππ₯2 β (1 + π )π¦2 β(π π¦ +
11 + π
(βππ₯2 β (1 + π )π¦2 β ππ₯))
2
β π₯2
= π§π¦
Third, the partial derivative in the π¦-direction results with ππ
ππ§= β1
Johannes StΓΆrkle, 2020-03-18 7
In contrast, the partial derivatives for the cases
if |π π¦| < |ππ₯
1 + π | and ππ₯ > 0 , or |π π¦| > |
ππ₯1 + π
| and ππ₯ < 0
results with ππ
ππ₯= sign(ππ₯)
π₯
β(π π¦ +1
1 + π (ββππ₯
2 β (1 + π )π¦2 β ππ₯))
2
β π₯2
= π§π₯ .
ππ
ππ¦= sign(ππ₯)
π¦ (π π¦ +1
1 + π (ββππ₯
2 β (1 + π )π¦2 β ππ₯))
ββππ₯2 β (1 + π )π¦2 β(π π¦ +
11 + π
(ββππ₯2 β (1 + π )π¦2 β ππ₯))
2
β π₯2
= π§π¦
Finally, the normal unit vector results with
οΏ½ΜοΏ½ =1
β1 + π§π₯2 + π§π¦
2
[
βπ§π₯βπ§π¦1] .
Johannes StΓΆrkle, 2020-03-18 8
Intersection of a Ray and a Torus The intersection of a ray with a surface can be defined by the line
ππ = ππβ1 + πππ πβ1 = [
ππβ1,π₯ππβ1,π¦ππβ1,π§
] + ππ [
ππβ1,π₯ππβ1,π¦ππβ1,π§
], (10)
which starts at the former intersection point (or starting point) ππβ1,by the ray direction π πβ1and the by
distance ππ between the intersection points. During the ray tracing, this unknown distance ππ must be
computed.
The toroidal surface according to equation (2) can be rearranged to
(π§ β π π¦)2= (π π¦ +
1
1 + π (βππ₯
2 β (1 + π )π¦2 β ππ₯))
2
β π₯2
and the line equation (10) can be insert, which leads to
(ππβ1,π§ + ππππβ1,π§ β π π¦)2= (π π¦ +
1
1 + π (βππ₯
2 β (1 + π )(ππβ1,π¦ + ππππβ1,π¦)2 β ππ₯))
2
β (ππβ1,π₯ + ππππβ1,π₯)2
(ππβ1,π§ β π π¦ + ππππβ1,π§)2= (π π¦ +
1
1 + π (βππ₯
2 β (1 + π )(ππβ1,π¦ + ππππβ1,π¦)2β ππ₯))
2
ββ―
(ππβ1,π₯2 + 2ππππβ1,π₯ππβ1,π₯ + ππ
2ππβ1,π₯2 )
((ππβ1,π§ β π π¦)2+ 2ππ(ππβ1,π§ β π π¦)ππβ1,π§ + ππ
2ππβ1,π§2 )
= π π¦2 + 2π π¦
1
1 + π (βππ₯
2 β (1 + π )(ππβ1,π¦ + ππππβ1,π¦)2β ππ₯)
+1
(1 + π )2(βππ₯
2 β (1 + π )(ππβ1,π¦ + ππππβ1,π¦)2β ππ₯)
2
β (ππβ1,π₯2 + 2ππππβ1,π₯ππβ1,π₯ + ππ
2ππβ1,π₯2 )
((ππβ1,π§ β π π¦)2+ 2ππ(ππβ1,π§ β π π¦)ππβ1,π§ + ππ
2ππβ1,π§2 ) + (ππβ1,π₯
2 + 2ππππβ1,π₯ππβ1,π₯ + ππ2ππβ1,π₯
2 )
= π π¦2 β 2π π¦
1
1 + π ππ₯ + 2π π¦
1
1 + π βππ₯
2 β (1 + π )(ππβ1,π¦ + ππππβ1,π¦)2
+1
(1 + π )2(ππ₯
2 β (1 + π )(ππβ1,π¦ + ππππβ1,π¦)2β 2ππ₯βππ₯
2 β (1 + π )(ππβ1,π¦ + ππππβ1,π¦)2+ ππ₯
2)
(ππβ1,π§2 β 2ππβ1,π§π π¦ + π π¦
2 + 2ππ(ππβ1,π§ β π π¦)ππβ1,π§ + ππ2ππβ1,π§
2 ) + (ππβ1,π₯2 + 2ππππβ1,π₯ππβ1,π₯ + ππ
2ππβ1,π₯2 ) β π π¦
2
+ 2π π¦1
1 + π ππ₯ β
1
(1 + π )2(ππ₯2 β (1 + π )(ππβ1,π¦ + ππππβ1,π¦)
2+ ππ₯
2)
= 21
1 + π (π π¦ β
ππ₯1 + π
)βππ₯2 β (1 + π )(ππβ1,π¦ + ππππβ1,π¦)
2
ππ2ππβ1,π₯
2 + ππ2ππβ1,π§
2 + 2ππππβ1,π₯ππβ1,π₯ + 2ππ(ππβ1,π§ β π π¦)ππβ1,π§ + ππβ1,π₯2 + ππβ1,π§
2 β 2ππβ1,π§π π¦ + π π¦2 β π π¦
2
+ 2π π¦1
1 + π ππ₯ β
1
(1 + π )2(2ππ₯
2 β (1 + π )(ππβ1,π¦2 + 2ππππβ1,π¦ππβ1,π¦ + ππ
2ππβ1,π¦2 ))
= 21
1 + π (π π¦ β
ππ₯1 + π
)βππ₯2 β (1 + π )(ππβ1,π¦ + 2ππππβ1,π¦ππβ1,π¦ + ππ
2ππβ1,π¦2 )
Johannes StΓΆrkle, 2020-03-18 9
ππ2ππβ1,π₯
2 + ππ2ππβ1,π§
2 + 2ππππβ1,π₯ππβ1,π₯ + 2ππ(ππβ1,π§ β π π¦)ππβ1,π§ + ππβ1,π₯2 + ππβ1,π§
2 β 2ππβ1,π§π π¦ + 2π π¦1
1 + π ππ₯
β2ππ₯
2
(1 + π )2+ππβ1,π¦2
(1 + π )+ 2ππ
ππβ1,π¦ππβ1,π¦(1 + π )
+ ππ2ππβ1,π¦2
(1 + π )
= 21
1 + π (π π¦ β
ππ₯1 + π
)βππ₯2 β (1 + π )(ππβ1,π¦ + 2ππππβ1,π¦ππβ1,π¦ + ππ
2ππβ1,π¦2 )
ππ2ππβ1,π₯
2 + ππ2ππβ1,π¦2
(1 + π )+ ππ
2ππβ1,π§2 + 2ππππβ1,π₯ππβ1,π₯ + 2ππ
ππβ1,π¦ππβ1,π¦(1 + π )
+ 2ππ(ππβ1,π§ β π π¦)ππβ1,π§ + ππβ1,π₯2 +
ππβ1,π¦2
(1 + π )
+ ππβ1,π§2 β 2ππβ1,π§π π¦ + 2π π¦
1
1 + π ππ₯ β
2ππ₯2
(1 + π )2
= 21
1 + π (π π¦ β
ππ₯1 + π
)βππ₯2 β (1 + π )(ππβ1,π¦ + 2ππππβ1,π¦ππβ1,π¦ + ππ
2ππβ1,π¦2 )
ππ2(1 + π )
2 (ππβ1,π₯
2 +ππβ1,π¦2
(1 + π )+ ππβ1,π§
2 ) + ππ(1 + π ) (ππβ1,π₯ππβ1,π₯ +ππβ1,π¦ππβ1,π¦(1 + π )
+ (ππβ1,π§ β π π¦)ππβ1,π§)
+(1 + π )
2(ππβ1,π₯
2 +ππβ1,π¦2
(1 + π )+ ππβ1,π§
2 ) β (1 + π ) (ππβ1,π§π π¦ + π π¦ππ₯
1 + π β
ππ₯2
(1 + π )2)
= (π π¦ βππ₯
1 + π )βππ₯
2 β (1 + π )(ππβ1,π¦ + 2ππππβ1,π¦ππβ1,π¦ + ππ2ππβ1,π¦
2 )
with π = (π π¦ βππ₯
1+π )β1
it follows
ππ2(1 + π )π
2(ππβ1,π₯
2 +ππβ1,π¦2
(1 + π )+ ππβ1,π§
2 ) + ππ(1 + π )π (ππβ1,π₯ππβ1,π₯ +ππβ1,π¦ππβ1,π¦(1 + π )
+ (ππβ1,π§ β π π¦)ππβ1,π§)
+(1 + π )π
2(ππβ1,π₯
2 +ππβ1,π¦2
(1 + π )+ ππβ1,π§
2 ) β (1 + π )π (ππβ1,π§π π¦ + π π¦ππ₯
1 + π β
ππ₯2
(1 + π )2)
= βππ₯2 β (1 + π )(ππβ1,π¦ + 2ππππβ1,π¦ππβ1,π¦ + ππ
2ππβ1,π¦2 )
[ππ2(1 + π )π
2(ππβ1,π₯
2 +ππβ1,π¦2
(1 + π )+ ππβ1,π§
2 ) + ππ(1 + π )π (ππβ1,π₯ππβ1,π₯ +ππβ1,π¦ππβ1,π¦(1 + π )
+ (ππβ1,π§ β π π¦)ππβ1,π§)
+(1 + π )π
2(ππβ1,π₯
2 +ππβ1,π¦2
(1 + π )+ ππβ1,π§
2 ) β (1 + π )π (ππβ1,π§π π¦ + π π¦ππ₯
1 + π β
ππ₯2
(1 + π )2)]
2
= ππ₯2 β (1 + π )(ππβ1,π¦ + 2ππππβ1,π¦ππβ1,π¦ + ππ
2ππβ1,π¦2 )
β¦
β This leads to a cubic equation, where the solution can be computed by appropriate algorithms, see
also the Attachement. However, it is probably simpler to compute the Ray-ConicTorus intersetions
with an iterative zero searching algorithm, e.g. the Newton-Raphson Approach.
Johannes StΓΆrkle, 2020-03-18 10
Special Case: Cylinder Lens The toroidal surface according to equations (2) and (3) can also be used to describe a cylinder surface with
the long axis in the direction of π₯. Therefore, the radius of rotation must tend to infinity, π π¦ β β,. As an
alternative, once can set
π₯ = 0 and π π¦ = 0,
which leads to
π§ = βsign(ππ₯)1
1 + π (βππ₯
2 β (1 + π )π¦2 β sign(ππ₯)ππ₯) .
For the normal unity vector, it yields ππ
ππ₯= 0 = π§π₯ ,
ππ
ππ¦= sign(ππ₯)
π¦
βππ₯2 β (1 + π )π¦2
= π§π¦.
Cylinder-Line Intersection
π§ = βsign(ππ₯)1
1 + π (βππ₯
2 β (1 + π )π¦2 β sign(ππ₯)ππ₯)
βsign(ππ₯)(1 + π )π§ = βππ₯2 β (1 + π )π¦2 β sign(ππ₯)ππ₯
For ππ₯ > 0 and if the π¦-values are within the range of equation (8), it results
β(1 + π )π§ = βππ₯2 β (1 + π )π¦2 β ππ₯
(ππ₯ β (1 + π )π§)2 = ππ₯
2 β (1 + π )π¦2
ππ₯2 β 2(1 + π )π§ ππ₯ + (1 + π )
2π§2 = ππ₯2 β (1 + π )π¦2
(1 + π )2π§2 + (1 + π )π¦2 β 2(1 + π )π§ ππ₯ = 0
(1 + π )2(ππβ1,π§ + ππππβ1,π§)2+ (1 + π )(ππβ1,π¦ + ππππβ1,π¦)
2β 2(1 + π )(ππβ1,π§ + ππππβ1,π§) ππ₯ = 0
(1 + π )2(ππβ1,π§2 + 2ππππβ1,π§ππβ1,π§ + ππ
2ππβ1,π§2 ) + (1 + π )(ππβ1,π¦
2 + 2ππππβ1,π¦ππβ1,π¦ + ππ2ππβ1,π¦
2 )
β 2(1 + π )(ππβ1,π§ + ππππβ1,π§) ππ₯ = 0
(1 + π )(ππβ1,π§2 + 2ππππβ1,π§ππβ1,π§ + ππ
2ππβ1,π§2 ) + (ππβ1,π¦
2 + 2ππππβ1,π¦ππβ1,π¦ + ππ2ππβ1,π¦
2 ) β 2(ππβ1,π§ + ππππβ1,π§) ππ₯ = 0
ππ2 ((1 + π )ππβ1,π§
2 + ππβ1,π¦2 ) + 2ππ ((1 + π )ππβ1,π§ππβ1,π§ + ππβ1,π¦ππβ1,π¦ β ππ₯ππβ1,π§) + (1 + π )ππβ1,π§
2 + ππβ1,π¦2
β 2ππ₯ππβ1,π§ = 0
β The solution of this quadratic equation
π»ππ2 + 2πΉππ β πΊ = 0
where
π» = (1 + π )ππβ1,π§2 + ππβ1,π¦
2
πΉ = (1 + π )ππβ1,π§ππβ1,π§ + ππβ1,π¦ππβ1,π¦ β ππ₯ππβ1,π§
πΊ = β(1 + π )ππβ1,π§2 β ππβ1,π¦
2 + 2ππ₯ππβ1,π§
is known as
Johannes StΓΆrkle, 2020-03-18 11
β ππ,1,2 = βπΉ
π»Β± β
πΉ2
π»2βπΊ
π»=
(Β±βπΉ2
π»2βπΊπ»βπΉπ»)(Β±β
πΉ2
π»2βπΊπ»+πΉπ»)
(Β±βπΉ2
π»2βπΊπ»+πΉπ»)
=πΊ
πΉ Β± βπΉ2 + π»πΊ .
In detail it yields
β ππ =πΊ
πΉ β βπΉ2 +π»πΊ , for ππ₯ > 0
β ππ =πΊ
πΉ + βπΉ2 +π»πΊ , for ππ₯ < 0
Johannes StΓΆrkle, 2020-03-18 12
Parametrical Toroidal Surface Description A torus can be defined parametrically by
[π₯π¦π§] = [
(π π¦ β ππ₯ + ππ₯ cos π) cosπ
ππ₯ sin π
(π π¦ β ππ₯ + ππ₯ cos π) sinπ
]
In case of π β 0 it is proposed to use the implicit description for the π§-term.
[π₯π¦π§] =
[ (π π¦ β ππ₯ + ππ₯ cos π) cosπ
1
β1 + π ππ₯ sin π
π§corr ]
Practical Example with MATLAB
A related MATLAB implementation can be found here:
https://de.mathworks.com/matlabcentral/answers/95230-how-do-i-plot-a-toroid-in-matlab
Johannes StΓΆrkle, 2020-03-18 13
Attachement The following screenshots help to understand the tori equations, which are from [Reithmann2009]4.
Page 12
4 [Reithmann2009] Reithmann, T.: Topologically correct Intersection Curves of Tori and Natural Quadrics, Dissertation
der Johannes Gutenberg-UniversitΓ€t, FB 08: Physik, Mathematik und Informatik, 2009. (See also https://d-
nb.info/995451133/34)
Johannes StΓΆrkle, 2020-03-18 14
Page 69