2014-05-05 17 views
1

我想了解如何使用glsl的折射函數進行光線追蹤。假設我有一個折射率爲1.5的物體。如果我想要生成折射光線,請撥打refract(rayDir, surfNorm, 1.0/1.5)正確?GLSL Refract - 對於更密集或更密集的過渡,eta值是多少?

但是,我想知道如何處理得到的透射光線,當它到達物體的另一側並離開時。這個函數調用的eta值是什麼?它是1.5/1.0嗎?

回答

1

坦率地說,我不是非常熟悉,但因爲沒有其他人回答:

refract()的第三個參數被記錄爲「折射埃塔指數的比率」。所以你的建議對我有意義。它從材料A到材料B的比率爲eta,從材料B到材料A的比率爲1.0/eta

+2

經過多一點研究後,我發現該比例始終是「材料折射率指數IOR)'/'目的地素材IOR'。所以如果我從空氣到玻璃,它是1.0/1.5(空氣IOR /玻璃IOR)。如果我從玻璃到空氣,它是1.5/1.0(玻璃IOR /空氣IOR)。 – Justin