本章目标:

  • 学习记录VAT技术要点

  • 学习Unity+Houdini的VAT流程

  • 学习3dsMax+Unreal的VAT流程

  • 学习Blender的VAT流

配置环境:

  • DCC软件

    • Blender

    • 3dsMax

    • Houdini

  • 游戏引擎

    • Unity

    • Unreal

  • VScode编译器

  • Photoshop2019


一、什么是VAT什么又是FlowMap技术,它们都能做什么?

1、参考文献

https://blog.csdn.net/js0907/article/details/117395543https://www.bilibili.com/video/BV1Zq4y157c9/?vd_source=ec576172c16005a65f4ffcf7cfe5cc13https://blog.csdn.net/whitebreeze/article/details/117970673

2、什么是VAT顶点动画贴图技术,它能做什么?

VAT(Vertex Animation Texture,顶点动画贴图)是一种将动画数据存储在纹理中的技术。其核心原理是将每个顶点在不同帧的位置信息编码到纹理中,通过GPU读取纹理数据来驱动顶点动画。

(1)VAT的优势在于:

  1. 减少CPU负担:动画数据由GPU处理,适合复杂动画场景。

  2. 灵活性高:支持每个顶点的自由动画,适用于柔体、刚体破碎、液体等复杂效果310

  3. 跨平台兼容:VAT技术可在Unity、Unreal等引擎中使用,适合游戏、影视特效等领域1118

(2)VAT的局限性包括:

  • 存储空间需求大:复杂动画需要较大的纹理存储数据3

  • 精度问题:在复杂场景或光线不足时,可能出现精度不足的情况5

二、Unity+Houdini的VAT流程

  1. Houdini端操作

    • 创建动画:在Houdini中生成动画(如柔体变形、刚体破碎等)。

    • 烘焙VAT:使用SideFX Labs节点将动画数据烘焙为VAT纹理,生成geo(模型)和tex(纹理)文件夹1118

    • 导出资源:将烘焙的VAT纹理和模型导出为FBX格式。

  2. Unity端操作

    • 导入资源:将Houdini导出的FBX模型和VAT纹理导入Unity。

    • 创建材质:使用SideFX Labs提供的材质函数(如MF_VAT_SoftBodyDeformation)读取VAT纹理,并将其连接到材质的World Position Offset节点11

    • 应用动画:将材质实例应用到模型上,即可在Unity中播放顶点动画。

  3. 注意事项

    • 确保Houdini和Unity版本兼容。

    • 在Unity中取消模型的Optimize Mesh选项,以避免UV错乱18

三、3dsMax+Unreal的VAT流程

  1. 3ds Max端操作

    • 创建动画:在3ds Max中制作顶点动画(如柔体变形或刚体破碎)。

    • 导出数据:将动画数据导出为ABC(Alembic)格式,或使用插件将顶点动画数据转换为VAT纹理16

  2. Unreal端操作

    • 导入资源:将ABC文件或VAT纹理导入Unreal Engine。

    • 创建材质:使用Unreal的材质编辑器,添加VAT相关的节点(如Vertex Animation Texture节点)读取纹理数据。

    • 应用动画:将材质应用到模型上,调整参数以播放顶点动画1016

  3. 注意事项

    • 确保3ds Max和Unreal的版本兼容。

    • 在Unreal中启用Use Full Precision UVs选项,以确保动画精度10

四、Blender对于VAT流

  1. Blender端操作

    • 创建动画:在Blender中制作顶点动画(如布料模拟或刚体破碎)。

    • 导出数据:通过插件或脚本将动画数据导出为VAT纹理,或转换为ABC格式16

  2. 与其他引擎的集成

    • Unity:将Blender导出的VAT纹理和模型导入Unity,使用SideFX Labs材质函数读取动画数据11

    • Unreal:将Blender导出的ABC文件或VAT纹理导入Unreal,使用材质编辑器读取动画数据10

  3. Blender的局限性

    • 目前Blender对VAT的原生支持较弱,通常需要依赖插件或脚本实现。

    • 与其他软件(如Houdini)相比,Blender在复杂动画处理上功能有限1618

总结