舞檯燈光虛擬效果如何設計與實現?

開發舞臺燈光模擬系統對於舞臺燈光設計工作有著重要的意義,舞臺模型是多種多樣的,對於不同的舞臺,需要相應的燈光設計。這樣,在舞臺燈光設計工作過程中便會有許許多多的不確定因素。通過舞臺燈光效果的模擬,可以降低能源和時間的投入。

舞臺燈光虛擬效果如何設計與實現?

通過使用OGRE引擎的架構,能夠更加方便的模擬逼真的三維舞臺燈光環境,虛擬技術本身所具有的臨場感和交互能力不僅可以將靜態的設計和創作轉化為動態形式的再現,而且還可以及時地捕捉和展現設計者的構思、創意和靈感,一個成熟而完善的虛擬設計系統平臺,無論是對於燈光設計師、演出導演、燈光控制操作者,還是對於燈光美術教學和做燈光效果演示等,都是一個非常專業且實用的設計工具和得力助手。而實時方便的可交互性功能,則使得系統更加具有實時性和可操作性。

系統架構

邏輯架構

無論是遊戲還是虛擬現實,為了表現其逼真性,虛擬場景大多比較複雜,所以虛擬場景的創建大多由3D建模工具生成,然後對場景實時渲染輸出。舞臺燈光設計由3DMAX提供基本的場景文件,通過DOM(Document Object Model)接口進行解析,並進行資源的導入和場景的組織。最終進入OGRE系統進行渲染。

光照模型是多種多樣的,需要在場景中分別實現它們的效果。同時用戶也要能夠通過UI界面進行各種各樣的操作。系統要求操作複雜度高,計算量大,可擴展性強。需要設計與建立一個數據處理與計算效率高、可擴展性強、功能模塊松搞合強內聚的總體實現架構,系統分為資源層,接口層,渲染層。

舞臺燈光虛擬效果如何設計與實現?

▲邏輯架構圖

資源層:由3DMAX+Ofusion插件導出,生成場景組織,材質,實體,貼圖等系統所需的資源文件。

接口層:負責將這些資源文件導入場景中。

渲染層:實現舞臺場景和燈光的渲染,系統資源的管理,用戶交互的實時響應等。

系統實現關鍵技術研究

1、場景的組織和形成

系統所需的資源文件由3DMAX通過Ofusion插件導出。導出的場景組織文件是XML格式的,記錄著舞臺的一些基本的參數和每一個舞臺實體的位置、朝向等各個方面的信息。場景節點是以樹狀形式組織的每個節點都有相應的父節點,因此我們可以通過對父節點的操作,方便的使多個子節點同時移動和旋轉。

舞臺燈光虛擬效果如何設計與實現?

▲OGRE中場景管理圖

要把三維的渲染結果展現到二維的屏幕上,需要進行從三維座標到平面座標的轉換。首先,需要建立一個三維座標系,我們創建一個三維的斜二軸側座標系,其中x軸方向為水平向左,z軸方向為豎直向上,y軸的方向為與水平方向成45°角。在該座標系中顯示圖形時,x軸和z軸方向的長度取圖形實際長度,而y軸方向的長度則取實際長度的一半。

舞臺燈光虛擬效果如何設計與實現?

公式中,ηx、ηy、ηz是x、y、z軸的軸變形係數。進行軸測投影變換,可得下列方程式:

舞臺燈光虛擬效果如何設計與實現?

其中f和d是軸測變換矩陣係數,求解這個方程式,可得:

舞臺燈光虛擬效果如何設計與實現?

為了使立體感更強,令d=f= -0.354,可以求出軸測技影變換矩陣:

舞臺燈光虛擬效果如何設計與實現?

接下來,需要將圖形的三維座標轉化為屏幕上的設備座標,在透視窗口中,座標原點位於屏幕的左上角,向右的方向為x軸的正方向,向下的方向為y軸的正方向。

假設在三維空間中的一點(x,y,z),在設備座標中的座標是(xx,yy),運用剛剛的軸測投影變換矩陣,可以得到如下轉換公式:

舞臺燈光虛擬效果如何設計與實現?

公式中xX、yY,是三維座標原點在設備座標系中的相對座標。

由前兩式,可以得出變換方程:

舞臺燈光虛擬效果如何設計與實現?

2、粒子系統效果模擬

粒子是用四邊形來表示的。它有長寬、方向、顏色、壽命、數量、材質、重量和速率等屬性。粒子的屬性由粒子發射器(Particle Emitter)和粒子特效影響器(Particle Affector)共同決定。粒子發射器負責粒子的發射,給出粒子在發射時的一些屬性,包括運動速率、顏色、生命期等;粒子特效影響器負責粒子從發射後到消亡前這一階段粒子屬性的改變,可以用來模擬重力、拉力、顏色衰變等特殊效果。當粒子發射器不停地噴發出大量粒子時,就可以形成煙、火和爆炸等效果。OGRE提供了粒子系統腳本語言,可以在腳本中設置粒子的各種屬性。

3、光照效果模擬

光照是舞臺效果的關鍵因素,也是本設計系統核心的技術。渲染引擎提供了幾種常用的燈光,比如點光源、方向光源和聚光燈。但是對於真實的舞臺燈光效果模擬,這些是不夠的。對於一些特殊的舞臺燈光效果,比如體積光等,需要通過可編程渲染管線技術(shader)來實現。shader有兩種,一種是頂點級的,稱為vertex shader,取代固定渲染管線中的變換和光照部分,程序員可以自己控制頂點變換、光照等。硬件中處理頂點shader的單元叫vertex shader processors(頂點處理單元)。一種是像素級的,稱為pixel shader( OpenGL稱為fragment program),取代固定渲染管線中的光柵化部分,程序員可以自己控制像素顏色和紋理採樣等。硬件中處理像素shader的單元叫pixel shader processors(像素處理單元)。

為了使燈光的模擬更有真實感,還需要藉助3D的光照方程來模擬計算。這裡往往是一種近似的算法,但是它能達到一個很好的模擬效果和很快的運行速度。常見的光照模型有兩種:全局光照模型和直接光照模型。本系統採用全局光照模型。全局光照模型是一個能很好的模擬真實感的光照模型。它可以同時考慮到光線照射到物體表面上產生的反射、折射、透射、陰影和物體相互間作用的光照效果。利用全局光照模型,需要模擬實際光線的傳播過程和能量交換的輻射度。對於光線跟蹤,需要考慮光源的直接照射結果以及反射光對該點的照明效果,把兩者綜合起來:

舞臺燈光虛擬效果如何設計與實現?

接下來計算輻射度,需要計算每個面片上的光照情況:

舞臺燈光虛擬效果如何設計與實現?

這裡Ld是光源照射的光,T是光照傳播因子,TLi是其他面片反射來的光照,L便是最終要求的光照值。

系統界面及總結

系統可以實現舞臺的切換,舞臺中各種場景效果,也可以與舞臺場景和各種燈光進行實時交互。

舞臺燈光虛擬效果如何設計與實現?

▲舞臺煙火效果

舞臺燈光虛擬效果如何設計與實現?

▲體積光效果

舞臺燈光設計已經成為照明設計師的一個主要問題。他們經常要面對這樣高成本,高能耗和高耗時的問題。隨著信息產業的蓬勃發展,專業舞臺燈光領域也跨入了全面的數字化時代。系統利用0-GRE誼染引擎建立虛擬舞臺,並且對舞臺燈光設計及調整進行實時呈現,同時為舞臺燈光設計師提供了豐富的系統交互功能,能夠很好的解決這一難題。接下來,系統還需要進一步豐富舞臺的燈光模型,能夠模擬各種各樣的燈光,比如柔光燈,閃光燈,追光燈等。用戶的操作界面也需要進一步優化,提高用戶操作的友好性。


分享到:


相關文章: