摘 要:目前,虛擬漫游技術已越來越多應用在風景旅游景區的三維實景展示當中。通過各種虛擬漫游技術,使得景區風光再現,實現足不出戶就可以進行參觀旅游的目的。在眾多景區漫游系統建立當中,提高自然景觀的真實再現是提高旅游場景逼真度要解決的重要問題。本文對Shader技術進行研究,并對其提高景區常見自然景觀的還原度的方法進行總結歸納。
關鍵詞:虛擬現實;Shader;自然景觀;高還原度
虛擬現實技術(VirtualReality)又稱靈境技術,是利用計算機生成一種模擬環境,并通過多種專用設備使用戶“投入”到該環境中,實現用戶與該環境直接進行自然交互的技術,其在計算機動畫、電腦游戲、影視特技、軍事仿真、建筑景觀設計等方面都有著非常廣泛的應用。目前,虛擬現實技術技術的應用推廣在旅游行業尤其廣泛。而旅游場景當中自然景觀的模擬一直是計算機圖形學領域和虛擬現實領域的研究熱點和難點。如地形地貌的生成技術、植物形態的造型及其生長狀態模擬及其他物理現象的模擬等。常見的提高虛擬現實產品的畫面品質的方法有:光照貼圖、法線貼圖、 Shader、動態光源等技術。下面我們就Shader技術對提高自然景觀效果中的材質效果方面進行初步的探討研究。
1 自然景觀特點分析
旅游景點的自然景觀有地域廣大、植被豐富、物理特性多樣化等特點。在旅游場景中常見的自然景觀有山、石、草、樹、水等場景對象,其中地形、植被、花草、甚至有些景區的建筑材質紋理是最為豐富多樣。植被的種類、地形地貌的特色、建筑物的材質紋理各有不同,是否能進行風格化的制作效果的實現決定了景區真實還原效果的高低。而對旅游景區的自然景觀進行高仿真度還原,采用普通的貼圖、渲染的方法往往是不夠的。因此通過研究虛擬現實的渲染技術對自然景觀場景對象進行特色還原,有著十分重要的意義。
2 Shader技術
Shader也稱為著色器技術。程序員通過對GPU編寫一段程序來控制渲染輸出效果,從而實現一些固定流水線中沒有定義的技術,這種程序被稱為Shader 程序。 Shader技術通過運行在GPU上運行的程序,對三維物體進行著色處理、光與影的計算、紋理顏色的呈現等,將游戲引擎中各種作為抽象的集合數據存在的模型、場景和特效,以與真實世界類似的光與影的形式呈現在觀賞者眼中。著色器的類型有兩種:頂點Shader和片段Shader。頂點程序運行在頂點處理器上,片段程序運行在片段處理器上。頂點著色程序從 GPU 前端模塊(寄存器)中提取圖元信息,如頂點位置、法 向量、紋理坐標等,并完成頂點坐標空間轉換、法向量空間轉換、光照計算等操作,最后將計算好的數據傳送到指定寄存器中;片斷著色程序從中獲取需要的數據,如紋理坐標、光照信息等,并根據這些信息以及從應用程序傳遞的紋理信息(如果有的話)進行每個片斷的顏色計算,最后將處理后的數據送光柵操作模塊。頂點 Shader可以提供更靈活的光照模型計算方法;而像素 Shader 提供了一種靈活的建立真實光照模型和實現很多特殊效果的方法。
作為面向GPU編程的技術,實現Shader可采用三種高級圖像語言可選擇。分別是微軟的HLSL;OEnGLish的GLSL及NVIDIA 的Cg語言。而在Unity開發環境中對Shader編程語言的支持很全面。因此在此我們以Unity引擎開發環境進行討論。
3 Shader技術在自然景觀方面的應用
3.1 遮罩紋理
遮罩紋理的原理是允許保護某些區域使其免于修改。如當使用高光反射應用到模型時通常會將其應用到模型表面所有地方,也就是所有像素都使用相同的高光強度及指數。但有時,當希望表現模型表面某些區域反光強烈些,某些區域弱一些的細膩效果時,就可以使用遮罩紋理來控制光照。
遮罩紋理的處理思想為:通過采樣得到遮罩紋理的文素值,然后使用其中某個或某幾個通道的值來與某種表面屬性進行相乘,當通道值等于0時,可以保護表面不受該屬性的影響。這種紋理可以應用在表現草地紋理、石子紋理及表現裸露土地紋理上。
3.2 凹凸紋理
凹凸紋理使用一張紋理來修改模型表面的法線,通過擾動物體表面法向量,同時與每個面片的光照相結合來模擬粗糙物體表面凹凸不平的細節。凹凸紋理映射借助光照模型來實現,通過凹凸紋理映射,能夠在一個凹凸紋理中記錄影響物體光照外表的詳細表面特征,而不用增加物體的幾何復雜度,從而達到模擬更多表面細節的效果。進行凹凸紋理映射的方法有兩種:一種是使用高度紋理來模擬表面位移,得到一個修改后的法線值;另一種則使用法線紋理直接保存表面法線,因此又被稱為法線映射。凹凸紋理在表現石質材質、樹木紋理上可以有很好的應用。
3.3 程序紋理
程序紋理是那些由計算機生產的圖像,通常使用一些特定的算法來創建個性化圖案或非常真實的自然元素。程序紋理可以通過聲明程序里的各種參數設置來調節紋理外觀,參數的屬性即可以是顏色屬性,也可以是完全不同類型的圖案屬性。通過對程序紋理屬性的自由調整,程序紋理可以用于產生豐富多樣的視覺效果,如木頭、石子等的自然元素可以采用程序紋理實現。
4 總結
虛擬現實技術在我國各行業的應用發展如火如荼,特別在旅游景區方面的應用尤為普遍。但畫面效果不夠逼真,沉浸度不夠一直成為該項技術應用的瓶頸。在眾多提高畫面品質及還原度的研究當中,Shader模型技術作為一款優秀的優化渲染引擎模式一直廣受業內歡迎。在提高旅游地自然場景的需求中,如何利用先進的Shader技術,通過其真實表現真實世界的各種光影效果的特點,去應用在各種自然景觀的真實感還原效果當中,是十分值得我們探討的。然而Shader模型技術還有很多,本文只對真實場景當中常見的自然材質可采用的Shader 技術進行了初步討論。隨著技術的發展及研究的不斷深入,今后在這方面的研究仍應繼續進行。
參考文獻:
[1] 費嘉,郭善良.基于shader實現的光線透射效果[J].計算機工程與設計,2007,28(8):1873-1875.
[2] 馮樂樂.Unity Shader入門精要[M].人民郵電出版社,2016.
[3] 劉飛洋.虛擬場景真實感繪制關鍵技術研究及實現[D].電子科技大學,2011.
[4] 張焱.Shader模型綜述[J].計算機時代,2010(1):1-3.
作者簡介:
黃筱佟(1981-),女,廣西梧州人,碩士,講師,研究方向:數字媒體技術。