Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Lens Tracing
Search
yumcyawiz
May 17, 2020
Science
0
120
Lens Tracing
LT slide for OSK May LT
yumcyawiz
May 17, 2020
Tweet
Share
More Decks by yumcyawiz
See All by yumcyawiz
rtcamp 10 (vk-illuminati)
yumcyawiz
1
210
ReSTIRの数理と実装 (rtcamp10)
yumcyawiz
1
530
fredholm(rtcamp9)
yumcyawiz
0
88
フォトンマッピングをパス空間から考える
yumcyawiz
0
340
fredholm
yumcyawiz
0
230
Introduction to volume rendering
yumcyawiz
0
1.9k
OSK#p-ray2020年度講義: 古典的レイトレーサーの実装
yumcyawiz
0
240
Ray Tracing: Overview
yumcyawiz
7
1.2k
GLSLでパストレーシングしてコーネルボックスを出す
yumcyawiz
0
400
Other Decks in Science
See All in Science
ほたるのひかり/RayTracingCamp10
kugimasa
0
110
Introduction to Graph Neural Networks
joisino
PRO
4
2k
【健康&筋肉と生産性向上の関連性】 【Google Cloudを企業で運用する際の知識】 をお届け
yasumuusan
0
310
白金鉱業Meetup Vol.15 DMLによる条件付処置効果の推定_sotaroIZUMI_20240919
brainpadpr
1
420
ベイズのはなし
techmathproject
0
250
論文紹介: PEFA: Parameter-Free Adapters for Large-scale Embedding-based Retrieval Models (WSDM 2024)
ynakano
0
140
私たちのプロダクトにとってのよいテスト/good test for our products
camel_404
0
130
Science of Scienceおよび科学計量学に関する研究論文の俯瞰可視化_LT版
hayataka88
0
880
山形とさくらんぼに関するレクチャー(YG-900)
07jp27
1
200
Sarcoptic Mange
uni_of_nomi
1
100
学術講演会中央大学学員会八王子支部
tagtag
0
210
Celebrate UTIG: Staff and Student Awards 2024
utig
0
420
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
26
730
The Language of Interfaces
destraynor
154
24k
Optimising Largest Contentful Paint
csswizardry
31
2.9k
How STYLIGHT went responsive
nonsquared
95
5.1k
Automating Front-end Workflow
addyosmani
1365
200k
Code Review Best Practice
trishagee
64
17k
Typedesign – Prime Four
hannesfritz
39
2.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Become a Pro
speakerdeck
PRO
24
4.9k
How to Ace a Technical Interview
jacobian
275
23k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
Making the Leap to Tech Lead
cromwellryan
131
8.9k
Transcript
Lens Tracing レイトレで写真レンズを使う @yumcyawiz
Table of contents 1. Introduction 2. 幾何光学の基礎 3. 収差 4.
レンズトレーシング 5. フォーカシング 6. レイのサンプリング 7. レンダリング結果 1
Introduction
レンズトレーシング 複数枚のレンズで構成される光学系をレイトレすること Figure 1: 光路図 2
メリット 写真レンズで撮ったものとほぼ同じ描写が得られる Figure 2: レンダリング結果 3
幾何光学の基礎
薄レンズモデル 非常に薄い単レンズのモデル 収差は 0(現実にはあり得ない) p: 主点 f: 物側焦点 f′: 像側焦点
z y p f f′ 4
薄レンズモデル 焦点距離 l = f′ − p, 物面までの距離 a, 像面までの距離
b レンズの式 1 a + 1 b = 1 l z y a b p f f′ 5
厚レンズモデル 厚みを持った単レンズのモデル p: 物側主点, p′: 像側主点 H: 物側主平面, H′: 像側主平面
z y H H′ p p′ f f′ 6
厚レンズモデル レンズの式が同様に成り立つ 焦点距離 l = f′ − p′ z: 物平面位置,
z′: 像平面位置として 1 z − p − 1 z′ − p′ = 1 l z y H H′ p p′ f f′ 7
レンズ系 複数枚のレンズ系でも入射面、射出面のみに注目して p, f, p′, f′ が同 様に定義される z y
· · · p p′ f f′ 8
近軸近似 上記の議論はレンズを平面として見て行っていた。 レンズが球面の場合、これは z 軸 (光軸) に近い光線のみについて成 り立つので近軸近似と呼ばれる。 z y
9
収差
収差 収差とは結像のずれのことで、収差が存在するとピントを合わせて もボケた状態になる。 現実のレンズでは収差が必ず存在する。 z y 像面 横収差 縦収差 10
ザイデルの 5 収差 収差にはザイデルの 5 収差と呼ばれる次の 5 つがある。 • 球面収差
• コマ収差 • 非点収差 • 像面湾曲 • 歪曲収差 また、光の分散による色収差も存在する。 11
球面収差 レンズが球面であるために発生する収差 z y 像面 12
コマ収差 軸外から来る光が一点に収束しない収差 彗星の尾のような形に見えるためそう呼ばれる z y 像面 13
非点収差 軸外から来る光に対し、X 方向と Y 方向で焦点距離にずれがあること で起こる収差 14
像面湾曲 像面が平面とならず、湾曲してしまっていること z y 像面 15
歪曲収差 撮影した物体が歪んだ形になってしまうこと 16
色収差 波長による屈折率の違いから発生する収差 z y 像面 17
レンズトレーシング
レンズの種類 レンズには以下の 2 種類がある • 球面レンズ • 非球面レンズ ここでは球面レンズのみについて考える 以下では特定の波長ごとにレンズトレーシングすることを考える
18
レンズの表現 r: 曲率半径 (curvature radius) h: 開口半径 (aperture radius) d:
次の要素までの距離 (thickness) z y 像面 第 1 面 第 2 面 r1 c1 h1 d1 r2 c2 h2 d2 19
レンズ系の表現 レンズ系は次のような表形式データとして表現できる 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
レンズ系の表現 Figure 3: ダブルガウス型レンズ 21
レンズトレーシング レンズトレーシングは次のような処理を繰り返すことで行われる 1. レンズとの衝突位置を計算 2. 衝突位置が範囲外なら終了 3. フレネル反射率を計算し、ロシアンルーレットで反射か屈折か 決める 4.
反射なら反射方向を計算し, 次のレイを生成 5. 屈折なら屈折方向を計算し, 次のレイを生成 (全反射なら反射さ せる) 22
レンズとの衝突位置の計算 球面とレイの衝突計算を行えばよい. ∥⃗ o + t⃗ d −⃗ c∥2 =
r2 を t について解く. 得られた t で衝突位置 ⃗ p = ⃗ o + t⃗ d を計算する. p2 x + p2 y ≤ h2 であればレンズ面上に衝突点がある. 23
波長ごとの屈折率の計算 Sellmeier の式を用いて計算できる n2 = 1 + ∑ i Biλ2
λ2 − Ci ある光学ガラスに対応する係数 Bi, Ci の値 がhttps://refractiveindex.info/にたくさんある 24
フレネル反射率の計算 Schlick の近似式を計算 F(θ) = F0 + (1 − F0)(1
− cos θ)5 F0 = ( n1 − n2 n1 + n2 )2 25
屈折方向の計算 お馴染みだと思うので省略 実装する上では前面の ior を何らかの方法で覚えておく必要がある 26
フォーカシング
フォーカシング レンズ系を z = zf にピント合わせすることを考える. ピント合わせはレンズ系全体を δ だけ動かすことで行う. 27
フォーカシング 厚レンズ近似で考えると, レンズの式で z = zf , z′ = 0
として 1 zf − p + δ + 1 −p′ + δ = 1 l これを解いて δ = 1 2(p − zf + p′ − √ (p − zf − p′ )(p − zf − 4l − p′ ) 28
主要点の計算 p, f, p′ , f′ は微小な y で光軸に平行な光線を入射し、レンズトレーシ ングを行って得られる出射光線から計算できる
29
レイのサンプリング
レイのサンプリング レイトレでレンズ系を使うために、像面から物空間に出ていくレイ をサンプリングする方法について考える 30
射出瞳 像面から見た絞りの像を射出瞳という z y 像面 射出瞳 31
射出瞳の計算 最後尾にあるレンズ面全体をグリッド分割して、各グリッドに飛ば したレイがレンズ系を通過できるかどうか調べればよい. これは計算量が多いので事前計算しておく. z y 像面 32
射出瞳の計算 射出瞳の形は厳密に求める必要はなく, Bounding Box で覆えれば十 分 33
射出瞳の計算 射出瞳は像面上の点一つ一つについて形が変わる. しかしレンズ系が軸対称なので全部を計算する必要はない. 対角線上の射出瞳のみを計算しておけば, 他のものはそこから選んで くることができる. 34
レイのサンプリング 次のような手順でレイをサンプリングする 1. 像面上の位置に対応する射出瞳の Bounding Box を選ぶ 2. Bounding Box
から点をサンプリングする 3. サンプリングした点に向ってレイを飛ばす 35
p.d.f. の計算 面積 A のバウンディングボックスから一様にサンプリングすると, 面 積に関する p.d.f. は pA
= 1 A 像面からサンプリング点までの距離を r, 生成したレイと z 軸のなす 角を θ とすると, 立体角に関する p.d.f. は p σ = r2 cos θ pA 36
像面への寄与の計算 像面は放射束を測定しているので, サンプリングしたレイが持つ放射 輝度を L とすると, 加算する寄与 C は C
= L cos θ p σ = L cos θ r2 cos θ 1 A = LA cos2 θ r2 37
レンダリング結果
レンズ 焦点距離 22mm の広角レンズを使用 Figure 4: 22mm 広角レンズ 38
レンダリング結果 レンズフレア, 色収差あり Figure 5: レンダリング結果 39
色収差の比較 (a) 色収差なし (b) 色収差あり 40
レンズフレアの比較 (c) レンズフレアなし (d) レンズフレアあり 41
50mm ダブルガウス 焦点距離 50mm のダウブルガウス型レンズ Figure 6: 50mm ダブルガウス型レンズ 42
レンダリング結果 色収差あり, レンズフレアなし Figure 7: レンダリング結果 43
10mm 魚眼 焦点距離 10mm の魚眼レンズ Figure 8: 10mm 魚眼レンズ 44
レンダリング結果 色収差あり, レンズフレアなし Figure 9: レンダリング結果 45
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
The End Thank you for listening. 47