国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

【Unity Shader編程】之十六 基于MatCap實(shí)現(xiàn)適于移動(dòng)平臺(tái)的“次時(shí)代”車漆Shader

2019-11-08 02:27:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本系列文章由@淺墨_毛星云 出品,)

Unity內(nèi)置的矩陣UNITY_MATRIX_IT_MV,是UNITY_MATRIX_MV的逆轉(zhuǎn)置矩陣,其作用正是將法線從模型空間轉(zhuǎn)換到觀察空間。于是頂點(diǎn)著色器vert中的這兩句代碼就很容易理解了:

//MatCap坐標(biāo)準(zhǔn)備:將法線從模型空間轉(zhuǎn)換到觀察空間,存儲(chǔ)于TEXCOORD1的后兩個(gè)紋理坐標(biāo)zwoutput.diffuseUVAndMatCapCoords.z =dot(normalize(UNITY_MATRIX_IT_MV[0].xyz), normalize(input.normal));output.diffuseUVAndMatCapCoords.w= dot(normalize(UNITY_MATRIX_IT_MV[1].xyz), normalize(input.normal));

而得到的視圖空間的法線,區(qū)域是[-1,1],要轉(zhuǎn)換到提取紋理UV的區(qū)域[0,1],就需要乘以0.5并加上0.5,那么頂點(diǎn)著色器vert中接下來(lái)的的這句代碼也就可以理解了:

 

//歸一化的法線值區(qū)間[-1,1]轉(zhuǎn)換到適用于紋理的區(qū)間[0,1]output.diffuseUVAndMatCapCoords.zw= output.diffuseUVAndMatCapCoords.zw * 0.5 + 0.5;

稍后,在片元著色器frag中,用在頂點(diǎn)著色器vert中準(zhǔn)備好的法線轉(zhuǎn)換成的UV值,提取出MatCap的光照細(xì)節(jié)即可:

//從提供的MatCap紋理中,提取出對(duì)應(yīng)光照信息float3matCapColor = tex2D(_MatCap, input.diffuseUVAndMatCapCoords.zw).rgb;

此Car Paint Shader其他實(shí)現(xiàn),主要就是一些基本的Shader知識(shí)點(diǎn)的配合,如頂點(diǎn)坐標(biāo)轉(zhuǎn)換,反射,漫反射,細(xì)節(jié)紋理的計(jì)算,都是比較基礎(chǔ)的內(nèi)容,這里就不再贅述,直接看Shader源碼即可。

最后看幾張截圖,然后就是相關(guān)Shader與MatCap資源的下載:

 

五、Shader源碼與MatCap資源下載

從Github下載:

【Github】Shader源碼與相關(guān)MatCap資源下載

 

 

參考與延伸

 

[1] http://wiki.unity3d.com/index.php/MatCap

[2] https://www.assetstore.unity3d.com/en/#!/content/8221

[3] http://blog.csdn.net/cubesky/article/details/38682975

[4] https://www.assetstore.unity3d.com/en/#!/content/76361

[5] http://www.cnblogs.com/flytrace/p/3379816.html

[6] http://www.cnblogs.com/flytrace/p/3395911.html

[7] http://digitalrune.github.io/DigitalRune-Documentation/html/9a8c8b37-b996-477a-aeab-5d92714be3ca.htm

[8] https://forum.unity3d.com/threads/_object2world-or-unity_matrix_it_mv.112446/

[9]http://www.lighthouse3d.com/tutorials/glsl-12-tutorial/the-normal-matrix

With Best Wishes.


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 松滋市| 新沂市| 安丘市| 锦屏县| 襄樊市| 和静县| 金沙县| 读书| 云阳县| 裕民县| 扶余县| 诏安县| 博爱县| 呼图壁县| 富阳市| 浦城县| 北安市| 怀仁县| 扎兰屯市| 长顺县| 江口县| 清原| 丰都县| 正宁县| 吉水县| 察隅县| 安达市| 万源市| 原平市| 乌鲁木齐县| 龙口市| 江华| 洛南县| 青海省| 泾源县| 喜德县| 德化县| 拉萨市| 锡林郭勒盟| 延边| 桦甸市|