Hello, Everyone!
I’m studying visibility simulation for telescopes and telephoto lenses under my private project of Art & Science Collaboration and Education[1]. I have plans to simulate the visibilities caused by optical phenomena of telescopes and telephoto lenses, such as spherical aberration, distortion, and chromatic aberration. For the first step, I created a geometry model of a virtual bird watching, shown in the following Fig.1, and two achromatic doublet models, which are Radiance’s primitive model created by the ‘genrev’ command, shown in Fig. 2, Fig. 3, and Listing 1, and the Frontal Delaunay Triangulation mesh model, Listing 2, created by FreeCAD and MeshLab. Using the classic Radiance method, I calculated the image view from the lens models. However, both models have problems written in Table 1. I’d appreciate it if you give me some suggestions or advice.
The ‘genrev’ model gave a smooth result, shown in Fig. 4 with the ‘glass’ attribute. However, it can not specify IOR, as the ‘interface,’ and ‘dielectric’ attributes gave the same failure (a magnification smaller than 1), which may be due to an incorrect normal vector direction or boundary condition. In addition, the ‘genrev’ model gave the erect image shown in Fig. 4. The Frontal Delaunay Triangulation mesh model did not give a smooth result as shown in Fig. 7 in contrast to the ‘genrev’ model as shown in Fig.4. However, the ‘interface’ attribute was available and gave considerable magnification with the inverted image.
I will share the results of this study, including analyses by POV-Ray, as a report like the previous two reports, ‘3D Design Workflow’ and ‘Photon Mapping,’ on my website[1].
-Yoichi Mizomata
Listing 1: Achromatic Doublet Model by the ‘genrev’ command.
void glass Mat-GlassE
0
0
3
1.0 1.0 1.0
void glass Mat-GlassB
0
0
3
1.0 1.0 1.0
#Crown Glass (Objective)
!genrev Mat-GlassB obj-lens.01
‘0.13115966cos(0.036549115tPI)’ '0.13115966sin(0.036549115tPI)’
360 -s | xform -t 0 0 -0.1286
!genrev Mat-GlassB obj-lens.02
‘0.0016363325-t*(0.0033857641)’ ‘0.0150’ 360 -s | xform -t 0 0 0
!genrev Mat-GlassB obj-lens.03
‘-0.15080175cos(0.031771476(1-t)PI)’ '0.15080175sin(0.031771476*(1-t)*PI)’
360 -s | xform -t 0 0 0.1483
#Flint Glass (Eyepiece)
!genrev Mat-GlassE eyep-lens.01
‘0.13400914cos(0.035226075tPI)’ '0.13400914sin(0.035226075tPI)’ 360 -s
| xform -t 0 0 -0.1332
| xform -mz | xform -t 0 0 0.0023197651 | xform -t 0 0 -0.0055
!genrev Mat-GlassE eyep-lens.02
‘0.0023197651-t*(0.0033884453)’ ‘0.0148’ 360 -s | xform -t 0 0 -0.0055
!genrev Mat-GlassE eyep-lens.03
‘-0.25413401cos(0.018547905(1-t)PI)’ '0.25413401sin(0.018547905*(1-t)*PI)’ 360 -s
| xform -t 0 0 0.2526 | xform -t 0 0 -0.0055
Each glass model (Crown and Flint Glass) consists of spherical, radial, and opposite spherical parts. These three parts are discontinuous of each other, although eight significant digits were used to avoid loss of significance in differentiation calculations using trigonometric functions.
Listing 2: Data conversion from *.obj to *.rad.
obj2rad -o Glass-Poly obj-lens04.obj > obj-lens04.rad
sed -i -e ‘s/white/Mat-GlassB/g’ obj-lens04.rad
xform -n obj-lens04.rad -s 0.001 obj-lens04.rad > obj-lens04S.rad
cat obj-lens04S.rad | grep -c ‘polygon’
287026
cat obj-lens04S.rad | grep -c ‘texfunc’
91615
The number of polygons smoothed using the’ texfunc’ function was about 30% of the total polygons, less than the 90% previously done with smoothing the wine glass model reported in ‘3D Design Workflow.’