FurMaterial 组件介绍
FurMaterial 组件介绍
FurMaterial(毛发材质)组件用于根据网格的原始几何体创建多层几何体,层与层之间具有指定的距离。生成的层数固定为 20 层。结合贴图通过 Alpha 通道在这些层中创建空隙(打孔),从而产生深度感和类似毛发的物理特性错觉。这些几何体层是在 GPU 上进行实例化渲染的。
⚠️ 性能警告:毛发材质导致卡顿(Lag)
一些玩家报告在使用毛发材质时会出现卡顿。这通常是因为使用了过大的纹理,或者是由一种被称为过度绘制(Overdraw)的问题引起的。当 GPU 在被称为“光栅化(Rasterization)”的渲染阶段为屏幕上某一层生成像素时,如果它完成该层后渲染下一层,就必须将新像素绘制在已绘制的像素之上。接下来的 19 层不断在上方重复绘制的过程就被称为“过度绘制”。这意味着,如果用户非常近距离地观察毛发着色器,或者当所有层都在相机前方且着色器覆盖了整个屏幕时,将会产生剧烈的卡顿。因为游戏针对屏幕上的每个像素都在进行高达 20 次的绘制循环,这会引起非常严重的性能下降。
字段属性
| 属性名称 | 类型 | 描述 |
|---|---|---|
| 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(蒙皮网格渲染器)的材质列表中,即可查看该材质呈现的毛发效果。
示例
(文档待完善)
相关组件
(暂无补充内容)

No comments to display
No comments to display