Skip to main content

FurMaterial 组件介绍

FurMaterial 组件介绍

FurMaterial(毛发材质)组件用于根据网格的原始几何体创建多层几何体,层与层之间具有指定的距离。生成的层数固定为 20 层。结合贴图通过 Alpha 通道在这些层中创建空隙(打孔),从而产生深度感和类似毛发的物理特性错觉。这些几何体层是在 GPU 上进行实例化渲染的。

⚠️ 性能警告:毛发材质导致卡顿(Lag)
一些玩家报告在使用毛发材质时会出现卡顿。这通常是因为使用了过大的纹理,或者是由一种被称为过度绘制(Overdraw)的问题引起的。当 GPU 在被称为“光栅化(Rasterization)”的渲染阶段为屏幕上某一层生成像素时,如果它完成该层后渲染下一层,就必须将新像素绘制在已绘制的像素之上。接下来的 19 层不断在上方重复绘制的过程就被称为“过度绘制”。这意味着,如果用户非常近距离地观察毛发着色器,或者当所有层都在相机前方且着色器覆盖了整个屏幕时,将会产生剧烈的卡顿。因为游戏针对屏幕上的每个像素都在进行高达 20 次的绘制循环,这会引起非常严重的性能下降。

image.png

字段属性

属性名称 类型 描述
HighPriorityIntegration
(高优先级集成)
Bool 决定此材质是否优先进行渲染集成。
_shader
(着色器)
AssetRef<Shader> 此材质使用的底层着色器文件引用。
Color
(基础颜色)
ColorX 毛发的主颜色/基础色。
SpecularColor
(高光颜色)
ColorX 毛发上的镜面反射(高光)颜色。
Shininess
(光泽度)
Float 控制毛发反射高光的强度。
Gloss
(光滑度)
Float 控制高光斑块的大小和集中程度。
RimColor
(边缘光颜色)
ColorX 模型边缘轮廓处受光照影响的边缘光颜色。
RimPower
(边缘光强度)
Float 边缘光的强度或衰减指数,值越高边缘光越集中在最外围。
FurLength
(毛发长度)
Float 控制毛发的整体长度(即 20 个几何体层之间的总间距)。
FurHardness
(毛发硬度)
Float 毛发的硬度,通常影响毛发对受力(如重力)的抵抗程度。
FurThinness
(毛发纤细度)
Float 控制每根毛发从根部到尖端的收缩/变细程度。
FurShading
(毛发着色/自阴影)
Float 控制层与层之间的阴影强度,模拟底层毛发较暗的效果。
FurColoring
(毛发染色程度)
Float 控制毛发根部与尖端颜色的混合染色程度。
Base
(基础贴图)
AssetRef<ITexture2D> 基础的漫反射纹理贴图。
NormalMap
(法线贴图)
AssetRef<ITexture2D> 用于提供光照凹凸细节的法线贴图。
Noise
(噪波贴图)
AssetRef<ITexture2D> 定义毛发分布的噪点贴图。它的 Alpha 通道用于在各个层中“挖洞”,从而生成一根根独立的毛发形状。
TextureScale
(纹理缩放)
Float2 纹理的 UV 缩放值。
TextureOffset
(纹理偏移)
Float2 纹理的 UV 偏移值。
AlphaCutoff
(Alpha 剪裁)
Float 控制毛发密度的 Alpha 剪裁阈值。低于此值的像素将被丢弃,从而决定毛发的粗细或稀疏。
ForceGlobal
(全局作用力)
Float4 施加在毛发上的全局定向力(如模拟全局环境风向或重力)。
ForceLocal
(局部作用力)
Float4 施加在毛发上的局部定向力(相对于物体自身的局部空间)。
RenderQueue
(渲染队列)
Int 定义此材质在渲染管线中的绘制顺序。

用法

将该组件插入到一个带有网格的 MeshRenderer(网格渲染器)或 SkinnedMeshRenderer(蒙皮网格渲染器)的材质列表中,即可查看该材质呈现的毛发效果。

示例

(文档待完善)

相关组件

(暂无补充内容)