欢迎光临散文网 会员登陆 & 注册

[笔记]庄懂的技术美术入门(十二)

2022-10-17 19:35 作者:少女的美梦7  | 我要投稿

1.Dota2

Preview

a.贴图资源分析

Color:控制基础颜色

MetalnessMask:金属度贴图,区别金属部分和非金属部分

Normal:法线贴图

RimMask:边缘光强度图,控制边缘光效果

SelfillumMask:自发光遮罩图,与Color贴图的颜色一起使用

SpecularExponent:高光指数图,与SpecularPow配合使用,为了产生高光的不均匀性

SpecularMask:镜面反射遮罩,可理解为高光强度图

TintByBaseMask:表示高光颜色受到物体影响的程度,颜色越暗,表示影响越大。颜色是否会和物体本身的颜色混合,因为金属的高光反射是带有自己的颜色的,而非金属的高光颜色基本上都是黑白灰

Translucency:透明度贴图

Cubemap:环境高光采样

DiffuseWarp:漫反射的Ramp图

FresnelWarpColor:目前Shader里没有实际用途,应该是两种DiffuseWarp的插值Mask

FresnelWarpRim:轮廓光用Fresnel

FresnelWarpSpec:镜面反射用Fresnel

b.资源优化

c.光照模型分析

漫反射颜色:根据金属度贴图进行插值,金属度越高,颜色越淡

高光颜色:根据TintByBaseMask对颜色进行处理,金属部分为暗色,其余部分为亮色

根据高光染色的值对基础颜色和half3(0.3,0.3,0.3)进行插值,0.3是个经验值,即皮肤的亮度

PBR的情况下:入射光为白色的情况下,非金属反射的光应该为黑白灰。这里食人魔皮肤的颜色带点蓝色,它不是金属,也有一点点染色。即高光染色的值不为0


根据半兰伯特对DiffWarp采样,因为是怪物所以混合一些蓝紫色Ramp到Diff里

specPow*_SpecPow是根据贴图对高光进行更加灵活的放缩

 高光和兰伯特做了一个乘法相当于是漫反射弱的地方高光也会变弱

然后根据漫反射和菲涅尔高光取一个最大

再根据最后的高光值乘以镜面反射颜色再乘以主光颜色得到最后值

这里把环境光强度的参数去掉,因为环境光强度可以通过颜色来调节

菲涅尔加高光取最大的结果还需要做一个遮罩*SpecInt

轮廓光做了一个法线方向取向上的遮罩

代码:

最后Shader不仅仅是在Unity里能用就完事了,它需要在各个平台上兼容,在其它各个软件上也能有正确的美术表现,比如3DMax,Maya,Substance

2.透明剪切

3.双面显示

4.开源Shader


[笔记]庄懂的技术美术入门(十二)的评论 (共 条)

分享到微博请遵守国家法律