OpenGL散射照明
生活随笔
收集整理的這篇文章主要介紹了
OpenGL散射照明
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
OpenGL散射照明
- OpenGL散射照明簡(jiǎn)介
- 源代碼剖析
- 主要源代碼
OpenGL散射照明簡(jiǎn)介
背景光和散射光的主要區(qū)別在于漫反射光依賴于光線的方向,而背景光則完全忽略它。如果僅表示背景光,則所有對(duì)象都同樣亮起。漫反射使光線落在的對(duì)象的一部分比其他對(duì)象更亮。
散射光還增加了光線落在表面上的角度決定該表面亮度的條件。此事實(shí)顯示了以下圖像:
讓我們假設(shè)兩個(gè)光束的強(qiáng)度是相同的,其方向的差異。散射光模型表示,左側(cè)表面將比右側(cè)曲面更亮,因?yàn)樗系墓饩€以比右側(cè)更大的角度落下。事實(shí)上,左邊的表面是最亮的,因?yàn)楣饩€以90度角落在它上。
散射光模型基于蘭伯特斜體定律,該定律指出,從表面反射的光強(qiáng)度與觀察者視線與曲面法線之間的角度余弦成正比。請(qǐng)注意,我們使用光的方向而不是視線(將在反射光中使用)稍微改變了它。
要計(jì)算散射模型中的光強(qiáng)度,我們只需使用光方向和法線到表面之間的角度余弦(而蘭伯特定律是指更籠統(tǒng)的"直接相稱性"概念)。請(qǐng)考慮以下圖像:
總結(jié)
以上是生活随笔為你收集整理的OpenGL散射照明的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: OpenGL背景照明
- 下一篇: OpenGL通过Assimp加载模型