tajourney tajourney
  • 首页
  • 渲染
    • PBR
    • NPR
  • 引擎
    • Unity
    • UE
  • DCC
    • Houdini
    • PhotoShop
    • Blender
  • 优化
  • 工具
  • 杂谈
    • 游戏
  • 友链
  • 关于
    • About Me
    • 网站公告
    • 维护记录
    • QA
  • 注册
  • 登录
首页 › 渲染 › NPR › 终末地人物渲染(更新中)

终末地人物渲染(更新中)

糯米
4月前NPR阅读 687
终末地人物渲染(更新中)-tajourney
终末地人物渲染(更新中)-tajourney

由于最近太忙,一点文章没写。听朋友说终末地内测了(都结束了),才想起来看看终末地的人物渲染如何做的,不得不说这人物渲染和场景渲染非常棒。

先整理下模型。

发现normal通道只有1float,猜测是法线做了压缩,这部分具体使用情况后续再分析。

终末地人物渲染(更新中)-tajourney

mesh内可以看到存了gpu骨骼动画相关的通道。

终末地人物渲染(更新中)-tajourney

Houdini里还原下模型各通道信息:

终末地人物渲染(更新中)-tajourney

导入Unity先看下UnLit效果:

终末地人物渲染(更新中)-tajourney
终末地人物渲染(更新中)-tajourney
终末地人物渲染(更新中)-tajourney

还原下终末地的法线压缩算法:

    private Vector4 DecompressNormal(float compressedValue)
    {   
        uint compressedValueInt = System.BitConverter.ToUInt32(System.BitConverter.GetBytes(compressedValue), 0);

        // 分别计算 x, y, z 轴的 normalOSInt
        int x = Extract10BitSigned(compressedValueInt,22);  // 0-9 bit
        int y = Extract10BitSigned(compressedValueInt,12);  // 10-19 bit
        int z = Extract10BitSigned(compressedValueInt,2);   // 20-29 bit

        Vector4 normal;
        normal.x = x * 0.002f;
        normal.y = y * 0.002f;
        normal.z = z * 0.002f;

        int sign = (int)(compressedValueInt >> 31);
        normal.w = sign * 2.0f - 1.0f;

        return normal;
    }

    private static int Extract10BitSigned(uint value, int offset)
    {
        int bits = (int)(value << offset);
        return bits >> 22; 
    }

需要注意的是,renderdoc默认只保留5位小数点,需要在设置内修改(上面是显示的位数,下面画圈的截断的位数,要修改截断的位数为32),这样导出的数据才能保证精度正确。

终末地人物渲染(更新中)-tajourney
赞(2)

请登录以参与评论

现在登录
暂无评论
搜索
近期文章
  • 终末地人物渲染(更新中) 2025年3月17日
  • Unity APV体素化光栅化实现 2025年2月5日
  • Unity 不同 ReflectionProbe 打断 Instancing 解决方案 2025年1月15日
  • Renderdoc 原神截帧记录 2024年8月22日
  • Houdini VAT:Vellum Cltoh笔记 2 2024年7月17日
归档
  • 2025年3月 (1)
  • 2025年2月 (1)
  • 2025年1月 (1)
  • 2024年8月 (1)
  • 2024年7月 (2)
  • 2024年1月 (1)
  • 2023年10月 (3)
  • 2023年9月 (4)
  • 2023年8月 (5)
  • 2023年7月 (4)
  • 2023年6月 (4)
  • 2023年5月 (1)
  • 2023年4月 (3)
  • 2023年3月 (11)
  • 2023年2月 (11)
  • 2023年1月 (1)
  • 2022年7月 (1)
  • 2022年6月 (2)
  • 2022年5月 (1)
  • 2022年4月 (1)
  • 2022年3月 (1)
  • 2022年2月 (1)
  • 2022年1月 (7)
  • 2
  • 0
Copyright © 2022-2025 tajourney. Dev by nuomi 版权所有.
鲁ICP备19015245号
  • 首页
  • 渲染
    • PBR
    • NPR
  • 引擎
    • Unity
    • UE
  • DCC
    • Houdini
    • PhotoShop
    • Blender
  • 优化
  • 工具
  • 杂谈
    • 游戏
  • 友链
  • 关于
    • About Me
    • 网站公告
    • 维护记录
    • QA
糯米
日语学习中
68
文章
15
评论
44
喜欢