5.9. Miscellaneous

5.9.1. Curve from Abbe Number

In many cases, only the refractive index and the Abbe number are known or provided for a material. To simulate such materials, a wavelength-dependent model first needs to be established. While there are countless potential curves that produce the same parameters, it is anticipated that real materials with the same index and Abbe number exhibit only slight variations in the visible region, where these parameters are provided.

We assume a model of the form:

(5.193)\[n(\lambda) = A + \frac{B}{\lambda^2 - d}\]

where \(d=0.014\, \mu\text{m}^2\) serves as a compromise between the Cauchy (\(d=0\)) and the Herzberger (\(d=0.028\,\mu\text{m}^2\)) models.

Given \(n_\text{s}:=n(\lambda_\text{s}),~n_\text{c}:=n(\lambda_\text{c}),~n_\text{l}:=n(\lambda_\text{l})\) and the Abbe number equation in (5.193), one can solve for \(A,~B\):

(5.194)\[\begin{split}B =&~ \frac{1}{V}\frac{n_\text{c}-1}{\frac{1}{\lambda^2_\text{s} - d} - \frac{1}{\lambda^2_\text{l}-d}}\\ A =&~ n_\text{c} - \frac{B}{\lambda^2_\text{c}-d}\end{split}\]

Parameters \(V\), \(n_\text{c}\) and the spectral lines \(\lambda_\text{s},~\lambda_\text{c},~\lambda_\text{l}\) are provided by the user.

5.9.2. TiltedSurface Equation

With the quantities:

(5.195)\[\begin{split}\text{normal vector:}~~~~ \vec{n} &= (n_x, n_y, n_z)\\ \text{surface center vector:}~~~~ \vec{q} &= (x_0, y_0, z_0)\\ \text{point on surface:}~~~~ \vec{p} &= (x, y, z)\\\end{split}\]

and the point normal equation for a plane:

(5.196)\[(\vec{p} - \vec{q})\cdot \vec{n} = 0\]

which is equivalent to:

(5.197)\[(x - x_0) \cdot n_x + (y- y_0) \cdot n_y + (z-z_0)\cdot n_z = 0\]

Everything be rearranged to yield the surface function for \(n_z \neq 0\):

(5.198)\[z(x, y) = z_0 - (x - x_0) \cdot \frac{n_x}{n_z} - (y- y_0) \cdot \frac{n_y}{n_z}\]

5.9.3. Flipping and Rotation

Flipping a surface is implemented as a 180-degree rotation around the x-axis. This transformation is equivalent to negating its relative shape \(z_r\) with respect to an offset \(z_0\) and mirroring the y-component: \(z_0 + z_r(x, y) \Rightarrow z_0 - z(x, -y)\). For a surface with rotational symmetry, this simplifies to \(z_0 + z_r(r) \Rightarrow z_0 - z(r)\). Rotation is achieved by altering the accessing coordinates through a rotation of the coordinate system:

(5.199)\[z(x, y) \Rightarrow z(x_0 + r \cos \alpha, y_0 + r \sin \alpha)\]

where \(r = \sqrt{(x-x_0)^2 + (y-y_0)^2}\). Here, \(x_0\) and \(y_0\) are the rotation center coordinates, and \(\alpha\) is the rotation angle.

By simply adjusting the value of the rotation angle, the surface values can be rotated without actually rotating the surface object.

5.9.4. Equal Area Radial Sampling of Ring and Circle

An area element of a circle in polar coordinates can be represented as:

(5.200)\[\text{d}A = \text{d}r ~\text{d}\phi\]

\(\text{d}\phi\) can be rewritten as a circle segment:

(5.201)\[\text{d}A = \text{d}r ~\frac{2 \pi}{N} r\]

with \(N\) being the number of segments. Let us define a function \(r(u)\) which provides radial values, and its derivative outputs radial spacing values.

(5.202)\[\text{d}A = r'(u) ~\frac{2 \pi}{N} r(u)\]

For uniformly sampled data, \(\text{d}A\) must remain constant concerning a uniform variable \(u\). This requirement corresponds to the condition \(\frac{\text{d}A}{\text{d}u} = 0\).

(5.203)\[\frac{\text{d}A}{\text{d}u} = \frac{2\pi}{N} \frac{\text{d}}{\text{d}u} r'(u) r(u) = r''(u) r(u) + (r'(u))^2 = 0\]

The solutions to this second-order, nonlinear differential equation take the form:

(5.204)\[r(u) = \sqrt{c_1 + c_2 u}\]

For convenience, we set the constants to \(c_1 = 0\) and \(c_2=1\). To obtain output values in the range \([r_i, ~R]\), the corresponding input values are \([r^2_i, ~R^2]\). By treating \(r\) and \(u\) as random variables, we arrive at:

(5.205)\[\mathcal{R} = \sqrt{\mathcal{U}_{[r^2_\text{i}, R^2]}}\]

The polar angle is uniformly spaced

(5.206)\[\Phi = \mathcal{U}_{[0, 2\pi]}\]

Resulting 3D positions are then

(5.207)\[\begin{split}x =&~ x_0 + \mathcal{R} \cos \Phi\\ y =&~ y_0 + \mathcal{R} \sin \Phi\\ z =&~ z_0\end{split}\]

Circle sampling is implemented as a ring with \(r_\text{i} = 0\). Related: [1].

Due to artifacts are different sampling technique is employed in optrace, as outlined in Section 5.1.6.


References