obj
顶点、面、法线、UV 和分组(g / o)。文本格式,能用记事本打开。

顶点、面、法线、UV 和分组(g / o)。文本格式,能用记事本打开。
材质定义:颜色(Kd)、高光(Ks)、贴图文件名(map_Kd)。obj 首行 mtllib 指向它。
png / jpg,和 mtl 里写的文件名一致,放在 mtl 同目录或它写的相对路径下。
OBJ 是 Wavefront 在 1990 年代给自家动画软件定的文本格式,一行一个顶点、一行一个面。因为足够简单,三十年来每个三维软件都支持它:Blender、Maya、3ds Max、ZBrush、MeshLab、各类扫描仪和 CAD 的导出菜单里都有。跨软件传静态网格,它是最不会出错的选择。
代价也在这里。文本格式体积大、解析慢,材质靠外挂 MTL、贴图靠相对路径,任何一个文件放错目录就变粉。它没有单位、没有动画、没有 PBR 材质,所以网页和移动端早已转向 glTF。
看 OBJ 的正确用法是:确认几何和分组对不对、贴图有没有对上;然后要给网页用就转 GLB,要给打印用就转 STL,要做动画就进 DCC 绑定后导 FBX。
MTL 里的中文文件名在跨系统时常乱码。贴图和 MTL 里的引用统一用英文名。
ZBrush、扫描仪出的 OBJ 动辄上千万面,文本格式几百 MB。先减面再上传,或直接转 GLB。
OBJ 允许任意多边形,查看器会三角化显示。个别软件导入时会把 N 边面三角化出错,交付前统一三角化最稳。
OBJ 可以不带法线(vn)。缺了查看器会自动计算,但光滑组信息会丢,硬边可能变软。