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