單球面折射的齊明點

2021-08-13 17:10:53 字數 1060 閱讀 7032

最近在看鐘錫華先生編著的《現代光學基礎》,第一章介紹齊明點時給出了乙個例子,就是今天要討論的單球面折射時的齊明點。書中給出了齊明點的位置,但是沒有給推導過程。我就試著推導了一下,放在這裡做個筆記。

齊明點(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 然後把抓取的通道圖放到...