Slide 1

Slide 1 text

Lens Tracing レイトレで写真レンズを使う @yumcyawiz

Slide 2

Slide 2 text

Table of contents 1. Introduction 2. 幾何光学の基礎 3. 収差 4. レンズトレーシング 5. フォーカシング 6. レイのサンプリング 7. レンダリング結果 1

Slide 3

Slide 3 text

Introduction

Slide 4

Slide 4 text

レンズトレーシング 複数枚のレンズで構成される光学系をレイトレすること Figure 1: 光路図 2

Slide 5

Slide 5 text

メリット 写真レンズで撮ったものとほぼ同じ描写が得られる Figure 2: レンダリング結果 3

Slide 6

Slide 6 text

幾何光学の基礎

Slide 7

Slide 7 text

薄レンズモデル 非常に薄い単レンズのモデル 収差は 0(現実にはあり得ない) p: 主点 f: 物側焦点 f′: 像側焦点 z y p f f′ 4

Slide 8

Slide 8 text

薄レンズモデル 焦点距離 l = f′ − p, 物面までの距離 a, 像面までの距離 b レンズの式 1 a + 1 b = 1 l z y a b p f f′ 5

Slide 9

Slide 9 text

厚レンズモデル 厚みを持った単レンズのモデル p: 物側主点, p′: 像側主点 H: 物側主平面, H′: 像側主平面 z y H H′ p p′ f f′ 6

Slide 10

Slide 10 text

厚レンズモデル レンズの式が同様に成り立つ 焦点距離 l = f′ − p′ z: 物平面位置, z′: 像平面位置として 1 z − p − 1 z′ − p′ = 1 l z y H H′ p p′ f f′ 7

Slide 11

Slide 11 text

レンズ系 複数枚のレンズ系でも入射面、射出面のみに注目して p, f, p′, f′ が同 様に定義される z y · · · p p′ f f′ 8

Slide 12

Slide 12 text

近軸近似 上記の議論はレンズを平面として見て行っていた。 レンズが球面の場合、これは z 軸 (光軸) に近い光線のみについて成 り立つので近軸近似と呼ばれる。 z y 9

Slide 13

Slide 13 text

収差

Slide 14

Slide 14 text

収差 収差とは結像のずれのことで、収差が存在するとピントを合わせて もボケた状態になる。 現実のレンズでは収差が必ず存在する。 z y 像面 横収差 縦収差 10

Slide 15

Slide 15 text

ザイデルの 5 収差 収差にはザイデルの 5 収差と呼ばれる次の 5 つがある。 • 球面収差 • コマ収差 • 非点収差 • 像面湾曲 • 歪曲収差 また、光の分散による色収差も存在する。 11

Slide 16

Slide 16 text

球面収差 レンズが球面であるために発生する収差 z y 像面 12

Slide 17

Slide 17 text

コマ収差 軸外から来る光が一点に収束しない収差 彗星の尾のような形に見えるためそう呼ばれる z y 像面 13

Slide 18

Slide 18 text

非点収差 軸外から来る光に対し、X 方向と Y 方向で焦点距離にずれがあること で起こる収差 14

Slide 19

Slide 19 text

像面湾曲 像面が平面とならず、湾曲してしまっていること z y 像面 15

Slide 20

Slide 20 text

歪曲収差 撮影した物体が歪んだ形になってしまうこと 16

Slide 21

Slide 21 text

色収差 波長による屈折率の違いから発生する収差 z y 像面 17

Slide 22

Slide 22 text

レンズトレーシング

Slide 23

Slide 23 text

レンズの種類 レンズには以下の 2 種類がある • 球面レンズ • 非球面レンズ ここでは球面レンズのみについて考える 以下では特定の波長ごとにレンズトレーシングすることを考える 18

Slide 24

Slide 24 text

レンズの表現 r: 曲率半径 (curvature radius) h: 開口半径 (aperture radius) d: 次の要素までの距離 (thickness) z y 像面 第 1 面 第 2 面 r1 c1 h1 d1 r2 c2 h2 d2 19

Slide 25

Slide 25 text

レンズ系の表現 レンズ系は次のような表形式データとして表現できる Index r h ior d 0 29.475 25.2 1.67 3.76 1 84.83 25.2 1 0.12 2 19.275 23 1.67 4.025 . . . . . . . . . . . . . . . Table 1: レンズ系の表現 r = 0 のときは絞りとする 20

Slide 26

Slide 26 text

レンズ系の表現 Figure 3: ダブルガウス型レンズ 21

Slide 27

Slide 27 text

レンズトレーシング レンズトレーシングは次のような処理を繰り返すことで行われる 1. レンズとの衝突位置を計算 2. 衝突位置が範囲外なら終了 3. フレネル反射率を計算し、ロシアンルーレットで反射か屈折か 決める 4. 反射なら反射方向を計算し, 次のレイを生成 5. 屈折なら屈折方向を計算し, 次のレイを生成 (全反射なら反射さ せる) 22

Slide 28

Slide 28 text

レンズとの衝突位置の計算 球面とレイの衝突計算を行えばよい. ∥⃗ o + t⃗ d −⃗ c∥2 = r2 を t について解く. 得られた t で衝突位置 ⃗ p = ⃗ o + t⃗ d を計算する. p2 x + p2 y ≤ h2 であればレンズ面上に衝突点がある. 23

Slide 29

Slide 29 text

波長ごとの屈折率の計算 Sellmeier の式を用いて計算できる n2 = 1 + ∑ i Biλ2 λ2 − Ci ある光学ガラスに対応する係数 Bi, Ci の値 がhttps://refractiveindex.info/にたくさんある 24

Slide 30

Slide 30 text

フレネル反射率の計算 Schlick の近似式を計算 F(θ) = F0 + (1 − F0)(1 − cos θ)5 F0 = ( n1 − n2 n1 + n2 )2 25

Slide 31

Slide 31 text

屈折方向の計算 お馴染みだと思うので省略 実装する上では前面の ior を何らかの方法で覚えておく必要がある 26

Slide 32

Slide 32 text

フォーカシング

Slide 33

Slide 33 text

フォーカシング レンズ系を z = zf にピント合わせすることを考える. ピント合わせはレンズ系全体を δ だけ動かすことで行う. 27

Slide 34

Slide 34 text

フォーカシング 厚レンズ近似で考えると, レンズの式で z = zf , z′ = 0 として 1 zf − p + δ + 1 −p′ + δ = 1 l これを解いて δ = 1 2(p − zf + p′ − √ (p − zf − p′ )(p − zf − 4l − p′ ) 28

Slide 35

Slide 35 text

主要点の計算 p, f, p′ , f′ は微小な y で光軸に平行な光線を入射し、レンズトレーシ ングを行って得られる出射光線から計算できる 29

Slide 36

Slide 36 text

レイのサンプリング

Slide 37

Slide 37 text

レイのサンプリング レイトレでレンズ系を使うために、像面から物空間に出ていくレイ をサンプリングする方法について考える 30

Slide 38

Slide 38 text

射出瞳 像面から見た絞りの像を射出瞳という z y 像面 射出瞳 31

Slide 39

Slide 39 text

射出瞳の計算 最後尾にあるレンズ面全体をグリッド分割して、各グリッドに飛ば したレイがレンズ系を通過できるかどうか調べればよい. これは計算量が多いので事前計算しておく. z y 像面 32

Slide 40

Slide 40 text

射出瞳の計算 射出瞳の形は厳密に求める必要はなく, Bounding Box で覆えれば十 分 33

Slide 41

Slide 41 text

射出瞳の計算 射出瞳は像面上の点一つ一つについて形が変わる. しかしレンズ系が軸対称なので全部を計算する必要はない. 対角線上の射出瞳のみを計算しておけば, 他のものはそこから選んで くることができる. 34

Slide 42

Slide 42 text

レイのサンプリング 次のような手順でレイをサンプリングする 1. 像面上の位置に対応する射出瞳の Bounding Box を選ぶ 2. Bounding Box から点をサンプリングする 3. サンプリングした点に向ってレイを飛ばす 35

Slide 43

Slide 43 text

p.d.f. の計算 面積 A のバウンディングボックスから一様にサンプリングすると, 面 積に関する p.d.f. は pA = 1 A 像面からサンプリング点までの距離を r, 生成したレイと z 軸のなす 角を θ とすると, 立体角に関する p.d.f. は p σ = r2 cos θ pA 36

Slide 44

Slide 44 text

像面への寄与の計算 像面は放射束を測定しているので, サンプリングしたレイが持つ放射 輝度を L とすると, 加算する寄与 C は C = L cos θ p σ = L cos θ r2 cos θ 1 A = LA cos2 θ r2 37

Slide 45

Slide 45 text

レンダリング結果

Slide 46

Slide 46 text

レンズ 焦点距離 22mm の広角レンズを使用 Figure 4: 22mm 広角レンズ 38

Slide 47

Slide 47 text

レンダリング結果 レンズフレア, 色収差あり Figure 5: レンダリング結果 39

Slide 48

Slide 48 text

色収差の比較 (a) 色収差なし (b) 色収差あり 40

Slide 49

Slide 49 text

レンズフレアの比較 (c) レンズフレアなし (d) レンズフレアあり 41

Slide 50

Slide 50 text

50mm ダブルガウス 焦点距離 50mm のダウブルガウス型レンズ Figure 6: 50mm ダブルガウス型レンズ 42

Slide 51

Slide 51 text

レンダリング結果 色収差あり, レンズフレアなし Figure 7: レンダリング結果 43

Slide 52

Slide 52 text

10mm 魚眼 焦点距離 10mm の魚眼レンズ Figure 8: 10mm 魚眼レンズ 44

Slide 53

Slide 53 text

レンダリング結果 色収差あり, レンズフレアなし Figure 9: レンダリング結果 45

Slide 54

Slide 54 text

Reference References LTD CYBERNET SYSTEMS CO. 光学総合サイト. url: https://www.cybernet.co.jp/optical/. Wenzel Jakob Matt Pharr and Greg Humphreys. Physically Based Rendering: From Theory To Implementation. url: http://www.pbr-book.org/. 松居 吉哉. レンズ設計法. 共立出版, 2018. isbn: 978-4-320-03607-9. 46

Slide 55

Slide 55 text

The End Thank you for listening. 47