Hi Zemax team,
Congratulations on both the 22.1 release and the STAR module winning the Prism Award! That was great to see.
I’ve been playing with 22.1 and it’s tracing wide angle lenses really well. That said, there are a few things I don’t really understand, or didn’t expect, in the performance. Put simply, it’s working better than expected, and I don’t really understand why There’s a zip file attached with two ZARs in it that illustrate my points.
Wide angle lens 200 degree field_MN.zos
This lens is my version of the 200 degree sample file, modified to use a maximum field angle of 105.1 degrees. The chief ray lands at an angle of 89.49 degrees and the upper marginal at 89.949.
This is really close to 90 degrees at which the ray is tangent to the surface and does not enter the lens. It’s real grazing-incidence stuff. But now, check out the Ray-Aiming tab:
We are not using the Robust Ray-aimer, or the Enhanced aimer. It’s the plain-vanilla Paraxial reference ray-aimer doing all the heavy lifting. It looks like 22.1 contains enhancements to the core ray-tracer, as well as providing the Enhanced version, which is no longer needed for this system (it was in the last release version I used for testing in the other thread I have on wide-angle systems).
I get about 6k system updates/second on my machine, which is a really high number. Can you confirm that the plain-vanilla ray tracer has been upgraded in this release? The release notes make no mention of it, and if I turn on Robust or Enhanced ray aiming the system continues to trace, albeit more slowly, with the system updates/second falling to 700/second, and the old Robust aimer falling to ~400/sec.
So, the plain-vanilla algorithm is working really well, it gives exactly the same ray trace as the other modes but is x10 faster. Well done!
Another unexpected result is what I got when I turned using the ray-aiming cache on, the Plain Vanilla ray tracer slowed to ~3k/sec. I don’t see why using the cache should slow things down by x2.
I think it would be worthwhile someone with code access checking that they really understand both of these results (not needing the Robust or Enhanced tracers, and the slowdown with using the cache) just to be sure.
Panoramic lens Tester MN.zos
This is a variant of a lens from the Design Templates database. It’s a Milt Laiken design where a steeply domed aspheric mirror is used to image into a camera lens:
The imaging lens is just a Cooke triplet, with the mother of field flatteners providing field curvature control:
In y, the field angle is just 60 degrees, which isn’t huge, but in x its field of view is 360 degrees hence ‘panoramic’ lens. It’s always been a difficult lens to trace, although now it too traced better than ever, with just the plain-vanilla tracer and cache. However, two problems, possibly related can be seen:
- Turning the ray-aiming cache off causes the lens to not be traced
And since the cache is filled by the ray tracer, I’m not sure why this should be. Also:
-
Using the Enhanced Ray-Aimer also fails with the same error. Again, I expect this algorithm to maybe slow the ray tracer down, but not to take a traceable system and return an untraceable one.
BTW, although the error message above is correctly returned, the analysis windows still show an unknown error:
which it shouldn’t really: we know exactly what the error is.
Please don’t take these comments the wrong way: I think you are really close to having a wide-angle capability where the user does not have to make any arcane settings or contact support for help: it just works. I am surprised and delighted that the regular ray aimer can trace rays to 89.95 degrees without any help. That’s seriously impressive. The things I don’t understand are:
Why the plain-vanilla ray tracer is working so much better;
Why using the ray-aiming cache slows things down, rather than speeding things up or having minimal effect; and
Why the Enhanced aimer fails when the less powerful methods succeed in this case. Of course, you shouldn’t use the Enhanced aimer if there’s no need, but I am curious about why it should fail in this case.
Best wishes,
- Mark