1.0.0
为网格自动计算平滑法线并烘焙到顶点色 / 切线 / TEXCOORD 通道,用于背面外扩描边,解决硬边处描边断裂。
📦 安装
Window > Package Manager → 左上角 + → Install package from git URL... → 粘贴:
https://github.com/AleFeng/OutlineSmoothNormalsGenerator.git?path=/Packages/com.alefeng.outlinesmoothnormalsgenerator#1.0.0
⚠️ 装完还必须导入一个 Sample,否则没有描边 Shader。
核心包刻意不含 Shader —— 这是「不引入任何渲染管线依赖」的代价。
在 Package Manager 里选中本包 →Samples→ 按你的管线导入其中一个:
| Sample | Shader 名 |
|---|---|
Outline Shader (URP) & Demo |
OutlineSmoothNormalsGenerator/Outline URP |
Outline Shader (Built-in RP) & Demo |
OutlineSmoothNormalsGenerator/Outline Built-in |
两个 Sample 各自附带同一套对照演示场景(已烘焙 / 原始法线 / 接缝抖动 三个立方体)。
安装成功后,菜单栏出现 Tools → Smooth Normal Generator。
✨ 主要功能
- 平滑法线生成工具 —— 纯 Editor C#,与渲染管线无关,Built-in / URP / HDRP 均可用于烘焙。
- 三种存储方式 —— 顶点色(八面体编码,全球面双射,8-bit 下误差约 1°)/ 切线 / TEXCOORD。
- 实时描边预览、法线可视化对比、通道状态检查。
- 会话快照还原、Mesh 另存为独立资产(不可写网格唯一能真正保存的路径)。
- 可调合并容差(默认
0.0001),处理 DCC 导出与 FBX 浮点截断造成的接缝。
⚠️ 已知限制
- 顶点合并采用格点取整,恰好跨越格边界的两点仍会被分开。容差需远小于模型的最小真实特征尺寸。
- 不支持 Undo ——
Undo.RecordObject并不可靠地跟踪网格顶点数据,对不可变的导入子资产更是完全无效。工具提供自己的会话快照还原作为替代。 - HDRP 未提供描边 Shader,可参照详细文档自行移植(解码逻辑通用,仅渲染 Pass 需适配)。
- 通道状态最高只说「可能是平滑法线」—— 编码后就是普通数值,与任意顶点色 / UV 在数据上不可区分。