版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Unity3D技術(shù)之紋理著色器基礎(chǔ)詳解今天要說的是unity3D中shader相關(guān)的一些知識。不會做非常細(xì)致的講解(東西實(shí)在太多?。?,但是看完之后會知道shader是怎么用的。一些術(shù)語一些術(shù)語在shader編程中,有一些術(shù)語,有時候不明白的話容易被整懵圈,所以這里就簡單提一下。ShadingShadingShading最開始指的在素描中給物體畫明暗調(diào)子,在圖形學(xué)中,其實(shí)就是給Mesh上色(Mesh就是一堆三角面片,包含頂點(diǎn)左邊,法線坐標(biāo)
2、,uv坐標(biāo)之類的),wiki中說的是根據(jù)物體相對于光線的角度及其距離光源距離改變物體顏色生成photealistic效果的過程。我們所編寫的處理shading的程序就叫做shader,中文叫著色器,程序的輸入是顏色,紋理,坐標(biāo)等等,輸出的是mesh網(wǎng)格的最終的顏色。光照模型光照模型光照模型主要包括兩個部分,一部分是光源的定義,另一部分是mesh表面的光照計(jì)算。光源根據(jù)現(xiàn)實(shí)中的光源可以抽象成點(diǎn)光源,方向光源,聚光燈。mesh表面的光照計(jì)算
3、主要計(jì)算三個部分,環(huán)境光(Ambientlight),漫反射光(Diffuselight),全反射光(Specularlight)。文章出處【狗刨學(xué)習(xí)網(wǎng)】。LambertLambert光照模型光照模型此模型屬于經(jīng)驗(yàn)?zāi)P?,主要用來簡單模擬粗糙物體表面的光照現(xiàn)象。此模型假設(shè)物體表面為理想漫反射體(也就是只產(chǎn)生漫反射現(xiàn)象,也成為Lambert反射體),同時,場景中存在兩種光,一種為環(huán)境光,一種為方向光,然后我們分別計(jì)算這兩種光照射到粗糙物體表
4、面所產(chǎn)生的光照現(xiàn)象,最后再將兩個結(jié)果相加,得出反射后的光強(qiáng)值。首先是計(jì)算環(huán)境光的公式:I_ambdiff=K_dI_a其中,K_d為粗糙物體表面材質(zhì)對光的反射系數(shù),這個系數(shù)由程序編寫者在宿主程序中給出,I_a為環(huán)境光的光強(qiáng),也就是環(huán)境光的顏色數(shù)值,一般是一個float3型的變量。然后是計(jì)算方向光的公式:I_ldiff=K_dI_lcosa由向量的點(diǎn)積公式可得:cosa=N﹒L所以計(jì)算方向光的公式就變?yōu)?I_ldiff=K_dI_l(N﹒
5、L)綜上,得出漫反射后的光強(qiáng)為:拖進(jìn)來的模型都會自帶一個SkinnedMeshRenderer,用來顯示帶動畫的模型,并且unity會自動創(chuàng)建一個材質(zhì),material_0直接用的自帶的diffuseshader來渲染,然后賦到這個renderer上面。接下來我們要自己創(chuàng)建Material和Shader,點(diǎn)擊Project面板的create,創(chuàng)建一個Shader和Material,名字都叫Test0。(程序猿強(qiáng)迫癥索引一定要從0開始)T
6、est0的解釋打開創(chuàng)建好的Test0.shader1.Shader“CustomTest0“2.3.Properties4.5._MainTex(“Base(RGB)“2D)=“white“6.7.8.9.SubShader10.11.Tags“RenderType“=“Opaque“12.13.LOD20014.15.CGPROGRAM16.17.#pragmasurfacesurfLambert18.19.sampler2D_Mai
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- unity3d游戲開發(fā)之坐標(biāo)系
- unity3d命令手冊(1)
- unity3d教程:基礎(chǔ)入門中文版資料
- htc-vive基礎(chǔ)開發(fā)文檔(unity3d)(doc)
- 如何優(yōu)化unity3d游戲運(yùn)行性能
- 基于unity3d的潛行游戲開發(fā)
- 基于Unity3D的增強(qiáng)現(xiàn)實(shí)技術(shù)研究.pdf
- unity3d & photon引擎初嘗試
- unity3d中連接數(shù)據(jù)庫
- unity3d本科生實(shí)訓(xùn)報(bào)告
- 基于Unity3D引擎的FPS游戲開發(fā).pdf
- 基于Unity3D的虛擬實(shí)驗(yàn)系統(tǒng)設(shè)計(jì).pdf
- 基于unity3d引擎的fps游戲開發(fā)(1)
- 基于Unity3D的游戲開發(fā)與設(shè)計(jì).pdf
- 學(xué)習(xí)使用c#為unity3d編寫腳本
- 基于Unity3D技術(shù)的虛擬攝影系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- unity3d游戲開發(fā)之風(fēng)力區(qū)域、碰撞、剛體等
- 基于unity3d《叢林冒險(xiǎn)》游戲的設(shè)計(jì)與開發(fā)
- 支持Unity3D的多Kinect人機(jī)交互技術(shù)與軟件.pdf
- 基于Unity3D的移動增強(qiáng)現(xiàn)實(shí)技術(shù)與應(yīng)用研究.pdf
評論
0/150
提交評論