版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
3D游戲引擎中的室外大場景襯著技術(shù)研究和實(shí)現(xiàn)3D游戲特別是網(wǎng)絡(luò)在線游戲中,室外大場景襯著是一塊特別重要的內(nèi)容,它也是3D圖形引擎的核心。它是圖形學(xué)和圖像辦理理論最直接的使用,其波及的技術(shù)還能夠使用于其余領(lǐng)域,比方虛構(gòu)現(xiàn)實(shí)、3DGIS、數(shù)據(jù)可視化等,其重要性不行置疑。跟著硬件的不停發(fā)展,行業(yè)對襯著場景的規(guī)模和真切感提出了更高的要求。第四章場景的真切感襯著技術(shù)第三章議論了如何有效繪制地形的三角形面片,對于怎么在面片上表現(xiàn)真切的地表(草地、沙粒),以及怎么表現(xiàn)光照、天空、植物等,這一系列問題波及的就是場景的真切感渲染技術(shù)。4.1紋理映照技術(shù)4.1.1觀點(diǎn)在游戲設(shè)計中,因?yàn)榭陀^世界變化多端、盤根錯節(jié),要把真切世界的各樣細(xì)微構(gòu)造直接用幾何模型表示出來,不單模型難以成立,并且計算量宏大,難以知足及時顯示的需要,比如一張曲面能夠用很多細(xì)小的多邊形(或曲面片)表示其表面細(xì)節(jié),假設(shè)每個細(xì)小多邊形擁有近似相同的表面特點(diǎn),要顯示這樣一個曲面,就一定對這些細(xì)小多邊形(或曲面片)進(jìn)行分別辦理,這將需要大批的儲存空間和辦理時間,所以在實(shí)質(zhì)使用中,為了獲取比較高的顯示速度,常常以犧牲圖形的真切感為代價。只管這樣,顯示一幅比較復(fù)雜的圖像仍舊需要很長時間。于是,人們就想象能否能夠用“貼墻紙"的方法將反應(yīng)物體表面的細(xì)節(jié)的圖案貼到物體表面,進(jìn)而開拓了一個新的研究領(lǐng)域一紋理映照(TextureMappirig)。辦理過程以下列圖:紋理映照的方式主要分為三種:顏色紋理映照:最簡單和最基本的使用是將一幅花紋圖案映照到物體表面,采納和表面上點(diǎn)的地點(diǎn)有關(guān)的值(如:參數(shù)曲面上一點(diǎn)的參數(shù)值)來確立紋理坐標(biāo)并采樣包含圖案的紋理,采樣值用定義該點(diǎn)的顏色。經(jīng)過此類方法在圖案和表面點(diǎn)之間成立的固定聯(lián)系,不會因視線的改變而改變。當(dāng)花紋或圖案繪上以后,表面仍圓滑如故,這類紋理稱為顏色紋理,形如在物體表面繪制了一些花紋圖案。凸凹紋理映照:依據(jù)粗拙表面的光反射原理,經(jīng)過一個擾動函數(shù)擾動物體表面法向量,使圓滑表面獲取調(diào)制,并在光芒下表現(xiàn)出凸凹不平的形狀,這類紋理稱為凸凹紋理(或幾何紋理)。利用擾動函數(shù)能夠很好的模擬皮毛、頭發(fā)、衣服之類的物體。過程紋理映照:過程紋理映照屬于三維紋理,它就是將三維的紋理函數(shù)映照到三維物體上。也就是說在物體的內(nèi)部也會遇到紋理的影響。比如,木材和大理石的紋理,需要考慮每一個相鄰面的紋理映照,往常每個面分別進(jìn)行顏色紋理映照時,因?yàn)槊娴慕缦尢幖y理不連續(xù),常常難以表現(xiàn)出自然的紋理,這類場合定義三維的紋理函數(shù)進(jìn)行立體紋理映照是特別有效的。用過程紋理模擬物體表面細(xì)節(jié),能夠在特別復(fù)雜的曲面上表現(xiàn)連續(xù)的紋理,且紋理成效不受物體表面形狀的影響,能夠很大程度的解決紋理走樣問題。4.1.2OpenGL實(shí)現(xiàn)紋理映照的步驟指定紋理在最簡單的狀況下,紋理是單個圖像。利用稱為MipMap的技術(shù),程序員能夠指定同一紋理的多級分辨率圖像,在進(jìn)行紋理映照過程中,該技術(shù)能夠依據(jù)光景表面在屏幕上所占地區(qū)分大小,自動選擇適合分辨率的紋理圖像對光景表面進(jìn)行映照,以防止因紋理映照中的點(diǎn)采樣方式所致使的紋理走樣。此外,圖像的定義能夠包含界限值,以防備物體的紋理坐標(biāo)高出有效地區(qū)。界限值同意程序員把多個紋理映照光滑的粘貼在一同,進(jìn)而增添最大可用紋理的有效尺寸。有關(guān)函數(shù):glTexImage2D( ),glTexGen( )。紋理如何作用于每個像素點(diǎn)OpenGL依據(jù)片元的顏色和紋理圖像數(shù)據(jù)中的顏色來計算最后的RGBA值。程序員可以選擇下邊三種功能中的一種:a.能夠簡單的使用紋理顏色作為最后的顏色,這類方法好像貼花相同,紋理被粘貼在片元的表面上;b.能夠用紋理來調(diào)整片元的顏色和顏色比率,該技術(shù)對光照和紋理的綜合成效特別實(shí)用;C.用紋理值將一個固定的顏色和片元的顏色混淆在一起。有關(guān)函數(shù):glTexParameter(···),glTexEnv(··)。激活紋理顏色在繪制場景以前需激活紋理映照。有關(guān)函數(shù):glEnable( ),glDisable( )。利用紋理坐標(biāo)和幾何坐標(biāo)繪制幾何場景在粘貼紋理以前,一定說明紋理相當(dāng)于片元是如何擺列的。也就是說,一定指定場景中物體的紋理坐標(biāo)和幾何坐標(biāo)。對于二維紋理圖可指定其兩個方向上的紋理坐標(biāo)均為[O.0,1.0],而要粘貼紋理的物體坐標(biāo)能夠是隨意的。有關(guān)函數(shù):glTexCoord*( )。4.2用多層紋理混淆貼圖模擬交融性地表4.2.1紋理混淆貼圖對于小的地形,我們能夠考慮在整個地形上貼一張紋理。比方65×65的地形貼上一張128×128的圖片。但是當(dāng)?shù)匦魏艽髸r,我們的貼圖不行能很小。當(dāng)貼圖很小時,地形會被拉伸產(chǎn)生失真;當(dāng)把貼圖選得太大,顯卡會承受不了。于是有人想到了,利用紋理貼圖坐標(biāo)(texturecoordinate)的設(shè)定,我們能夠?qū)⒁粡垐D片一次次的重復(fù)貼至地形場景上,也就是所謂圖素紋理(tiletexture)的方法;不把128x1.28的圖片直接映照(mapping)至整個地形范圍,而是以每個128x128大小為一個單位,將圖文件完好貼上,這樣頻頻進(jìn)行貼圖,就像是鋪地板磚相同。這樣的方法,確實(shí)能夠大幅減低貼圖失真的情況,但是假如還想進(jìn)一步實(shí)現(xiàn)更真切的地形場景貼圖,就會發(fā)現(xiàn)這個作法仍是有不足之處。一個地形場景往常不會只擁有單唯一種款式的地貌。舉例來說,可能依據(jù)地形高度的不一樣,在平川上會有草地,高度往上的山坡會有沙地,在山頂或峻峭之處可能會有巖地或雪地等等多種可能的組合。假如想達(dá)成這種形式的地形紋理貼圖,就不是簡單的使用圖素紋理(tiletexture)能夠?qū)崿F(xiàn)的了。這就需要紋理混淆貼圖(TextureBlending)技術(shù)。兩層紋理混淆原理公式:C=a*alpha+b*(1-alpha)。4.2.2鑒于索引圖的紋理混淆貼圖在好多游戲中,地形紋理又分為粗紋理和細(xì)節(jié)紋理。粗紋理是指表現(xiàn)地表大概圖像的紋理,比方一片草地,它的粗紋理就能夠是一張綠色的圖片。而細(xì)節(jié)紋理顧名思義是指表現(xiàn)細(xì)節(jié)的紋理,在例子中,它就能夠是一張表現(xiàn)草的細(xì)節(jié)、沙石細(xì)節(jié)的圖片。一張粗紋理一般映射得很廣,甚至映照到整個地形;而細(xì)節(jié)紋理一般是頻頻貼圖
(鋪磚)。室外場景一般
2到
3張細(xì)節(jié)紋理足以表現(xiàn)出美麗的結(jié)果。
當(dāng)多張細(xì)節(jié)紋理混淆時,
怎么表現(xiàn)不一樣紋理間的光滑過渡呢·能夠使用紋理索引圖技術(shù)。如圖
4.2在灰度圖表示的紋理混淆索引圖中每個像素對應(yīng)地形中的一塊地區(qū)(不可以太大),白色像素表示那塊地區(qū)貼巖石紋理,黑色像素表示貼草地紋理,灰色像素即是兩種細(xì)節(jié)紋理的混淆。比方灰度值是78,則在混淆過程中巖石紋理的alpha=78/256×100%。同理,我們能夠用彩色圖來表示更多細(xì)節(jié)紋理的混淆索引。令索引貼圖的R重量代表沙岸的紋理,G重量代表草地,B重量代表巖石。假如索引貼圖上一個像素的值是(0,255,0),即綠色,則這個像素所對應(yīng)的地形地區(qū)的詳細(xì)紋理就為草地。假如該像素顏色值是(127;127,0),即黃色,則該像素所對應(yīng)的地形地區(qū)的紋理為草地和沙岸的混淆,看起來既有草,又有沙。這類方法的長處是簡單、靈巧,方便美工人員設(shè)計地表的紋理。紋理混淆的OpenGL實(shí)現(xiàn)在OpenGL中,紋理混淆有三種方式來實(shí)現(xiàn):多通道多遍襯著,單通道多重襯著,用GLSL(GLShadingLanguage)實(shí)現(xiàn)多紋理混淆?!ざ嗤ǖ蓝啾橐r著我們把地形用第一種紋理畫出一次,而后再開啟阿爾法混淆第二種紋理再畫出地形一次,這樣用不一樣紋理重復(fù)多次畫出地形。顯卡,但襯著速度會受很大影響。
(alphablending)的功能,用這類做法適應(yīng)配置低端的·單通道多重襯著這類方法要用到兩個OpenGL擴(kuò)展指令(OpenGLExtensions),分別是GL_ARB_multitexture和GL_EXT_texture_env_combine。GL_ARB_multitexture能夠讓我們一次控制二到多個紋理單元(textureunit)的操作。這類技術(shù)適合于配置中端的顯卡,速度也很快,但是支持的紋理個數(shù)有限。其步驟:地形初始化時,由紋理混淆索引圖確立每個地形極點(diǎn)的全部紋理的映照坐標(biāo),紋理間的混淆alpha值。初始化多重紋理,載入紋理貼圖,設(shè)置有關(guān)參數(shù)。襯著時,用glMultiTexCoord2fARB設(shè)置極點(diǎn)的紋理映照坐標(biāo),重點(diǎn)代碼以下:·用shader實(shí)現(xiàn)多紋理混淆所謂shader是鑒于顯卡的著色器。OpenGL和DirectX都先后公布了自己的著色器語言,如OpenGL的GLSL(GLShaderLanguage)。這是目前比較新的襯著技術(shù),這類方式編寫程序簡單,速度很快,支持的紋理也好多,但顯卡一定是比較高階的支持著色器語言的。這類方法在下邊章節(jié)光照貼圖中會有有關(guān)代碼。4.3室外場景的光影辦理要繪制傳神的場景一定做光照辦理。沒有光照的三維物體模型和二維物體沒有任何差別,沒有一點(diǎn)立體感。只有擁有光照的物體才是真切的三維物體。光照耀到物體表面時,可能被物體汲取、反射或透射。光的反射和透視部分進(jìn)入視覺系統(tǒng)使我們能看見物體。光的顏色是由其波長決定,一束白光含有全部可見波長的光。白光照耀物體時,只有全部可見光被等量汲取物體才會表現(xiàn)灰色;假如被不等量汲取,物領(lǐng)會表現(xiàn)其余的顏色。光的亮度由光強(qiáng)決定。從物體表面反射出來的光的強(qiáng)度取決于光源的地點(diǎn)、光強(qiáng)、物體材質(zhì)、物體表面地點(diǎn)、物體表面法線和視點(diǎn)的地點(diǎn)。4.3.1光照模型介紹光照耀到物體表面時,光芒可能被汲取、反射和透射。被物體汲取的部分轉(zhuǎn)變?yōu)闊?,反射、透射的光進(jìn)入人的視覺系統(tǒng),使我們能看見物體。為模擬這一現(xiàn)象,我們成立一些數(shù)學(xué)模型來代替復(fù)雜的物理模型,這些模型就稱為明暗效應(yīng)模型或許光照模型。在真切感圖形學(xué)中,我們把僅辦理光源直接照耀物體表面的光照模型稱為局部光照模型,而和此相對應(yīng)的,能夠辦理在物體之間光照的互相作用的模型稱為整體光照模型。Phong光照模型Phong光照模型綜合反應(yīng)了漫反射、鏡面反射和環(huán)境光對表面的作用1。他屬于局部光照模型,在游戲場景的及時襯著中常常用到。其光照強(qiáng)度方程式以下:式中,M表示對場景有貢獻(xiàn)的點(diǎn)光源的總個數(shù);I是光照表面點(diǎn)(x,y)處的光強(qiáng);Ia是入射環(huán)境光的光強(qiáng);Ini、fi(d)是第i個點(diǎn)光源發(fā)出的入射光光強(qiáng)和光源強(qiáng)度衰減因子;ka為光景表面對環(huán)境光的漫反射系數(shù);kd為光景表面的漫反射系數(shù);ks為光景表面的鏡面反射系數(shù);n稱為鏡面高光指數(shù),被用來模擬鏡面反射光在空間的匯聚程度;Li為第i個點(diǎn)光源發(fā)射方向單位向量;N是點(diǎn)(x,y)處的表面單位法向量;Hi為將入射光反射到察看者方向的理想鏡面的單位法向量Hi=(Li+V)/2,V為察看者視線單位向量。·光芒追蹤算法光芒追蹤或稱光跡追蹤是計算機(jī)圖形學(xué)的核默算法之一n¨。在算法中,光芒從光源被拋射出來,當(dāng)他們經(jīng)過物體表面的時候,對他們使用各種切合物理光學(xué)定律的變換。最后,光芒進(jìn)入虛構(gòu)的攝像機(jī)底片中,圖片被生成出來。因?yàn)樵撍惴ㄊ侨止庹漳P?,所以能夠模擬生成十分復(fù)雜的圖片。光芒追蹤算法偽代碼:·輻射度算法輻射度算法實(shí)質(zhì)是將光看作一種物理輻射,而后計算輻射的傳導(dǎo)就能獲取加之于每個對象物體上的光照強(qiáng)度,進(jìn)而獲取正確的襯著結(jié)果。和其余襯著方法對比,輻射度算法更湊近于光的自然流傳原理。輻射度算法解決了光在不一樣面之間反射的計算技術(shù),但不散布鏡面光,也不產(chǎn)生聚光(Caustic)。輻射度算法也是一種全局光照模型。全局光照固然襯著成效很好,但速度很慢,一般還不可以使用在及時襯著中,它一般使用在非及時襯著中,比方光照貼圖就能夠用全局光照算法來生成。4.3.2室外場景中地形的光照辦理室外場景因?yàn)椴岸噙呅蚊嫫?,假如及時計算光照,那速度是很慢的。并且,用局部光照模型來計算出的成效也不太理想。因?yàn)榈匦蔚亩噙呅尉W(wǎng)格是及時產(chǎn)生的,它會跟著視點(diǎn)的挪動而變化,所以假如直接使用OpenGL內(nèi)置的極點(diǎn)光照,就會獲取極度不穩(wěn)固的光照成效,會看到地形表面因?yàn)槟愕呐矂佣煌L鴦印?/p>
所以目前在游戲引擎中,
對于地形的光照大多經(jīng)過光照貼圖來實(shí)現(xiàn)。這樣的實(shí)現(xiàn)方法是一種靜態(tài)光照,不是及時的。此刻外國最頂級的游戲引擎開始把全局光照或湊近全局光照的模型引入場景的及時襯著中,這是此后的一個發(fā)展方向。在本文中,地形的光照辦理經(jīng)過光照貼圖來實(shí)現(xiàn)?!窆庹召N圖的觀點(diǎn)光照貼圖顧名思義它是一個覆蓋了場景中全部多邊形的貼圖n鍆。經(jīng)過給貼圖賦值,我們能夠獲取多邊形表面復(fù)雜的光照成效。使用好的算法計算出來的光照貼圖能夠模擬極度傳神的光影成效。它給我們帶來的視覺享受遠(yuǎn)遠(yuǎn)地超出了OpenGL的局部光照。●光照貼圖和多細(xì)節(jié)紋理混淆模擬地表第一,我們準(zhǔn)備3張地表細(xì)節(jié)貼圖,1張光照貼圖,1個紋理索引貼圖。把3張細(xì)節(jié)貼圖和光照貼圖綁定到相應(yīng)的紋理通道上。而后使用VertexShader為每個極點(diǎn)計算拉伸后的索引貼圖的紋理坐標(biāo)。下邊是用GLSL寫的有關(guān)VertexShader代碼:在FragmentShader里,對索引貼圖進(jìn)行紋理查找,使用查找獲取的顏色值的色信息按比率混淆3張細(xì)節(jié)貼圖,獲取目前像素的顏色。最后還應(yīng)當(dāng)把這個顏色和光照貼圖中的值相乘,獲取最后的結(jié)果。有關(guān)的FragmentShader代碼以下:
RGB
顏●光照貼圖的生成光照貼圖能夠用全局光照模型,比方光芒追蹤、輻射度算法等來預(yù)辦理獲取。由三個數(shù)據(jù)來生成:a.地形高度圖;b.光源地點(diǎn);C.光照強(qiáng)度。4.3.3場景中非地形的暗影算法簡介地形的光照暗影用上邊介紹的光照貼圖解決了,針對樹木、人物的暗影我們一定此外實(shí)現(xiàn)。人物的暗影是動向的,有兩種常用的及時暗影生成技術(shù)。一種是ShadowVolume,還有一種是ShadowMap?!hadowVolume算法ShadowVolume鑒于的是幾何體算法,經(jīng)過延長光照輪廓地區(qū)進(jìn)行正反面兩次襯著,在屏幕的模板緩沖區(qū)內(nèi)分別出暗影地區(qū),能夠獲取十分精準(zhǔn)的暗影地區(qū),畫質(zhì)較好,并且襯著流程十分簡單,弊端是成立光照輪廓延長體十分費(fèi)時費(fèi)資源,此外暗影邊沿視覺上比較僵硬。ShadowMap算法ShadowMap鑒于的是Shader技術(shù),經(jīng)過成立Z深度圖、逐像素比較深度獲取暗影區(qū)域。該算法針對一些固定的建筑物之類的圖素形成暗影特別優(yōu)秀,對于一些運(yùn)動物體的暗影最多只需襯著兩次物體即可形成暗影。弊端是需要顯卡對VertexShader、Fragmentshader的支持,并且內(nèi)存耗費(fèi)較大,同時只好生成平行光下的暗影,并且沒法做到將暗影投影到全部的物體。·用暗影貼圖創(chuàng)立簡單暗影能夠把物體的暗影經(jīng)過紋理貼圖技術(shù)貼在平面上簡單模擬暗影。下邊描繪實(shí)現(xiàn)步驟:襯著地形。依據(jù)光源方向和物體的地點(diǎn)計算物體的暗影在地形上方的地點(diǎn),并構(gòu)成暗影平面面片。對于要創(chuàng)立暗影的每個物體,使用支持alpha混淆和透明的紋理映照函數(shù)在第(2)步計算的暗影平面上貼上物體的暗影。4.4天空的襯著4.4.1天空盒子天空襯著最簡單的方法是利用天空盒子(SkyBox)。天空盒子幾乎在各樣室外游戲中都能被運(yùn)用,它能完好的描繪視點(diǎn)四周360度范圍內(nèi)的視線。天空盒子實(shí)質(zhì)上就是一個游戲三維空間中的立方體。如圖4.4所示,建立一個天空盒子需要八個極點(diǎn)和六張?zhí)炜占y理圖,這六張紋理睬被貼在天空盒子的內(nèi)側(cè),分別描繪從攝像機(jī)視點(diǎn)所在地點(diǎn)六個方向看去的天空,上方紋理貼圖描繪向上看去的天空,后方紋理貼圖描繪向后看去的天空。對天空盒子的襯著也就是簡單的襯著一個空間立方體的六面。最主要的是讓天空盒子跟著攝像機(jī)的挪動而挪動,保證攝像機(jī)向來在盒子的中心。天空盒子的六張紋理一定被精心設(shè)計以使它們看起來連結(jié)得十全十美。4.4.2球形天空和弧度天空天空盒子很簡單,但是離天空邊沿近的時候天空會有特別明顯的變形。球形天空和弧度天空把天空曲面分紅一個個三角形,明顯這類方法襯著成效更精美,但是襯著速度也會有一些影響。所以本課題最后采納了天空盒子來實(shí)現(xiàn)。4.4.3太陽和光暈的生成襯著太陽很簡單,在場景的特定地點(diǎn)擱置一個圓形物體就能實(shí)現(xiàn),鏡頭光暈則需要一些額外的辦理。第一我們來看一個光暈的地點(diǎn),如圖4.6所示:鏡頭光暈由一系列的光環(huán)構(gòu)成,全部的光環(huán)擺列在一條直線上。這條直線由發(fā)光物體位置和屏幕中心確立。這些光環(huán)的形狀則有多種方式,往常用一張放射線狀的圖用來作為發(fā)光物體的光輝,此外的則用不一樣厚度的環(huán)狀圖像。我們組合這些光環(huán)的時候需要使用AlphaBlending功能把這些光環(huán)疊加起來自然的交融出席景中去。全部的光環(huán)都是作為二維物體繪制出席景中去的。所以,發(fā)光物體在屏幕上的地點(diǎn)需要經(jīng)過自己計算獲取,在計算發(fā)光物體在屏幕上的地點(diǎn)的同時我們還能夠獲取這個地點(diǎn)的Z緩沖(Z-Buffer)的信息來判斷能否能看到發(fā)光物體,當(dāng)發(fā)光物體不行見的時候,光暈自然也不行見。4.5植物的襯著,霧的生成4.5.1樹草的構(gòu)成和襯著花草和樹是室外場景必不行少的點(diǎn)綴,假如對這些物體的細(xì)節(jié)都用三角形面片來描繪,在此刻的硬件環(huán)境下明顯是不現(xiàn)實(shí)的。所以出現(xiàn)了好多簡化、取巧的方法。·通告板技術(shù)(BillBoard)通告牌技術(shù),即BillBoard技術(shù)口¨,在3D游戲中有著寬泛的使用。它的實(shí)質(zhì)就是用預(yù)先做好的幾幅位圖來取代3D物體,極大地節(jié)儉資源和提升速度。初期的好多游戲中,它的精靈、樹木、物件往常是二維圖象,也就是BillBoard。因?yàn)樗恢背虿炜凑?,你根本看不到它“扁平”的一面,所以給人一種立體的感覺。這類技術(shù)最大的長處是速度快。假如用多個三角形面片構(gòu)成3D精靈,起碼要百余個面片,而用billboard技術(shù),只需辦理兩個多邊形。好多3D游戲的爆炸成效,如“極品飛車’’中路旁的樹木,都使用了該技術(shù)。但這類方法的弊端也是不言而喻的,真切感不強(qiáng)。此刻對植物的襯著極少獨(dú)自用到這類技術(shù)?!び媒诲e平面+alpha測試襯著花草通告板技術(shù)是用一個平面來模擬復(fù)雜物體,交錯平面法的做法是用幾個交錯的平面來共同表現(xiàn)一個物體,經(jīng)過alpha測試選摘要映照的紋理像素,因?yàn)槭菐讉€交錯面,所以玩家從不一樣角度都能看到一些貼著紋理的平面。這類方法運(yùn)用得好能顯出極佳的成效,重點(diǎn)在于針對不一樣的植物選擇不一樣的交錯平面,同時貼圖要很好的和平面配合。目前大部分游戲的花草等點(diǎn)綴物體都是這樣襯著的,本課題花草的繪制也是采納的這類方法。下列圖4.7所示的是一種能夠參照的交錯平面。這類技術(shù)在實(shí)現(xiàn)的時候還有幾點(diǎn)值得注意的地方:a.選擇適合的AlphaTest值來除去植物的黑邊因?yàn)榧y理過濾和生成MipMap的緣由,襯著一些小物體時會出現(xiàn)淡黑色的界限,這就需要在實(shí)質(zhì)使用中找到一個比較適合的AlphaTest參照值(一般不要取做0)。這個值跟紋理圖、MipMap采樣方式等好多要素都有關(guān),能夠選擇一個經(jīng)驗(yàn)值。b.用多分辨率紋理(MipMap)除去紋理的顫動當(dāng)相同大小的面片處在遠(yuǎn)近不一樣的地點(diǎn)是,采樣算法不可以完好模擬物體減小的貼圖成效,生紋理顫動,假如這樣的面片在場景中好多,決這個問題。
假如貼上同一張紋理,因?yàn)榧y理映照默認(rèn)的在用高分辨率的紋理給遠(yuǎn)處面片貼圖時就會發(fā)則畫面閃爍相當(dāng)明顯。多分辨率技術(shù)能很好解多分辨率紋理就是對同一個紋理貼圖準(zhǔn)備幾個不一樣分辨率的版本,用于分別對應(yīng)不一樣距離的貼圖。在實(shí)質(zhì)的使用上,一般有兩種方式。第一種是由基層圖形庫(比方OpenGL、DirectX)在紋理初始化的時候自動生成不一樣分辨率的紋理。另一種方式是設(shè)計者用圖形編寫軟件辦理好不一樣的分辨率圖片,在程序中由設(shè)計者自己控制在什么地點(diǎn)載入什么分辨率的紋理。后一種方法的襯著成效更好,但代價明顯更大。c.實(shí)現(xiàn)隨風(fēng)搖動的動向成效因?yàn)槲覀兊拿靠貌菔墙?jīng)過幾個交錯面模擬的,所以對每棵草幾個面的極點(diǎn)按必定規(guī)律調(diào)整地點(diǎn),就能夠模擬被細(xì)風(fēng)吹動的成效。這類極點(diǎn)地點(diǎn)的計算此刻一般放在顯卡上經(jīng)過極點(diǎn)著色器來達(dá)成。對于復(fù)雜建模的草叢或許樹木,能夠用重點(diǎn)幀、骨骼動畫技術(shù)實(shí)現(xiàn)搖動成效。d.模擬光照成效從每棵草所在地點(diǎn)的地面上獲得地面光照亮度信息作為這棵草的基本亮度,點(diǎn)隨機(jī)調(diào)亮一個幅度,將下邊的極點(diǎn)隨機(jī)調(diào)暗一個幅度,模擬草光照不平均的成效。
將上邊的頂●樹的襯著樹一般比花草等大得多,復(fù)雜得多,所以要求我們要采納細(xì)節(jié)表現(xiàn)度更高的方法來襯著它。圖形學(xué)理論上高細(xì)節(jié)度的植物襯著算法,比方分形算法等復(fù)雜度太高,此刻還不可以很好的用在游戲中。一般目前游戲頂用的許多方法是:對枝干和樹葉分別建模。對枝干完好用比較仔細(xì)的多邊形面片建模,樹葉用交錯面建模加上重復(fù)貼圖來實(shí)現(xiàn)。種方式既防止了完好仔細(xì)建模造成的面片過多惹起的襯著速度問題,又能達(dá)到極好的視覺效果,是目前寬泛采納的折中方法。此法的難度在于怎么用盡量少的交錯面模擬復(fù)雜的樹葉細(xì)節(jié)。下列圖4.8是一顆樹的面片構(gòu)成:
這襯著大面積樹林的時候,為了加迅速度,還會依據(jù)距離選用不一樣分辨率的面片模型進(jìn)行襯著。太遠(yuǎn)的甚至能夠用前面草叢的交錯面貼圖方法襯著。此法最大的利處是簡單、高效。但當(dāng)湊近從不一樣角度察看它時,仍是簡單看出“片狀”的缺點(diǎn)。針對樹的襯著,目前游戲使用領(lǐng)域還寬泛使用一種才盛行的中間件SpeedTree。他主要的長處是用極少的速度代價實(shí)現(xiàn)了樹的超高真切感襯著,細(xì)節(jié)、光影、樹葉的動向搖動等都獲取很好的表現(xiàn)。國內(nèi)完滿國際企
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上海市勞動合同經(jīng)典版(三篇)
- 買賣房屋合同協(xié)議書
- 教師勞動合同
- 2025合法的個人技術(shù)轉(zhuǎn)讓合同及注意事項(xiàng)(合同協(xié)議范本)
- 2025年不銹鋼加工安裝合同范文(2篇)
- 文具用品購銷合同
- 2025年兩個人的借款合同標(biāo)準(zhǔn)版本(2篇)
- 土地轉(zhuǎn)讓居間合同范本
- 2025物流服務(wù)的合同范本
- 建筑工程合同安全生產(chǎn)培訓(xùn)
- 2024-2025學(xué)年山東省濰坊市高一上冊1月期末考試數(shù)學(xué)檢測試題(附解析)
- 江蘇省揚(yáng)州市蔣王小學(xué)2023~2024年五年級上學(xué)期英語期末試卷(含答案無聽力原文無音頻)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項(xiàng)修煉-記錄
- 幼兒園人民幣啟蒙教育方案
- 單位就業(yè)人員登記表
- 衛(wèi)生監(jiān)督協(xié)管-醫(yī)療機(jī)構(gòu)監(jiān)督
- 記錄片21世紀(jì)禁愛指南
- 腰椎間盤的診斷證明書
- 移動商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)七 裂變傳播
- 單級倒立擺系統(tǒng)建模與控制器設(shè)計
評論
0/150
提交評論