OpenGL多光源Multiple lights
生活随笔
收集整理的這篇文章主要介紹了
OpenGL多光源Multiple lights
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
OpenGL多光源Multiple lights
- 多光源Multiple lights簡介
- 定向光
- 點光源
- 合并結果
多光源Multiple lights簡介
我們在前面的教程中已經學習了許多關于OpenGL中光照的知識,其中包括馮氏著色(Phong Shading)、材質(Material)、光照貼圖(Lighting Map)以及不同種類的投光物(Light Caster)。在這一節中,我們將結合之前學過的所有知識,創建一個包含六個光源的場景。我們將模擬一個類似太陽的定向光(Directional Light)光源,四個分散在場景中的點光源(Point Light),以及一個手電筒(Flashlight)。
為了在場景中使用多個光源,我們希望將光照計算封裝到GLSL函數中。這樣做的原因是,每一種光源都需要一種不同的計算方法,而一旦我們想對多個光源進行光照計算時,代碼很快就會變得非常復雜。如果我們只在main函數中進行所有的這些計算,代碼很快就會變得難以理解。
GLSL中的函數和C函數很相似,它有一個函數名、一個返回值類型,如果函數不是在main函數之前聲明的,我們還必須在代碼文件頂部聲明一個原型。我們對每個光照類型都創建一個不同的函數:定向光、點光源和聚光。
當我們在場景中使用多個光源時,通常使用以下方法:我們需要有一個單獨的顏色向量代表片段的輸出顏色。對于每一個光源,它對片段的貢獻顏色將會加到片段的輸出顏色向量上。所以場景中的每個
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的OpenGL多光源Multiple lights的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘发烫怎么解决 怎样解决U盘过热问题?
- 下一篇: OpenGL Assimp模型加载库