COLOR1 修复为 TEXCOORD1
推荐
精华
鸣潮MOD 讨论

COLOR1实际上是uv浮点R16G16_FLOAT​,但是WWMI-Tools格式错误弄成了字节顶点色R16G16_UNORM​

修改WWMI-Tools的三处地方

COLOR换TEXCOORD,R16G16_UNORM​换R16G16_FLOAT​,索引向后推一位

修改后

改后提取的fmt文件会变为正确格式

这样修改之后就会变成正确数据和解包的相同

TEXCOORD1作用

使描边沿平滑法线外扩(多个面拐法线统一为一个平滑法线),让描边转角处不会断裂

计算TEXCOORD1

平滑法线——>投射正八面体——>展开平面存uv

  1. 用切线空间描述平滑法线:
  2. TBN矩阵切线空间基向量×平滑法线向量切线空间 =平滑法线向量自然坐标系(模型空间,假设模型无变换)
  3. 平滑法线向量切线空间 =TBN逆矩阵×平滑法线向量自然坐标系
  4. 构建的TBN矩阵是正交矩阵,可以使用TBN行向量(列向量转置)代替逆矩阵来节省步骤
  5. 投影八面体
  6. 展开平面(不进行规格化),Y坐标+1
  7. 这里得到的uv坐标系不需要翻转成ue坐标系,难道反转是交给游戏引擎处理的?

参考

读取鸣潮角色里的平滑法线|八面体法线压缩_哔哩哔哩_bilibili

blender脚本/UE蓝图实现描边平滑法线存uv - 知乎

精度优化--使用oct编码增加GBuffer中法线精度 - 知乎


附件
blender脚本:平滑法线存八面体uv
免费
by xqfa 更新于 2025-10-31
若有附件,打赏后可直接下载 赠人玫瑰 手留余香
默认
最新
1