東京大学 The University of Tokyo 池内研究室 Computer Vision Laboratory 偏光レイトレーシング 宮崎大輔 2004年6月22日(火) CVLセミナー CVL Seminar 2004/June/22 発表の流れ 1. 2. 3. 4. レイトレーシング法 偏光 ミュラー計算法 偏光レイトレーシング法 (スライド3枚) (スライド3枚) (スライド15枚) (スライド約3枚) 2 東京大学 The University of Tokyo 池内研究室 Computer Vision Laboratory 1.レイトレーシング法 ray tracing algorithm 光線追跡法 視線探索法 CVL Seminar 2004/June/22 アルゴリズム • 以下を各画素で計算 1. 視線は画素を通って物体に向か う 2. 交差する物体があるなら視線と 物体の交点を求める.交差する 物体が複数あるなら全ての物体 について交点を求める 3. 視線と交点との距離を求め,最 も視点に近い物体を選ぶ 4. 輝度を計算 5. 反射方向・屈折方向を求め,こ れらの方向を視線とみなして2か ら再び実行 4 CVL Seminar 2004/June/22 反射光・透過光ベクトルの計算方法 • 反射光ベクトル R V 2cN • 透過光ベクトル 1 T V (c g )N n 反射方向や 表面法線 反射光 N R θ1 θ1 V n1 • ただし n2 c cos1 V N θ2 n2 n n1 g n c 1 2 視線方向や 入射光 2 2 T 透過方向や 透過光 -N gは正 gが実数でないときは全反射 5 CVL Seminar 2004/June/22 輝度の計算 表面法線 反射方向や 反射光 θ1 θ1 • スネルの法則 n1 sin 1 n2 sin 2 視線方向や 入射光 n1 • 反射率 R// R R 2 • 透過率 T// T T 2 • フレネルの公式 tan (1 2 ) tan2 (1 2 ) R θ2 1 0.9 0.8 sin (1 2 ) sin 2 (1 2 ) sin 21 sin 2 2 sin 2 (1 2 ) cos2 (1 2 ) sin 21 sin 2 2 T sin 2 (1 2 ) T// 透過方向や 透過光 2 0.7 0.6 反射率・透過率 R// 2 n2 R// R⊥ T// T⊥ R T 0.5 0.4 0.3 0.2 0.1 0 1 6 11 16 21 26 31 36 41 46 角度 51 56 61 66 71 76 81 86 6 東京大学 The University of Tokyo 池内研究室 Computer Vision Laboratory 2.偏光 polarization CVL Seminar 2004/June/22 偏光 • 偏光には2種類ある – 直線偏光 – 円偏光 • ここでは直線偏光のみを扱う 法線 入射角 反射角 光源 非偏光 (偏光度 0) 空気 物体 偏光板 完全偏光 (偏光度 1) 部分偏光 (偏光度 0~1) 8 CVL Seminar 2004/June/22 偏光の様子 //方向 入射光 法線 //方向 非偏光 ⊥方向 入 射 角 θ1 反 射 角 方向によって明るさが違う =光の振動方向に偏りが出る =偏光している ⊥方向 反射光 部分偏光 θ1 n1 媒質1 n2 媒質2 θ2 透 過 角 部分偏光 //方向 ⊥方向 透過光 9 CVL Seminar 2004/June/22 反射率・透過率 • 反射率 tan2 (1 2 ) R// tan2 (1 2 ) sin 2 (1 2 ) R sin 2 (1 2 ) θ1 θ1 n1 n2 θ2 • 透過率 sin 21 sin 2 2 sin 2 (1 2 ) cos2 (1 2 ) sin 21 sin 2 2 T sin 2 (1 2 ) T// 0.9 0.8 0.7 0.6 反射率・透過率 • スネルの法則 n1 sin 1 n2 sin 2 1 R// R⊥ T// T⊥ R T 0.5 0.4 0.3 0.2 0.1 0 1 6 11 16 21 26 31 36 41 46 角度 51 56 61 66 71 76 81 86 10 東京大学 The University of Tokyo 池内研究室 Computer Vision Laboratory 3.ミュラー計算法 Mueller calculus CVL Seminar 2004/June/22 偏光の計算 • 光の偏光状態を計算する方法には以下のような方 法がある – – – – – 先程の計算のみを使って行う coherence matrixを使う ミュラー計算法 ジョーンズ計算法 Chipmanの方法 12 CVL Seminar 2004/June/22 ストークスベクトル • 光の偏光状態を表す • 4次元ベクトルだが4つ目の要素は円偏光に関する ものなのでここでは最初の3つの要素だけを使い,3 次元ベクトルとして扱う s1 s s2 s 3 輝度を表す 0°の偏光の強さを表す 45°の偏光の強さを表す ストークスベクトル 200 s 20 100 正規化 (一つ目の要 素を1にする) ストークスベクトルの例 1 s 0 .1 0 .5 正規化された ストークスベクトル 13 CVL Seminar 2004/June/22 ストークスベクトルの例 1 0 0 非偏光 1 1 0 1 0 1 完全偏光0° 完全偏光45° 1 1 0 1 0 1 完全偏光90° 完全偏光135° 90°方向の強さと0°方向の強さが1:2の部分偏光 1.5 1 1 0.5 1 0.5 1 0 0 0 14 CVL Seminar 2004/June/22 ミュラー行列 • 物質が光の偏光状態をどのように変えるかを表す • 4x4行列だが円偏光は使わないので,左上3x3だけ の3x3行列として扱う • ストークスベクトルsの光が物質と反射や透過をして 出てきた光のストークスベクトルs'は,以下のように 計算できる s Ms • Mはミュラー行列 ストークスベ クトルsの光 ミュラー行列M で光の偏光状 態を変える物質 ストークスベクト ルs'=Msの光 15 CVL Seminar 2004/June/22 ミュラー計算の例 • ストークスベクトルs1を持つ光とストークスベクトルs2 を持つ光が合わさった光のストークスベクトルs'は s s1 s 2 • ストークスベクトルsの光がミュラー行列M1を持つ物 質を透過したあと,ミュラー行列M2を持つ物質を通っ て出た光のストークスベクトルs'は s M2M1s 16 CVL Seminar 2004/June/22 ミュラー行列の例 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0.5 0 0 0 . 5 0 0 0 0.5 1 0 0 0 0 0 0 0 0 真空 完全吸収板 明るさを半分に するフィルタ 偏光を解消する 理想拡散板 1 0 1 0.5 0 0 0 1 0 1 1 1 0 0.5 1 1 0 0 0 0 1 0 1 0.5 0 0 0 1 0 1 1 1 0 0.5 1 1 0 0 0 0 偏光板0° 偏光板45° 偏光板90° 偏光板135° 17 CVL Seminar 2004/June/22 ミュラー行列の計算例 1 1 1 0 1.5 1 0.5 1 1 0 0.5 0 0 0 0 0 1.5 1 1 0.5 1 0.5 1 0 0 0 18 CVL Seminar 2004/June/22 回転行列 回転行列 0 1 U( ) 0 cos 2 0 sin 2 sin 2 cos 2 0 19 CVL Seminar 2004/June/22 回転行列の計算例 0 0 1 1 1 0 cos 2 30 sin 2 30 1 1 2 0 sin 2 30 cos 2 30 0 3 2 回転行列30° 完全偏光0° 完全偏光30° 0 0 0 0 1 1 1 0 1 1 0 cos 2 30 sin 2 30 1 1 0 0 cos 2 30 sin 2 30 2 0 sin 2 30 cos 2 30 0 0 0 0 sin 2 30 cos 2 30 回転行列30° 偏光板0° 回転行列-30° 1 3 2 2 1 1 3 2 4 4 3 3 3 2 4 4 偏光板30° 1 20 CVL Seminar 2004/June/22 回転行列の使用例 α s'=M's s M' 0°のときのミュラー行列Mは分かるが 角度αのときのミュラー行列M'が分からない時 -α回転 -α回転 s α回転 MU(-α)s U(-α)s s'=U(α)MU(-α)s M 0°のときのミュラー行列が使える 21 CVL Seminar 2004/June/22 反射・透過を表すミュラー行列 • 反射を表すミュラー行列 R// R 2 n2 R (1 , ) R// R 2 n1 0 R// R 2 R// R 2 0 R// R 0 0 • 透過を表すミュラー行列 T// T 2 n T(1 , 2 ) T// T 2 n1 0 T// T 2 T// T 2 0 • ただし tan (1 2 ) tan2 (1 2 ) T// sin 21 sin 2 2 sin 2 (1 2 ) cos2 (1 2 ) R 0 2 T n1 θ1 θ1 n2 θ2 sin (1 2 ) sin 2 (1 2 ) R// 2 0 T//T st Rs s sin 21 sin 2 2 sin 2 (1 2 ) s t Ts n1 sin 1 n2 sin 2 22 CVL Seminar 2004/June/22 反射平面が角度αだけずれている場合 α α 正面から見た図 α s'=R's s R' -α回転 -α回転 s α回転 U(-α)s R RU(-α)s s'=U(α)RU(-α)s 23 CVL Seminar 2004/June/22 2回反射した場合 α β s'=U(α)R2U(-α)U(β)R1U(-β)s R1 -β回転 s U(-β)s β回転 R1U(-β)s -α回転 R2 U(-α)U(β)R1U(-β)s U(β)R1U(-β)s α回転 s' R2U(-α)U(β)R1U(-β)s 24 CVL Seminar 2004/June/22 局所座標を利用した場合 α γ y γ回転 y y α回転 x α γ=β-α x x s'=U(α)R2U(γ)R1s γ回転 R1 s R1s R2 U(γ)R1s α回転 R2U(γ)R1s s' 25 CVL Seminar 2004/June/22 計算方法 yˆ N R y xˆ x z zˆ V レイ T N y V yˆ r z yˆ xˆ x xˆ r zˆ R zˆ z zˆ r zˆ t yˆ zˆ xˆ レイと法線が重なる場合,すなわち V N の場合 ˆ yˆ t xt yˆ VN ˆx VN zˆ z T y xˆ x xˆ x yˆ y zˆ r R xˆ r xˆ yˆ r zˆ r xˆ r zˆ t T xˆ t xˆ yˆ t zˆ t xˆ t xˆ px qy rzを解き,p,q,rを求める(r=0) cos p を解き,αを求める sin q 26 東京大学 The University of Tokyo 池内研究室 Computer Vision Laboratory 4.偏光レイトレーシング法 polarization ray tracing CVL Seminar 2004/June/22 偏光レイトレーシング • レイトレーシング – レイの反射・透過する方向を計算する – 輝度を計算する • 偏光レイトレーシング – レイの反射・透過する方向を計算する – ミュラー計算法で光の偏光状態を計算する 光の偏光状態を計算するレイトレーサには 1. LightTools, http://www.opticalres.com/ 2. ZEMAX, http://www.zemax.com/ 3. OptiCAD, http://www.opticad.com/ などが市販されている 28 CVL Seminar 2004/June/22 V1 Ni θ1 L1 θ1 Pi この図の場合で計算の例を示す V2 2点までレイを追跡した例 Nj ベクトルは全て単位ベクトルとする θ2 θ2 Pj L2 29 CVL Seminar 2004/June/22 V1 Ni θ1 L1 θ1 Pi 出力のストークスベクトル Iは以下のように計算できる I R U(1 )R(1 , n)I(L1 ) U(1 )T(1 , n)U( 2 )T(2 ,1 n)I(L2 ) 物体の屈折率 n は与えられているとする V 2 Nj θ2 θ2 I(L) 方向 L にある光源のストークスベクトルを返す関数 光源は非偏光とする(非偏光でなければ回転行列をもう一つかける) 光源環境は既知とする Pj L2 30 CVL Seminar Ni 2004/June/22 V1 ミュラー行列は以下のように計算できる L1 θ1 R 2 R R 2 0 R // // R (θ, n) R// R 2 R// R 2 0 1 0 0 R// R T// T P2 T// T 2 0 i T( , n) T// T 2 T// T 2 0 0 0 T//T 0 0 1 U( ) 0 cosV 22 sin 2 N 0 sin 2 cos 2 j tan2 ( ) R// tan2 ( ) T// θ2sinθ2 (2 ) R sin 2 ( ) sin 2 sin 2 sin 2 ( ) cos2 ( ) n P Tj sin 2 sin 2 sin 2 ( ) sin sin L2 31 CVL Seminar V1 Ni θ1 L1 2004/June/22 cos1 Ni V1 θ1 L1 V1 2cNi c cos1 Pi cos2 N j V2 V2 1 V2 V1 (c g )N i n c cos1 g 2 n2 c 2 1 Nj θ2 θ2 L2 nV2 (c g )N j Pj c cos2 1 g 2 2 c2 1 n L2 32 CVL Seminar 2004/June/22 V1 Ni θ1 L1 θ1 jはレイを追跡して求める Pi j arg min { j| jallpatches, j i} Pj Pi s.t. V2 P j Pi P j Pi 離散的なパッチの場合,=ではなく≒ V2 Nj θ2 θ2 Pj L2 33 CVL Seminar Ni V1 z y y1x1 z 1 x1 p1x q1y r1z cos 1 p1 sin 1 q1 2004/June/22 x 1 ~z 1 ~ x1 ~ y1 1 x 0 0 V2 z1 z x1 0 y 1 0 0 z 0 1 V1 Ni V1 Ni y1 z1 x1 ~ x1 x1 ~ y1 ~ z1 ~ x1 2 N j z 2 x 2y 2 x2 p2~ x1 q2 ~ y1 r2 ~ z1 cos 2 p2 sin 2 q2 ~ z1 V2 z2 ~ z1 x2 V2 N j V2 N j y 2 z 2 x2 34 CVL Seminar 2004/June/22 レイトレの実装 I R U(1 )R(1 , n)I(L1 ) U(1 )T(1 , n)U( 2 )T(2 ,1 n)I(L2 ) 略記 I R1I1 T1T2I 2 T1R2T3I3 T1R2R3T4I 4 T1R2R3R4T5I5 初期設定 I zero vector M identitymatrix 点1にて I I MR1I1 M MT1 点2にて I I MT2I 2 M MR 2 点3にて I I MT3I3 M MR3 点4にて I I MT4I 4 M MR 4 点i(i≠1)にて I(i ) I(i 1) M(i 1)Ti Ii 点1 点4 点2 点3 M(i ) M(i 1) Ri 35 東京大学 The University of Tokyo 池内研究室 Computer Vision Laboratory © Daisuke Miyazaki 2004 All rights reserved. http://www.cvl.iis.u-tokyo.ac.jp/
© Copyright 2024 ExpyDoc