一、三种东西分别是什么?
1).max(3ds Max 原生场景文件)
- 性质:专属二进制场景格式,只有 3ds Max 能打开Autodesk。
- 内容:整个场景的完整快照 —— 模型、材质、贴图引用、灯光、相机、动画、修改器、层级、渲染设置等所有信息。
- 贴图存储方式:不存贴图像素,只存贴图路径 + 材质节点连接关系(绝对路径 / 相对路径)。
- 版本:高版本能开低版本,低版本不能开高版本Autodesk。
2).fbx(Autodesk 通用交换格式)
- 性质:跨软件 / 跨平台的 3D 交换格式(Maya/Max/Blender/Unity/Unreal 都认)。
- 内容:模型、UV、法线、材质、贴图引用、骨骼、蒙皮、动画、层级等可交换的数据。
- 贴图存储方式:
- 形态:二进制(.fbx,常用)+ ASCII(文本,可手动改,体积大)。
3)贴图(Texture,常见:jpg/png/tga/dds/exr…)
- 性质:2D 图像文件,存 “颜色 / 粗糙度 / 法线 / 金属 / 透明度 / 光照” 等信息。
- 作用:给模型 “上色、做质感、做细节”,必须和材质 + UV 配合才能贴到模型上。
- 不在 .max/.fbx 里存像素(除非嵌入),只被引用。
二、三者关系(核心:模型→UV→材质→贴图)
一句话:.max 是工程包,.fbx 是交换包,贴图是外部素材;靠 UV + 材质把贴图 “贴” 到模型上。
1)数据流向(原理)
- 模型(Mesh):顶点、三角面、UV 坐标(关键!)。
- UV:把 3D 曲面 “展开成 2D 平面”,每个顶点对应一张 2D 贴图上的一个点(UV = 纹理坐标)。
- 材质(Material):定义 “怎么用贴图”—— 漫反射、法线、粗糙度、金属、透明度…… 每个通道可以挂一张贴图。
- 贴图(Texture):图像本身,被材质的某个通道引用。
- .max:保存模型 + UV + 材质节点 + 贴图路径 + 场景所有数据。
- .fbx:导出模型 + UV + 材质 + 贴图路径 / 嵌入贴图(去掉 Max 专属修改器 / 渲染设置)。
2)通俗类比
- 模型 = 白模雕塑
- UV = 把雕塑表面铺平的 “图纸”
- 材质 = 调色配方(用哪几张图、怎么叠)
- 贴图 = 颜料 / 花纹贴纸
- .max = 整个工作室(雕塑 + 图纸 + 配方 + 贴纸 + 工具 + 灯光相机)
- .fbx = 打包好的 “雕塑 + 图纸 + 配方 + 贴纸引用”(可带走给别人用)
三、.max 格式原理(二进制 + 层级节点)
- 底层结构:基于 OLE2 复合文档(CFBF),像 “文件系统里套文件系统”,分多个流(Stream)存不同数据。
- 核心数据块:
四、.fbx 格式原理(节点树 + 引用 / 嵌入)
1)整体结构(树状节点)
FBX 是层级节点树,每个节点有:类型名 + 属性 + 子节点。
典型节点:
FBXHeaderExtension:头信息(版本、创建时间)。Geometry:网格(顶点、面、UV)。Material:材质(Phong/Lambert/PBR)。FileTexture:贴图(路径 / 嵌入数据、UV 集关联)。Model:对象(网格 / 骨骼 / 灯光)。AnimationStack:动画数据。
2)贴图关联原理(最关键)
- UV 层(FbxLayerElementUV):只存2D 坐标,不存贴图。
- 材质(FbxSurfaceMaterial):有多个纹理槽(sDiffuse/sNormalMap/sRoughness…)。
- 贴图(FbxFileTexture):绑定到纹理槽,同时指定UVSet 名称(和 UV 层名字对应)。
- 匹配逻辑:渲染时,按材质→贴图→UVSet 名→找到对应 UV 层→把贴图 “贴” 到模型上。
3)嵌入 vs 引用
- 引用(默认):fbx 里只写
FilePath: D:/textures/wood.jpg,贴图单独放。优点:体积小;缺点:路径变了就丢贴图。 - 嵌入(Embed Media):把 jpg/png 的二进制数据直接塞进 fbx。优点:一个文件带走所有;缺点:体积变大。
五、常见问题深度分析
1).max 打开贴图丢失
- 原因:绝对路径失效(换电脑 / 移动文件夹)、贴图被删 / 改名、材质用了 VRay/Corona 专属节点。
- 本质:.max只存路径,不存贴图;找不到路径就显示 “丢失”。
2)Max 导出 fbx 后贴图不显示
- 原因:
3)fbx 导入 Unity/UE 材质乱
- 原因:PBR 通道映射不一致(Max 的 “粗糙度”=UE 的 “粗糙度”,但 Unity 默认是 “光滑度”=1 - 粗糙度)、法线贴图颜色空间错(Max 用线性,引擎用 sRGB)。
六、.max vs .fbx 核心对比(一眼看懂)
表格
| 对比项 | .max | .fbx |
|---|---|---|
| 软件专属 | 是(仅 3ds Max) | 否(跨软件) |
| 贴图存储 | 仅路径引用 | 路径引用 / 可嵌入 |
| 材质支持 | 全支持(含 VRay/Corona) | 仅标准 / 物理材质 |
| 修改器 | 全保留 | 不保留(只存结果) |
| 动画 | 全保留 | 保留骨骼 / 关键帧 |
| 体积 | 大(含全场景数据) | 较小(仅交换数据) |
| 用途 | 工程保存、继续编辑 | 跨软件交换、游戏引擎导入 |
七、最佳实践(避坑)
- Max 工作时:用相对路径(把贴图和 max 放同一目录下的 textures 文件夹),减少丢失。
- 导出 fbx 时:
- 跨引擎时:统一颜色空间(贴图 sRGB,法线 / 粗糙度 / 金属用线性)。