溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

拓幻圖形學工程師教學手冊(第七講)|一字一字敲出OpenGL學習教程

發布時間:2020-04-02 18:26:17 來源:網絡 閱讀:286 作者:微微之知 欄目:軟件技術

本文繼續上一節
5.3 OpenGL內置光照模型

OpenGL光照分為三種,Ambient(環境光),Diffuse(漫射光)和Specular(鏡面反射光)。

Ambient 不依賴于光源的方向。光線在物體表面上向各個方向上均勻泛射,場景中的物體都會泛射光,這些泛射光又會照射到其他 物體上繼續被泛射,直到光子能量耗盡為止,這樣整個場景中散布著這樣的泛射光??赏ㄟ^設置一個顏色常量來表示環境光。Ambient = a constant。

Diffuse 只依賴于光源的方向和法線的方向。因此為只和表面與光線入射夾角有關的光線。我們之所以能看到物體,就是因為物體將入射的光然后向各個方向反射(所以稱之為漫反射)。物體的漫反射材質屬性對物體的顏色起著決定性作用。Diffuse = I*cosΘ,Θ為入射角角度,也就是光來的方向和法線的夾角。

Specular依賴于光源的方向,法線的方向和視角的方向。不但和表面與光線入射夾角有關,而且還和觀察角度有關的光線,并且根據表面光滑程度,呈現不同亮度,越光滑,越容易產生高光區域。在 OpenGL 中,鏡面光的強度可通過光滑度(shininess)來調節。

Specular = I*cossφ ,其中指數s就是光滑度。1/s就是粗糙度(Roughness)。
看一下效果圖:
拓幻圖形學工程師教學手冊(第七講)|一字一字敲出OpenGL學習教程
下面介紹一下三種不同的光源。

Directional Light 平行光(方向光),可以改變角度??梢月撓胩柟?。

Point Light 點光源(由一個點向四周發射光源),可以改變位置??梢月撓霟襞?。

Spot Light 聚光燈(聚光/錐光)。比較耗費資源,可以改變位置和角度??梢月撓胧蛛娡?。

拓幻圖形學工程師教學手冊(第七講)|一字一字敲出OpenGL學習教程
再看一下光源位置不同造成的不同效果:
拓幻圖形學工程師教學手冊(第七講)|一字一字敲出OpenGL學習教程
左邊是點光源在人眼位置,右邊為點光源在坐標原點。

5.4 使用OpenGL光照

教大家一個簡單的運用光照的代碼:
拓幻圖形學工程師教學手冊(第七講)|一字一字敲出OpenGL學習教程
然后再設置全局光照信息:
這樣有個好處就是可以輕松控制光的強度,比如這里的0.3f。

設置材質:
拓幻圖形學工程師教學手冊(第七講)|一字一字敲出OpenGL學習教程
設置光源特性:
拓幻圖形學工程師教學手冊(第七講)|一字一字敲出OpenGL學習教程
可以將這些代碼整合為以下代碼,放到方法體里面去:
拓幻圖形學工程師教學手冊(第七講)|一字一字敲出OpenGL學習教程
拓幻圖形學工程師教學手冊(第七講)|一字一字敲出OpenGL學習教程
具體怎么使用,還需要各位參見Github我們的源碼再實戰一下。才能真正體會到光照這一塊的用法。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女