版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
凹凸貼圖、法線貼圖、置換貼圖而原先我們只能在墻壁、樹皮上看到一點(diǎn)法線貼圖的效果....所以下一輪的模型設(shè)計,這個元素是熱點(diǎn)..... 先轉(zhuǎn)這篇文章過來談?wù)劯拍睿侵v如何制作。其實(shí)我本人對模型制作3D之類完全外行轉(zhuǎn)這個只是想拋磚引玉歡送大家爭論灌水頂貼就不必了首先我想說,對于凹凸貼圖在計算機(jī)圖形領(lǐng)域中的爭論,最早開頭于70年月末,至今已經(jīng)有接近30年歷史了。NormalMap只是一種目前很流行的凹凸貼圖技術(shù),而這里將會介紹一些目XBOX360和PlayStation3BumpMapping凹凸貼圖CG的朋友肯定比FXCarlBumpMap。這種貼圖是一種灰度圖,用外表上灰度的變化來描述目標(biāo)外表的凹凸,因此這種貼圖是黑白的,假設(shè)節(jié)約空間的畫,甚至可以把貼圖的Alpha通道征用來用作Bump。值得留意的是,這種貼圖外表上存儲的東西是高度域--即每個點(diǎn)和原始外表的高度差,記住,每個點(diǎn)的顏色不是顏色,是高度,一個數(shù)值!因此,對3D在玩耍中,所使用的算法精準(zhǔn)的說應(yīng)當(dāng)叫做fakebumpmapping,假凹凸貼圖。由于在玩耍中BumpMap把BumpMap疊加在已經(jīng)渲染好的外表上,造成亮度上的擾動,從而讓人以為是凹凸的--這個很簡潔理解,把一面白色的墻面有技巧的局部劃成灰色就會變成蝕痕,這些諸位會比小的更擅長。而計算簡單度是根本加減法。這個所謂的FakeBumpMappingGeforce2就開頭硬件支持,但是從來沒有大范圍的應(yīng)用過。不過好玩的是,BumpMap這個東西卻從未過時,在后來的渲染算法中,其儲存外表高度域的特性仍舊發(fā)揮著巨大的作用。我們后文再提NormalMapping 法線貼圖NormalMapping在玩耍領(lǐng)域中的實(shí)踐是一個格外值得記住的時期--Geforce3上市,GPU概念消滅,硬件可編程流水線的消滅〔Shaders〕,NormalMapping是一種凹凸貼圖技術(shù),它的另Dot3bumpmapping。用于實(shí)現(xiàn)它的掌握紋理是一張叫做NormalMap的紋理,也是目前大家在爭論如何之作的那種。我們先說說這張叫做NormalMap的圖。這張圖中存儲的東西是每個原始外表法線的迭代,說起來有點(diǎn)簡單,但是不難理解。舉例說我們的說面,一般在玩耍的3D模型上,外表法線就像是一根站立于桌面的鋼筆,垂直向上。而NormalMap中存儲的東西就是我們這支表示外表法線方向15NormalMap有兩種主要形式,一種叫做世界空間的NormalMap,一種叫做切空間的NormalMap。第一種在玩耍中沒有有用價值,我們說其次種,也就是大家最常見的一種。NormalMap會有這么驚異的顏色呢?其實(shí)NormalMap和BumpMap一樣,了。在NormalMap的定義中,有一個事先的商定,這個商定就是--原本外表的垂直方向,我們ZUVXY〔精準(zhǔn)的說,應(yīng)當(dāng)是稱作切線和負(fù)法線,但是這兩個東西和大家生疏的UV坐標(biāo)剛好重疊,所以就用大家更習(xí)慣的說法了〕我們知道假設(shè)我們在XYZ軸上各取一個點(diǎn),這個點(diǎn)的取值位置在-1到1之間,那么我們就可以得到一個指向任何方向的法線方向〔不用多解釋,大家知道法線是一個向量,向量有方向和長度兩個概念,但是對法線來說,長度是不需要的〕。但是,請大家留意,我們在描述顏色的時候,RGB三個通道的取值范圍都是從零開頭的??墒钱?dāng)我們嘗試把一個任意的法線保存在一張紋理中的時候,會面臨取負(fù)值的問題。因此我們要把法線做壓縮。方法很簡潔,把XYZ每個軸上的法線投影長度進(jìn)展N+1/20和1的范圍里。然后我們把XYZ的方向分別存儲在RGBNormalMap會是藍(lán)兮兮的緣由是吧。那么現(xiàn)在就是公布結(jié)果的時候了!首先,我們知道假設(shè)在一個物體外表,法線垂直向上,那么它的XYZ坐標(biāo)是多少?是0,0,1對不對?然后我們把這個數(shù)字依據(jù)我們前面所說的壓縮方法進(jìn)展壓縮,每個數(shù)字加1然后再除以2,那么我們得到的是0.5,0.5,1對不對?好我們把它代入到RGB中,那么我們會得到128,128,255對不對?好了,試試看在調(diào)色板里的顏色吧!P.SFXCarl和你猜個謎,看看FXCarl說的對不對。現(xiàn)在我們在NormalMap上觀察一個顏色,這個顏色是219,128,219。那么這個外表的法線方向是垂直向右偏45度。大家用MAX做NormalMapFXCarl假設(shè)你還沒有理解NormalMap的意思,或者說你有興趣再深入了解一些,那么FXCarl再和你說的深入一些。不知道大家對于切空間的理解是什么?我們來個試驗,找三支筆。然后其中兩只筆在桌面放成相互成90度,筆尾接筆尾。最終我們把第三支筆,筆尖向上,筆尾和那兩只桌面上的筆的筆尾疊在一個點(diǎn)上。留意看我們的三支筆!這三支筆就是這張桌面上這個點(diǎn)的切NormalMap中存儲的外表法線方向原來就是一個切空間向量啊,恩沒錯,就是切空間向量。但是似乎看起來切空間沒什么作用是不是?呵呵,我們不妨把桌面換成一個籃球。記住,保持三支筆的相互關(guān)系,然后用三支筆并在一起的筆尾去接觸籃球的外表。呵呵,覺察了沒有?切空間的優(yōu)勢在于,在任意外表上,切空間中的坐標(biāo)都是有效的!也就是說始用切空間中的數(shù)據(jù)就可以做到和3D模型的簡單度無關(guān)!你可以用在任意的外表,甚至這個外表始終在動也不會影響到NormalMap發(fā)揮作用,你說這個切空間是不是很有用呢?讓我們回到開頭,大家就會覺察,假設(shè)使用世界空間的NormalMap會有什么樣的結(jié)果呢?嘿嘿中有兩個一樣的人物,但是他們的姿勢和面對的角度都不一樣。那么……MyGod~確定有一個人物的NormalMap是沒法適用的!而用切空間的NormalMap就沒有問題了。恩,不過這個大家可以放心,MAX或者M(jìn)aya做出來的NormalMap都是切空間的NormalMap,證明的方法很簡潔……看看這張貼圖是不是主要由藍(lán)色構(gòu)成的……OK,下面是重頭戲,告知大家NormalMap是如何發(fā)生作用的。使用NormalMap的先決條件--逐像素著色。先來說一下傳統(tǒng)著色,傳統(tǒng)玩耍使用的是一個Phong光照模型的簡化版,甚至有玩耍使用Ground模型。這兩種算法的方式都是只對物體3D模型的3DShaders后才有的,因此NormalMapping也是一個Shaders必需的算法。計算一個物體外表漫反射光照的公式是很簡潔的NdotL--什么是NdotL,就是物體外表的法線和光照方向的點(diǎn)積。點(diǎn)積是一個線性代數(shù)的問題,美術(shù)朋友們可以不用深究,寫成程序也很簡潔:Diffuse=saturate(Mul(Normal,Light))影,然后這個投影的結(jié)果變成黑白中間的一個值。我們同樣舉個簡潔的例子,用兩支筆放在桌面上,然后一支筆不動,令一支筆筆尾和第一支筆的筆尾相連,不動,然后以共同的筆尾做為圓心,移動筆。這時假設(shè)我們從一支筆尖往另外一支筆的筆桿上垂直拉一條線〔一條垂線〕就〔就是一支筆的筆尖連垂線到另一支筆的筆桿上的位置,這個位置沿著筆桿到共同筆尾的長度〕會越來越短,當(dāng)兩支筆垂直的時候,投影的結(jié)果就是零--沒有光照奉獻(xiàn)了。這個簡潔理解,當(dāng)光線的方向和一個外表確定平行的時候,這個外表就會再也承受不到光線了?,F(xiàn)在我們引入NormalMap。這時我們的光照計算和以往有點(diǎn)不同,我們把外表的法線用NormalMap中存儲的法線來替代。這樣當(dāng)我們在計算外表光照狀況的時候,就會由于法線不斷的變化而產(chǎn)生比原來豐富的多的明暗變化。至于為什么會感覺出凹凸來這個就是人的眼睛自己騙自己了……其實(shí)那里本沒有凹凸的,但是我們?nèi)搜劬μ喙荛e事了。就像Windows的按鈕哪個純平面的東西我們還以為是凸出來的呢。NormalMap-NormalMap視角問題。由于NormalMap只是轉(zhuǎn)變的外表上的光照結(jié)果,并沒有轉(zhuǎn)變外表上的外形。因此,外表上看來,似乎只要是不接近水平,NormalMap就不會有視角問題。其實(shí)不然,NormalMap桌面上突出一塊,然后在突出的這塊東西邊上放一支牙簽。假設(shè)用NormalMap表現(xiàn),會覺察。依據(jù)閱歷,這個凸起會很輕易的擋住我們的視線,讓我們看不見那支牙簽??墒荖ormalMap卻直于平面的時候NormalMap才會發(fā)揮最好的作用。這樣一來,NormalMap只能用在大家對遮擋關(guān)系不敏感的場合,比方場景等,不是不能用于人物,而是用NormalMap的人物不太經(jīng)得起特寫,放大了,角度刁鉆了都簡潔穿幫。雖然NormalMap有個不能平視的巨大問題,但是照舊是好處遠(yuǎn)大于小障礙,因此還是格外值得推廣的。后面的幾種興算法其實(shí)都是由NormalMapping也還是最有理解價值的。P.S.關(guān)于NormalMap的一點(diǎn)秘籍。留意理解……NormalMap其實(shí)并不是從低模的外表凸出高模的細(xì)節(jié)的,而是把高模中比最高點(diǎn)的位置低的地方凹進(jìn)去的!因此低模要比高模大一點(diǎn)點(diǎn)才出來的。P.S.2.關(guān)于NormalMap的做法,其實(shí)早期制造NormalMapMAX這種這么便利生NormalMap的方法,NormalMap都是從BumpMap計算得到的,因此其實(shí)通過很簡潔的算法就BumpMapNormalMapOnTheFly〔就是讓玩耍引擎直接讀BumpMap然后轉(zhuǎn)換成NormalMap〕。因此對于一些建起模來效率很低,但是又能明顯增加外表細(xì)節(jié)的東西,例如水泥外表的顆粒,用畫Bump的方式來做是個更好的方法,然后交給技術(shù)美工去搞定好了--固然你會用Z-Bursh那就當(dāng)我什么都沒說了,呵呵。說來FXCarlMAX線圖的方式也是比較凹凸模上每個點(diǎn)的高度偏移,然后生成每個UV圖素上的高度差來得到一BumpMap,然后再從BumpMapNormalMap。Parallaxmapping視差貼圖〔由于后面的算法都是基于NormalMap的應(yīng)用,可能看上去沒有NormalMapping那么長了,但內(nèi)容確定一樣精彩的!〕視差貼圖是一種NormalMapping算法的增加算法,其本質(zhì)上和NormalMapping沒有區(qū)分。優(yōu)勢是只需要增加3個HLSL語句和一個掌握紋理通道〔只需要幾個GPU指令,代價小到可以無視〕就可以顯著的增加物體外表的深度感。但是NormalMap中消滅的問題,Parallaxmapping根本使用NormalMapFXCarl個人的說法--ParallaxmappingNormalMapping。目前實(shí)踐證明,這種技術(shù)格外適合XBOX360和PS3這樣的世代玩耍主機(jī)〔都上市一年了還用次世代……我真受不了現(xiàn)在有些人〕。例如360SEGAPCFEARMonolithParallaxmapping。Parallaxmapping使用的還是單張的掌握紋理。一張NormalMap。假設(shè)我們用AcdSee來看這張NormalMap,我們會覺察似乎和NormalMapping用的掌握紋理是一樣的。而假設(shè)我們翻開這張NormalMap的Alpha通道,就會覺察其中的玄機(jī)所在。原來Alpha通道里存儲的是對應(yīng)這張NormalMapBumpMap!〔就是HeightMap,就是用飽和度記錄外表高度〕現(xiàn)在插入一點(diǎn)理論課程。大家留心讀上面的文字,會觀察一個掌握紋理的詞匯。這個詞匯是這里要重點(diǎn)解釋的。由于理解掌握紋理,在成為世代美工的需求中是相當(dāng)重要的。依據(jù)大家這么多年美術(shù)做下來的閱歷,對于圖素(Texel,紋理上的一點(diǎn))的理解確定是RBG3個顏色帶一個表示透亮度的Alpha通道。但是在我們的渲染器和程序員的眼里,它可不是我們美術(shù)朋友們觀察的東西。他們觀察的是一個4通道的矢量〔其實(shí)可以理解成四個數(shù)的組合〕。這4個數(shù)字的取值范圍分別是0到255。通過這個空間,其實(shí)可以用來做更多別的事情--最常用的就是記錄外表的物理細(xì)節(jié)。至于為什么要用掌握紋理呢?FXCarl前兩天聽一個朋友有這么個說法:我覺得NormalMap的效果也沒什么,直接畫也畫的出來的。其實(shí)這個說法一點(diǎn)都沒錯,但是要知道,這個想法是過時的。由于NormalMap并非用于著色,而是用于更真實(shí)的生成顏色。重所周知,用畫的方式,做靜幀固然可以做到無限好。可是動起來怎么辦?如何才能保證在不同的光照關(guān)系下照舊保證最終著色的結(jié)果正確?唯一的做法,就是每幀重畫一遍。如何才能做到最有效的重畫?那就要把重畫的參考告知我們的渲染器,讓它來幫你做一些簡潔的工作,這就是掌握紋理的作用--把你想要實(shí)時轉(zhuǎn)變的東西告知渲染器。其實(shí)掌握紋理的范圍很大,除了NormalMap還有很多,比方說Nvidia的DEMO曾經(jīng)用紋理存儲物體外表在陽光下的顏色變化規(guī)律。把藝術(shù)家想要實(shí)時轉(zhuǎn)變的東西壓縮在紋理中告知渲染器是一件相當(dāng)有挑戰(zhàn)性的工作,固然普遍適用的著色的利器!ParallaxmappingNormalMap的效果的呢。我們要從NormalMap的特性說起。我們假設(shè)在NormalMap外表制作一個凸起。然后我們轉(zhuǎn)轉(zhuǎn)角度看看。我們會覺察,其實(shí)這個凸起的背對我們視線的面~道背后的東西應(yīng)當(dāng)是看不見的才對。因此Parallaxmapping就是來緩解這個問題的,具體的代碼這里不提。我來試著白話解釋一下原理。其實(shí)為了不讓我們觀察“不該看的東西”應(yīng)當(dāng)試著挪動紋理坐標(biāo)……把那個不該給玩家觀察的圖素〔Texel〕跳過去。也就是說依據(jù)高度圖供給的數(shù)據(jù),把那個位置較低那個紋理的后面的紋理向前拉。相當(dāng)于在圖素采樣的時候刻意的把那個圖素跳過去。這樣那個不該被玩家觀察的像素就會由于圖素的消逝而不見了--很明顯,這個算法是不太站得住腳的,雖然計算的時候會參考玩家視線的角度。但仍舊是一種來自于經(jīng)驗的估算。值得欣慰的是,對于本身NormalMap所需要表現(xiàn)的微小細(xì)節(jié)來說,這樣的改進(jìn)已經(jīng)看上去不錯。因此開頭有大量的玩耍打算承受。特別是它的優(yōu)點(diǎn)是所消耗的代價極為有限,而需要Alpha但是對于技術(shù)爭論者來說,這樣的表現(xiàn)明顯還是不夠令人滿足的。因此,順著視差貼圖的思路向下進(jìn)展,借助ShaderModel3.0的消滅。消滅了一個真正從物理上轉(zhuǎn)變物體外表的算法,這就DisplacementMappingDisplacementmapping位移貼圖(置換貼圖)和前面說的幾種方式不同,DisplacementMapping是一種真正轉(zhuǎn)變物體外表的方式。通過一種稱為micropolygons〔微多邊形〕tessellate〔鑲嵌〕的技巧來實(shí)現(xiàn)真正的轉(zhuǎn)變物體外表的細(xì)節(jié)。具體流程是這樣的。首先,依據(jù)屏幕的區(qū)分率,在模型的可見面上鑲嵌和最終象素尺寸一樣的微多邊形。這個過程叫做鑲嵌。然后讀取一張Bump
溫馨提示
- 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洗車場租賃合同范文
- 2025年玩具產(chǎn)品項目可行性研究報告
- 2024-2029年中國光纖擴(kuò)束器行業(yè)市場發(fā)展監(jiān)測及投資潛力預(yù)測報告
- 2024年智能流量計市場分析報告
- 2024-2026年中國客戶關(guān)系系統(tǒng)市場競爭格局及投資戰(zhàn)略規(guī)劃報告
- 中國標(biāo)準(zhǔn)非標(biāo)準(zhǔn)件黑項目投資可行性研究報告
- 山西貨架項目可行性研究報告
- 2025年聚乙烯外護(hù)筐項目可行性研究報告
- 【可行性報告】2025年石棉相關(guān)行業(yè)可行性分析報告
- 2025畢業(yè)生簽訂勞動合同
- 2025年中國煙草總公司湖北省公司校園招聘227人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024版帶貨主播電商平臺合作服務(wù)合同范本3篇
- 2025公司資產(chǎn)劃轉(zhuǎn)合同
- 2024-2030年中國鋁汽車緊固件行業(yè)銷售規(guī)模與盈利前景預(yù)測報告
- 廣東省清遠(yuǎn)市2023-2024學(xué)年高一上學(xué)期期末質(zhì)量檢測物理試題(解析版)
- 2024-2025學(xué)年人教版數(shù)學(xué)五年級上冊期末檢測試卷(含答案)
- 《外盤期貨常識》課件
- 【MOOC】土力學(xué)-西安交通大學(xué) 中國大學(xué)慕課MOOC答案
- 醫(yī)院醫(yī)??乒ぷ骺偨Y(jié)
- 2024-2025學(xué)年譯林版八年級英語上學(xué)期重點(diǎn)詞匯短語句子歸納【考點(diǎn)清單】
- 2024年企業(yè)采購部年終總結(jié)及今后計劃(3篇)
評論
0/150
提交評論