フリーで使える光線追跡ソフト14選
一眼レフやスマホのカメラで使用されるレンズは、様々な種類のレンズが何枚も組み合わされてできています。
その構造は複雑も良いところ。
そんな組み合わせレンズ、実際どんなふうにできているか知りたいものです。よね?
僕は大学でレンズを扱っていたこともあり、レンズの組み合わせの違いで像がどこにできて、どんな大きさになるのか大変興味を持っていました。
そんなとき便利なのが、光線追跡ソフト。
光線追跡では、特性が知りたいレンズ群に光線を何本も入れてみて、その出力からレンズ群の特性を見ていきます。
ようはレンズを通る光をシミュレーションします。
しかし世の中の光学のプロたちが使うようなソフトは大変高い!
有名所ではOSLOやCODEV、ZEMAXなどがありますが、購入に100万円するものも少なくありません。
(その分高機能&高精度なのでしょうが。使ってみたい~~。)
そこでフリーでそれなりに光線追跡ができるソフトはないのか?ということで、国内外問わず色々調べてみた記事になります。
(ごちゃごちゃ言っていますが、備忘録です!)
1. OpticalRayTracer
HP:https://arachnoid.com/OpticalRayTracer/
おすすめ度:★★★★★
最終更新:2017年
備考:-
座標を指定するとグラフィカルに光学素子を配置でき、とても直感的に操作できるソフト。
球面レンズだけでなく、放射状、双曲線状、片平面など設定ができます。
レンズの半径や屈折率、アッベ数、曲率で焦点距離を決定します。
2. ELS光学レンズの設計・評価ソフトウェア
HP:http://www.peknk.skr.jp/application.html
おすすめ度:★★★★★
最終更新:2019年
備考:1ヶ月程無料で使用可能、使用期限あり
曲率半径と間隔、材質によって面を順々に設定して、自動で最適化までしてくれるソフト。
非球面を含む レンズ系が扱え、近軸光線追跡による近軸解析、実光線追跡による光線収差解析、幾何光学的像評価に加え、波面収差にもとづく波動光学的像評価も行えます。
実在するレンズも用意されています。
使用期限があるため注意。
3. POPS
HP:https://www.vector.co.jp/soft/win95/edu/se136306.html
おすすめ度:★★★★
最終更新:2017年
備考:-
このプログラムは、手軽に光学系の性能評価やレンズ設計をするために制作しました。
特徴としては、非球面、非共軸系も扱えること、光学系の構成図をワイヤーフレームで表示出来るなどです。そのほか一般的な収差図やスポットダイヤグラムなどを表示、収差係数や収差曲線を使ったベンディングなどができます。基本的な光学の知識があればすぐ使えると思います。
ファイルサイズが大きくなりましたが、ソースコードを付けました。
ZIPファイルになっています。
最適化はできないにしろ、無制限に使用できて日本語という点で使いやすいです。
4. LLSRT: Library for Lens System Ray Tracing
HP:http://w3.gel.ulaval.ca/~cgagne/llsrt/
おすすめ度:★
最終更新:2001年
備考:C++ライブラリ
C++用光線追跡ライブラリ。
どうしてもC++で書きたい人向けな感じがして、今回試していません。
各種関数の説明がきちんとあります。
5. GNU Optical design and simulation library
HP:https://www.gnu.org/software/goptical/
おすすめ度:★★
最終更新:2012年
備考:C++ライブラリ
こちらもC++用光線追跡ライブラリ。
きちんとチュートリアルがサイト上に掲載されており、LLSRTよりはまだ扱いやすそう。
6. BEAM FOUR
HP:https://www.stellarsoftware.com/
おすすめ度:★★★★
最終更新:2019年
備考:-
2015年にオープンソース化、無料配布をしたソフト。
マニュアルが充実しており、最適化まで一通りできそう。
光線(.RAY)と光学素子(.OPT)のファイルをそれぞれ用意して実行すると光線が表示される簡単仕様です。
3Dでぐりぐり動かせるのも良いです。
7. OpenRayTrace
HP:http://openraytrace.sourceforge.net/
おすすめ度:★★★
最終更新:2007年
備考:-
Pythonベースのフリーウェア。
通常の機能は一通り実装されており、シンプルで使いやすい印象です。
8. OptoCad
HP:http://www2.mpq.mpg.de/~ros/optocad.html
おすすめ度:★
最終更新:2014年
備考:-
ガウシアンビーム用だとか。
レンズの光線追跡には不向きかもしれません。
9. OptGeo
HP:http://jeanmarie.biansan.free.fr/optgeo.html
おすすめ度:★★
最終更新:2018年
備考:-
良さげなソフトなのですが!フランス語が読めず断念。。
10. Mathematica
HP:http://www.wolfram.com/solutions/industry/optics/index.ja.html
おすすめ度:★★★
最終更新:2019年
備考:大学の無料ライセンスで試用
Mathematicaは光学設計にも使用できるようです。
デモも充実しており、https://demonstrations.wolfram.com/search.html?query=opticsからソースをダウンロードできます。
インタラクティブな光学ツールが作成可能で魅力的ですが、Mathematicaの言語が理解できず断念。。
11. Maple - Thin lens optics
HP:https://www.maplesoft.com/applications/view.aspx?SID=4223
おすすめ度:★★
最終更新:2002年
備考:大学の無料ライセンスで試用
同じくMapleでもできないことはないみたいです。
しかしこちらもよくわからずスルー。
どの言語でも自分で実装できたらな、、。
12. Odak Framework: Wave optics and ray tracing
HP:https://github.com/kunguz/odak
おすすめ度:★★★★
最終更新:2019年
備考:-
Pythonのためのオープンソース光線追跡ソフト。
matplotlibで2次元、3次元の形状に対応しており、簡単なチュートリアルも用意されています。
Pythonが読めるならおすすめ。
13. DCC-Lab/RayTracing
HP:https://github.com/DCC-Lab/RayTracing
おすすめ度:★★★★★
最終更新:2019年
備考:-
上と同じくPythonのためのオープンソース光線追跡ソフト。
光線行列解析の考え方がわかっていれば、驚くほど簡単にグラフをプロットできます。
レンズの設定では焦点距離のみでもOK、曲率半径などを入力するオプションもあり、汎用性が高いと感じました。
14. Ray Optics Simulation
HP:https://ricktu288.github.io/ray-optics/
おすすめ度:★★★★★
最終更新:2018年
備考:-
Javascriptで書かれたウェブ上で動くインタラクティブな光線追跡ソフト。
かなり自由に素子と光線を配置でき、軽くてとても良いです。
大変使い勝手が良いです。
おわりに
拙い調査能力で色々見てみました。
調べるだけでも結構時間がかかってしまったので、この記事を見て自分にぴったりの光線追跡ソフトが見つける手伝いができれば、とても嬉しいですね~~。
以上、ちょっとニッチな紹介記事でした。
[番外編] Edraw Max
こちらは光線追跡ソフトでは決してないですが。
HP:http://jp.edrawsoft.com/optics-diagram.php
おすすめ度:★★★★★
最終更新:2016年
備考:光学もできるお絵かきソフト
1ヶ月無料体験で使用。
これであなたも理科の教科書で出てくるレンズの図が書けます。
普通に使いやすかったので欲しくなりました。
PowerPointに出力できるところが良い(というかUIもほぼ同じ笑)。