最近在看鐘錫華先生編著的《現代光學基礎》,第一章介紹齊明點時給出了乙個例子,就是今天要討論的單球面折射時的齊明點。書中給出了齊明點的位置,但是沒有給推導過程。我就試著推導了一下,放在這裡做個筆記。
齊明點(aplanatic points)又稱為等光程點或不暈點。簡單的說就是在此處發出的光線經過折射後可以精確匯聚於一點,沒有球差、彗差和像散。
如下圖:
點是物點,q′
0 點是像點。物點向右方射出的光線要求都能匯聚到像點上。其中圓球內的折射率為
n ,外部為 n′
,並且n
>n′
。根據三角形正弦定理,可知如下兩組關係: si
n(u)
r=si
n(i)
ssin
(u′)
r=si
n(i′
)s′
由折射定律我們還知道: ns
in(i
)=n′
sin(
i′)
前兩個式子可以變個形,同時利用折射定律: s=
sin(
i)si
n(u)
r=n′
nsin
(i′)
sin(
u)rs
′=si
n(i′
)sin
(u′)
r=nn
′sin
(i)s
in(u
′)r
根據三角形內角和關係,我們還有: u+
i=u′
+i′
觀察上面的式子,我們發現如果讓: s=
n′nr
那麼 i′
=u, i=u
′ 。 這時:s′
=nn′
r 是個定值。也就是說無論入射角
u 是多少,都會匯聚到同樣乙個點。這一對點就稱為齊明點。
第乙個發現齊明點的人很了不起,我知道結論了都推導了小半天。。。
一日一Shader 水面折射 SG 17
今天回看昨天做的折射的效果,發現我想的太狹隘了,我完全是按球體的光學原理來實現,所以用其他形狀的透鏡時,效果就是錯誤的。想了想,不規則透鏡的折射效果更多的是一種模擬。不過,我還是想嘗試實現波紋水面的折射效果,因為只用考慮乙個面,所以光學模型還是比較容易構建的。將上圖中的光線原理轉換為幾何問題 已知向...
Linux的遠端桌面折騰指南
因為實驗伺服器需要遠端提供給研一童鞋使用,這兩天折騰了一下linux的遠端桌面,在此記錄總結一下。伺服器系統為lubuntu 16.04 單使用者的情況下,使用x11vnc是最簡單的方法,詳細設定過程可以參看這篇文章,該文提供了自動配置指令碼。這裡不再贅述。注意事項 指令碼最後有一段關機命令,注意根...
Unity3D Shader(17) 水的折射
這裡引用的是蠻牛的unity3d shader的高階教程裡的 諮詢 qq254033230 這裡依然用的是vertex 和fragment shader來解決水的反射的問題。首先,準備兩個平面,乙個平面作為底圖,乙個平面模擬水的波動。這裡要用到抓取底圖的通道 grabpass 然後把抓取的通道圖放到...