Unity3D 内置了强大且高效的着色器,可以满足大家常规的渲染着色需求。
HDRP 的着色器与legacy的着色器不兼容
Legacy 版本的着色器说明地址 (本教程中仅做了解)https://docs.unity3d.com/Manual/class-Material.html
HDRP 版本的着色器说明地址
材质球的创建
-
在project 面板内右键依次选择 Create -> Material
着色器的设置
-
在材质球的顶部,Shader 属性处,可以设置材质球要用的着色器
材质球的赋予
- 将材质球直接拖拽到场景的物体上
-
在物体的渲染属性上选择要用的材质球,或将材质球拖拽到属性上
界面介绍
- 界面主要按模块进行了拆分,我门这里主要介绍 Lit 着色器,其它的着色器都基本类似
1. 着色器表面选项 主要设置着色器的主要类型,和 一些功能的开关
2. 表面参数输入 主要用来贴图指定,和贴图相关参数的调整
3. 细节输入 输入细节纹理,可以指定使用其它通道的UV来进行贴图
4. 发光参数 主要用来控制材质的自发光
5. 高级选项,一些性能上控制与提升
Lit 参数详解
着色器表面选项
-
SurfaceType 渲染类型,这里可以选择不透明或透明两种,故名思意,这个选项会告诉引擎渲染的是半透明还是不透明的物体
- Alpha Clipping 半透明剔除,这里是指顶一个值,如果当前渲染像素的不透明度高于此值这显示为实体渲染,当前渲染像素的不透明度低于此值,则显示完全透明,也就是指要透明要不透明,一种类似于剪纸的镂空效果。
a. 其下面的UseShadowThreshold 开启后可以单独控制投影的镂空状态,即当其开启后,如果值为0,则树叶投影其实是没有镂空的,也就是球体的投影
Double-Sided 开启双面显示,开启后物体片面的背面也会被渲染出来。
-
MaterialType 材质的类型,主要是指光照渲染类型,内置包含六种
1. Subsurface Scattering 此表面散射,用作渲染皮肤效果
2. Standard 标准的PBR 光照模型,默认就是这个
3. Anisotropy 各向异性光照,用来模拟头发这种各向异性高光
4. Iridesence 彩虹晕,一般用来渲染肥皂泡的彩虹偏色效果
5. SpecularColor 高光流的pbr
6. Translucent 透光效果,模拟光线透过物体的效果
Receive Decals 接受贴花,开启后可以在其表面进行贴花渲染
ReceiveSSR 接受屏幕空间反射,开启可以实现基于屏幕空间的反射效果,效果一般,但是可以丰富画面细节
GeometricSpecularAA 几何化高光反走样,主要用于没有法线贴图的高密度模型
DisplacementMode 置换贴图模式,参数有顶点模式,像素模式。
1. 顶点模式会改变模型的样子,来产生凹凸
2. 像素模式 就是视差效果,模型的实际样子不会有改变
表面参数输入
-
BaseMap 基础纹理(颜色纹理,可以理解为物体的固有色)右侧的颜色是正片叠底到纹理上的,用来改变纹理的颜色。这张图原则上来讲是不能有光影的明暗变化的,它只代表物体的固有色
- metalic 金属度强弱,值越大金属都越强,质感越像金属 (表面设置里如果设置的材质类型是高光流,则这里是没有metalic的)
- smoothness 光滑度,设置当前材质的光滑程度
- MaskMap 遮罩和参数图,这张图指定之后,其上面的参数会有变化,metalic,smoothness,作用会变,增加了AO参数。贴图的红色(R)通道代表了材质的金属度,绿色(G)通道代表了材质的ao贴图,蓝色(B)通道代表了材质的细节遮罩图纹理,透明通道(A)代表了光滑度。这张纹理的导入设置不需要勾选 sRGB 选项。
1. Metalic 用来控制金属度贴图的强弱
2. SmoothnessRemapping 将光滑度贴图的强弱重新映射到滑动条的范围内,即最小值变成滑动条左侧的值,最大值变成滑动条右侧的值。smooth贴图的范围是固定的 0-1 ,黑色为0 白色为1。
3. AmbientOcclusionRemapping 将AO题图的强弱重新映射到滑动条范围内。
- NormalMapSpace 法线贴图的空间,我们一般全是 TangentSpace 所以这里一般不设置。
- NormalMap 法线贴图,右侧的滑动条控制法线的强弱
- Bent normal Map 环境光用的normalmap 用来丰富环境光的命案细节
- CoatMask 车漆效果,开启后可以模拟车漆的高光效果,值越大效果越明显,相当于控制了一层浮于表面的透明玻璃材质的光滑度。
- BaseUVmapping UV通道选择,其中 Planar 是顶面映射,Triplanar 是三向贴图,这两个映射可以方便直接贴图到没有展UV的物体。
- tilling 平铺次数
- offset uv 偏移
细节参数输入
- DetailMap 不指定贴图是没有具体参数的,我们看一下指定了贴图的情况
- 贴图的红色通道(R)是 对 漫反射纹理黑白的缩放,绿色通道(G)影响发现贴图的 y 轴长短 ,蓝色(B)通道 控制的是光滑度贴图的缩放, 透明(A)通道控制的是法线贴图的 x 轴的长短。
- Detail UV Mapping UV通道选择
- Lock to Base Tilling/Offset 与基础贴图的 tilling 和 Offset 相关联,实测是乘法运算
- Tilling uv 平铺次数
- Offset uv 偏移量
- Detail Albedo Scale 细节贴图对固有色的影响程度
- Detail Normal Scale 细节贴图对法线的影响程度
- Detail Smoothness Scale 细节贴图对光滑度的影响程度
发光参数
UseEmissionIntensity 使用发光强度,开启后,下方的颜色不再是HDR颜色
EmissiveColor 发光贴图,后方的颜色 如果是HDR颜色 则可以通过增加颜色强度进行发光
ExposureWeight 曝光比重,值越大则自发光效果越弱
Emission multiply with Base 勾选后发光色会与固有色做正片叠底
Emission 烘焙的发光控制,勾选后会有两个参数
1. Baked 参与环境光的烘焙,影响烘焙物体,不影响动态物体
2. Realtime 在开启光线追踪后,后处理的volume内添加 global Illumination 功能后会想灯泡一样产生光照-
发光效果一般与 bloom 后处理一起使用效果更佳
高级选项
- EnableGPUInstacing 开启后 可以提升部分渲染性能,常规开启即可
- Specular Occlusion Mode 高光剔除模式 ,分两种,
1. FromAmbientOcclusion 通过AO计算
2. FromBentNormal 通过BentNormal 计算 - AddPrecomputedVelocity 添加预计算的力矢量信息