OBJ Viewer

OBJ 在线查看器

看网格和 MTL 有没有对上。只传 obj 没有 mtl,灰模是预期。网页长期用请收成 GLB。

OBJ 在线查看器

一套完整的 OBJ

obj

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

mtl

材质定义:颜色(Kd)、高光(Ks)、贴图文件名(map_Kd)。obj 首行 mtllib 指向它。

贴图

png / jpg,和 mtl 里写的文件名一致,放在 mtl 同目录或它写的相对路径下。

OBJ 是什么,为什么到今天还在用

OBJ 是 Wavefront 在 1990 年代给自家动画软件定的文本格式,一行一个顶点、一行一个面。因为足够简单,三十年来每个三维软件都支持它:Blender、Maya、3ds Max、ZBrush、MeshLab、各类扫描仪和 CAD 的导出菜单里都有。跨软件传静态网格,它是最不会出错的选择。

代价也在这里。文本格式体积大、解析慢,材质靠外挂 MTL、贴图靠相对路径,任何一个文件放错目录就变粉。它没有单位、没有动画、没有 PBR 材质,所以网页和移动端早已转向 glTF。

看 OBJ 的正确用法是:确认几何和分组对不对、贴图有没有对上;然后要给网页用就转 GLB,要给打印用就转 STL,要做动画就进 DCC 绑定后导 FBX。

上传前检查

文件名编码

MTL 里的中文文件名在跨系统时常乱码。贴图和 MTL 里的引用统一用英文名。

面数

ZBrush、扫描仪出的 OBJ 动辄上千万面,文本格式几百 MB。先减面再上传,或直接转 GLB。

四边面与 N 边面

OBJ 允许任意多边形,查看器会三角化显示。个别软件导入时会把 N 边面三角化出错,交付前统一三角化最稳。

法线

OBJ 可以不带法线(vn)。缺了查看器会自动计算,但光滑组信息会丢,硬边可能变软。

接着看这些页