レイトレーシングチュートリアル(Part A):プリズムとティーポットのプレイグラウンド
このチュートリアルでは、OghmaNano の Optical Workbench を使って、カラフルな レイトレーシングシーンを操作します。このシーンにはプリズム、アパーチャ、検出器、そして(後続パートでは)CAD ティーポットが含まれます。 目的は現実的なカメラを構築することではなく、主要な機能、 すなわちシミュレーションの起動、オブジェクトの回転、ビームプロファイルの観察、および 検出器が「見ている」ものの確認を行うための プレイグラウンド を提供することです。
まず、あらかじめ構築された プリズムデモ から始めます。このシーンにはすでに以下が含まれています:
- 光路中の 2 つの赤いプリズム。
- システム内に光子を放出する緑色の光線源。
- 中央の開口部から外れた光線を遮るアパーチャ。
- 通過したすべての光線を収集する紫色の検出器。
シミュレーションを実行すると、反射、屈折、および分散が実際に起こる様子が見え、 検出器効率と、検出器が見ているもののレンダリング画像の両方を確認できます。
ステップ 1:新しいレイトレーシングシミュレーションを作成する
Windows のスタートメニューから OghmaNano を起動します。開始ウィンドウで New simulation を選択します。これにより、 ?? に示すデバイスライブラリウィンドウが開きます。 Ray tracing フォルダ(強調表示)をダブルクリックして、 ?? に示すレイトレーシングの例の一覧を開きます。
Prism demo をダブルクリックし、書き込み権限のあるフォルダを選んで
シミュレーションを保存します。最良の性能を得るには、ネットワークドライブやクラウドドライブではなく、
ローカルディスク(例えば C:\)に保存してください。
ステップ 2:デフォルトシーンを探索する
例を読み込むと、 ?? に示すように、メインの Optical Workbench ウィンドウが開きます。 このシーンには、このチュートリアル全体を通して使用する主要な光学コンポーネントが含まれています:
- 緑色の矢印(左): 異なる波長の光線を放出する光学 source。
- 2 つの赤いプリズム: 光線を屈折・反射するバルク光学素子。
- 赤いアパーチャプレート: 中央に開口部を持つプレートで、一部の光線を通し、 他を遮断します。
- 紫色のグリッド(上部): カメラの CCD に類似した、光線を収集する detector。
マウスを使ってシーンを見回してください。左マウスボタン は視点を回転し、 右マウスボタン はシーンをパンします。マウスホイール を使ってズームイン・ズームアウトできます。 ウィンドウ左側には XY、YZ、および XZ とラベル付けされたボタンがあります。 これらは各平面に沿ってカメラを直接向けるプリセットであり、 オブジェクトの再配置や位置合わせの確認に便利です。
ステップ 3:シミュレーションを実行する
Run simulation ボタン(青い再生アイコン)をクリックするか、F9 を押します。 OghmaNano は光源からプリズムとアパーチャを経由して検出器まで光線を追跡します。 実行が終了すると、シーンは ?? と類似した表示になります。
色付きの帯は、異なる波長がプリズムを通って異なる経路をたどることを示しています。 これは以下の簡単な実演です:
- スネルの法則(界面での屈折)、
- 反射(境界での)、および
- 分散 – 異なる波長に対して異なる屈折率を持つことで、 可視的な虹が生じます。(背景については Wikipedia の光学分散に関する記事 を参照してください。)
スネルの法則と反射/透過
スネルの法則は、平坦な界面における入射角と屈折角の関係を与えます:
\( n_1 \sin\theta_1 = n_2 \sin\theta_2 \)
ここで \(n_1\) と \(n_2\) は媒質 1 と 2 の屈折率であり、 \(\theta_1\) と \(\theta_2\) は表面法線から測った角度です。
垂直入射において、界面でのパワー反射率 \(R\) の簡単な式は
\( R = \left(\dfrac{n_1 - n_2}{n_1 + n_2}\right)^2 , \qquad T = 1 - R \)
ここで \(T\) は透過したパワーの割合です。OghmaNano は、各光線をプリズムとアパーチャ内で追跡する際に、 これらの考え方(完全なフレネル方程式とともに)を使用します。
ステップ 4:検出器出力を調べる
検出器が何を記録したかを見るには、ウィンドウ上部の Output タブをクリックします。 すると、レイトレーサーによって書き出されたファイルの一覧が表示されます。これは ?? に類似しています。 この時点で最も重要なファイルは detector0 フォルダであり、 紫色の検出器からの出力を格納しています。
detector0 アイコンには、
主検出器に関連するすべての結果、すなわち効率曲線、画像、および CSV データが含まれています。
detector0 の中には、主な検出器出力ファイルがあり、
detector_efficiency0.csv(効率の波長依存性)および image
(検出器面のレンダリング表示)が含まれます。
detector0 をダブルクリックします。次に
detector_efficiency0.csv をダブルクリックして、検出器が光をどの程度効率的に収集するかを
波長の関数としてプロットします。これは
??
に示されています。
RAY_image.csv ファイルは、検出器面に
目を置いた場合に見える像のレンダリング画像を示します。アパーチャによって
光線が遮られたため、ビーム中心部に「穴」があることに注意してください。
次に、RAY_image.csv ファイルをダブルクリックします。OghmaNano は、検出器に到達した すべての波長(このデモでは通常約 20 の波長ビン)からカラー画像を再構成します。 アパーチャ中央の開口部を通過した光線が、検出器上の明るい色付き領域を形成し、 アパーチャによって遮られた光線はビームプロファイルに暗い穴を残します。
3D シーンを回転して光線を視覚的に追うと、この穴がどのように形成されるかを追跡できます: 一部の光線はアパーチャプレートで反射され、一部は検出器を完全に外れ、 開口部を通過した光線だけが ?? の明るい領域に寄与します。
👉 次のステップ: Part B に進み、プリズムからレンズへ進んでください。