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 渲染类型,这里可以选择不透明或透明两种,故名思意,这个选项会告诉引擎渲染的是半透明还是不透明的物体
surface的渲染类型 - 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 基础纹理(颜色纹理,可以理解为物体的固有色)右侧的颜色是正片叠底到纹理上的,用来改变纹理的颜色。这张图原则上来讲是不能有光影的明暗变化的,它只代表物体的固有色
image.png - 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 车漆效果,开启后可以模拟车漆的高光效果,值越大效果越明显,相当于控制了一层浮于表面的透明玻璃材质的光滑度。
coat为0
- 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 添加预计算的力矢量信息
网友评论