Preview3D
获取

什么是 .3ds 文件?3D Studio、丢失的纹理,以及 Mac

.3ds 文件是 1990 年发布的 3D Studio for DOS 所用的格式,存储三角网格、材质、相机、灯光和简单的动画。多年来它一直是各种 3D 程序之间的通用语言,所以旧的模型合集里至今仍满是这种文件。在 Mac 上,没有任何 Apple 应用能打开它。

概览

扩展名
.3ds
类型
较早的 3D 应用格式
创建者
Autodesk, Yost Group
始于
1990
标准
不是正式标准
macOS 自身(不装应用)
不认识:没有预览,也没有缩略图

信息核对于 2026年11月4日

由区块组成的二进制文件

3DS 是由区块(chunk)组成的二进制文件。每个区块都以一个两字节的数字开头,说明它装的是什么,后面跟着四字节的长度,所以不理解某个区块的程序可以跳过它。整个文件就是一个主区块 4D4D。里面是编辑器部分(3D3D),包含网格、材质、灯光和相机,以及关键帧部分(B000),包含动画。

Autodesk 从未发布过官方规范。程序依据在开发者之间流传的说明来读取这种格式;其中最有名的是 Jim Pitts 的 0.91 修订版,由 Paul Bourke 于 1996 年编辑。lib3ds 和 Assimp 等库就是基于这类说明构建的。

是模型,还是 Nintendo 3DS 游戏?

Nintendo 3DS 游戏机的游戏镜像也使用 .3ds 扩展名。终端可以告诉你手上的是哪一种:

head -c 2 model.3ds

3D Studio 文件会输出 MM,因为它以字节 4D 4D 开头。对于大多数这类文件,file model.3ds 会显示 3D Studio model。没有任何 3D 程序能打开 Nintendo 游戏。

来自 DOS 时代的限制

3D Studio 是为 DOS 制作的,这种格式至今仍带着那时的限制。根据 Okino 转换器的说明:

  • 只有三角形。多边形在导出时会被拆分。
  • 每个网格最多 65,535 个顶点和面,因为数量是两字节的数字。更大的对象会被拆成几块。在我磁盘上一个从 DXF 转换来的文件中,一个对象被拆成了大约 900 个网格,最大的那个正好有 65,535 个顶点。
  • 8.3 形式的纹理名称:八个字符、一个点和三个字符的扩展名,和 DOS 中一样。
  • 对象、灯光和相机名称最多 10 个字符,材质名称最多 16 个字符。我磁盘上一个旧的登月舱模型中,有名为 group13 gr 的对象,以及一个名为 initialShadingGr 的材质——这是 Maya 的 initialShadingGroup 截到 16 个字符后剩下的部分。
  • 没有精确的法线,只有平滑组,程序据此重建法线。
  • 没有平行光,而且根据 Cinema 4D 的帮助文档,每个点只有一组纹理坐标。

为什么它打开后没有纹理

纹理从来不在 .3ds 文件里。文件只记住图片的名称,程序会到它旁边去找。我手上一个 2008 年的 ZIP 中的登月舱模型就是个好例子。文件要的是 TEXTURE_.TIF、TEXTUREA.TIF 和 BOOSTER3.TIF,但同一个 ZIP 里附带的却是 textures/booster3.png、texture_lem_flag.png 和 texture_lem_unitedstates.png。扩展名不同,文件夹不同,长名称还被截成了八个字符。没有哪个程序能自己找到它们。

终端可以列出文件需要的图片:

strings model.3ds | grep -i -E '\.(tif|tga|jpg|png|bmp|gif)$'

然后把图片转换或重命名为列表上的名称,并放在 .3ds 文件旁边。对于长名称,你只能猜哪张图片对应哪个缩短后的名称,所以两种对应方式都试一试。

单位和比例

3DS 并不直接说明单位,但文件可以携带一个比例(master scale)。Rhino 在导入时会据此提出重新缩放模型,Assimp 则在读取时直接应用它。在那个从 DXF 转换来的文件中,数字是 43 × 21 × 14,比例为 0.03937,载入后变成 1097 × 529 × 355——英寸被换算成了毫米。登月舱模型没有比例,尺寸是 14 × 6 × 5 个单位,没有任何信息说明是什么单位。所以打开后和转换后都请检查尺寸。

3DS 从何而来

3D Studio for DOS 于 1990 年 10 月推出。它是由一家小公司 Yost Group 为 Autodesk 编写的:Gary Yost、Tom Hudson、Jack Powell,后来还有 Dan Silva。Hudson 的渊源可以追溯到 Atari 上的 CAD-3D。在第四版之前,.3ds 一直是这个程序自己的格式。1996 年,它被面向 Windows NT 的 3D Studio MAX 取代,.3ds 在其中保留为导入和导出格式。3D Studio MAX 就是今天的 3ds Max。

如何在 Mac 上打开 3DS

macOS 不认识 3DS。在 macOS 27.0.1 上,系统没有它的文件类型,Model I/O 框架无法载入它,预览、快速查看和访达都不显示它。Autodesk 的 3ds Max 只能在 Windows 上运行。

  • Blender 免费,通过“Autodesk 3D Studio (.3ds)”扩展打开和存储 3DS,包括材质、纹理、相机、灯光和动画。到 4.1 版为止它都是 Blender 的一部分;从 4.2 版起需要单独安装。
  • Rhino Mac 版可以导入和导出 3DS,包括灯光,相机则作为命名视图。
  • 3DS Viewer 在 Mac App Store 上售价 4.99 美元,但它的最新版本发布于 2014 年 1 月。
  • Preview3D,我的应用,可以在 Mac 上的窗口中、在快速查看里以及作为访达缩略图打开 .3ds 文件。在 iPad、iPhone 和 Apple Vision Pro 上也可以。这样你不用安装 Blender,就能以缩略图的形式浏览一整个文件夹的旧模型。

Preview3D 通过 Assimp 库读取 3DS。它统一用一种颜色显示几何:不使用文件中的材质或纹理,也不播放动画。它会应用文件中的比例,如上所述。模型信息中有尺寸和三角形数量,以及网格检查。在 iPad 和 iPhone 上,它会在 AR 中把模型立在你的桌上,并按桌面大小显示。

把 3DS 转换为 STL

在 Mac 上,Preview3D 通过 文件 → 导出模型为…(⌥⌘E)转换为 STL、OBJ 或 PLY,不上传任何东西。材质、纹理、相机、灯光和动画都会被丢弃。来自游戏和可视化的模型常常由许多分开的部件组成,打印前需要修复;网格检查会显示孔洞和没有连在一起的边。然后在切片软件中检查尺寸。

常见问题

什么是 .3ds 文件?

一个采用 1990 年 3D Studio for DOS 格式的模型:三角网格、材质、相机、灯光和简单的动画。

为什么我的 .3ds 模型打开后没有纹理?

纹理是放在文件旁边的单独图片,而且它们的名称最多八个字符。strings 命令可以显示文件需要哪些图片。把图片改成同样的名称,放在文件旁边。

我的 .3ds 是 3D 模型还是 Nintendo 3DS 游戏?

对于 3D 模型,head -c 2 model.3ds 会输出 MM。输出其他任何内容,都说明它不是 3D Studio 模型。

Mac 不装其他应用能打开 .3ds 吗?

不能。macOS 27 没有 3DS 的文件类型,预览和快速查看都不显示它。

如何把 3DS 转换为 STL?

在 Mac 上,用 Preview3D 的“文件 → 导出模型为…”,或者用装了 3DS 扩展的 Blender。然后检查网格和尺寸。

为什么一个大模型散成了许多块?

3DS 中的一个网格最多只能容纳 65,535 个顶点,所以导出程序会把更大的对象拆成几块。

相关页面

  • .fbx 文件——3DS 的继任者,用于把场景从 3ds Max 中导出
  • .obj 文件——另一种老的网格格式,材质放在 .mtl 文件中
  • .stl 文件——3DS 要转换成的打印格式

资料来源

你有没有一套来自光盘或旧档案的 .3ds 模型,在 Mac 上打不开?请写信到 apps@xfanta.com,告诉我它的来源。

在 Preview3D 中打开

在 Mac、iPad、iPhone 和 Vision Pro 上打开 STEP、3MF、STL、G-code、BGCODE 等格式。一次购买,无需账户,无需联网。

App Store 上的 Preview3D