在3ds Max中准备模型:修订间差异
(Перевод с русской вики (задача №983, LS Dev Hub)) |
(Перевод с русской вики (задача №1106, LS Dev Hub)) |
||
| 第1行: | 第1行: | ||
[[ru:Подготовка модели в 3ds max]] [[en:Preparing a Model in 3ds Max]] [[zh:在3ds Max中准备模型]] | [[ru:Подготовка модели в 3ds max]] [[en:Preparing a Model in 3ds Max]] [[zh:在3ds Max中准备模型]] | ||
这篇 文 章讲的是 模型应 该是什么 样 子 ,才能以 合适 的 大小 、正确的朝上方向、且不 丢 失 任何内容进 入 Light Stream 的场景。这里 以 3ds Max 为例 ,但对任何三维编辑器 的 要求都是一样的:对程序来说重要的不是模型是用什么软件制作的,而是<code>*.obj</code>文件 中 记录了什么内容。 关于 导入本身 的介绍见 文章[[导入OBJ模型]]。 | |||
为 Light Stream 准备模型,追求的不是 | 为 Light Stream 准备模型,追求的不是 “ 更好看 ” ,而是 “ 更清楚 ” 。这里不会有 漂亮 的渲染效果:程序只用单一贴图 的简单平涂方式 显示物体。但吸附功能是基于模型顶点工作的,模型中的 对象也 会成为列表中的一行——在整个项目 过程中你都要 翻阅这个列表 ——所以 最重要的是正确的比例、干净的几何体和有意义的命名。 | ||
== 哪些内容会 | == 哪些内容会 转移到 Light Stream,哪些不会 == | ||
{| class="wikitable" | {| class="wikitable" | ||
! 会 | ! 会 转移 !! 不会 转移 | ||
|- | |- | ||
| | | | ||
* 几何体——三角形和四边形 | * 几何体——三角形和四边形 | ||
* | * 对象 的划分及其名称 | ||
* 法线(明暗与平滑) | * 法线(明暗 关系 与平滑) | ||
* 线条——会变成样条 | * 线条—— 它们 会变成样条 线 | ||
* 展开 | * 展开贴图坐标 (UV ) | ||
* 材质的基础颜色和基础贴图 | * 材质的基础颜色和基础贴图 | ||
| | | | ||
* 修改器、构建历史、骨骼 | * 修改器、构建历史、骨骼 和 动画 | ||
* 图层、 | * 图层、组、 “ 父子 ” 关系 | ||
* 单独 | * 单独的平滑组 | ||
* 除基础贴图外的所有贴图:凹凸、反射、透明、自发光 | * 除基础贴图外的所有贴图:凹凸、反射、透明 度 、自发光 | ||
* 同一 | * 同一 对象 的第二个及后续材质 | ||
* 光源 | * 光源 和 摄像机——它们不会从<code>*.obj</code> 文件 中 导 入 | ||
* 顶点颜色 | * 顶点颜色 | ||
|} | |} | ||
| 第28行: | 第28行: | ||
== 单位与比例 == | == 单位与比例 == | ||
坐标是按文件中原样读取的:导入时没有缩放窗口, | 坐标是按文件中原样读取的:导入时没有缩放窗口, “输入时” 无法调整大小。 | ||
'''Light Stream 场景以毫米为单位:文件中的一个长度单位等于一毫米。''' | '''Light Stream 的 场景以毫米为单位:文件中的一个长度单位等于一毫米。''' 高度30 米的 建筑 立面在文件中应 占30 000 个单位,而LED灯条 上 单个像素 点则是 三四十个单位。检查比例最简单的方法是用程序 自 身创建的立方体: 在'''Properties'''(属性)窗口的'''Cube'''(立方体)部分,把'''Width'''(宽度)、'''Height''' (高度)和'''Length''' (长度)都设为'''1000''' ——这 是一个一米见方的 小 立方体 , 把它放在模型旁边 进行 比较。 | ||
在3ds Max中,最方便的 做法 是:将系统单位设置为毫米,并按 真 实尺寸建模——这样导出时就不需要重新换算,缩放系数保持为'''1'''。如果场景是用其他单位搭建的, 就 在导出时设置缩放系数:从米——'''1000''',从厘米——'''10''',从英寸——'''25.4'''。 | |||
单位错误是导入后 | 单位错误是导入后 “ 什么都看不 见” 最常见的原因。以米为单位导出的模型会 比实际需要 小一千倍,淹没在固定装置 (fixtures )之中;而不小心放大 了 一千倍的模型则会跑到离坐标原点几公里 远的地方 ,摄像机 里 只 会显示 一片空白。 | ||
== 朝向 == | == 朝向 == | ||
Light Stream 场景中朝上的是 '''Z''' | Light Stream 场景中朝上的是'''Z'''轴—— 这与3ds Max中一致。因此 在OBJ 导出设置中,应取消勾选'''Flip YZ-axis''' (交换坐标轴以适应Y 轴朝上的 约定 )选 项 :如果勾选了它,模型 进入 场景 后 会侧倒。如果模型确实侧倒了,切换 一下 这个选 项, 重新导出即可。 | ||
导出前,最好重置变换,并 | 导出 之 前,最好重置变换,并 在3ds Max中把模型放到它相对 于 坐标原点应处的位置: 对象 之间的相对位置以及文件中的坐标,在导入时会被完整保留。 | ||
== | == 对象 划分与命名 == | ||
文件会被解析为若干独立 | 文件会被解析为若干独立 对象 ,每个 对象 在'''3D Objects'''(3D对象)窗口中 都会 成为一行,各自拥有自己的可见性复选框、材质和锁定状态。规则很简单: | ||
* '''所有几何体都必须 | * '''所有几何体都必须 属 于命名 对象 。'''写在 文件中 第一个 对象 之前的内容不会被导入。 | ||
* '''每个 | * '''每个 对象 都必须有名称。'''未命名的 对象 或组会中断文件的读取:写在它 之后 的内容将无法进入场景,模型 会 只导入一半。 | ||
* '''名称必须使用拉丁字母,不能使用西里尔字母。''' | * '''名称必须使用拉丁字母,不能使用西里尔字母。''' 这既适用于对象 名称 ,也适用于模型所引用的文件名——材质文件 和 贴图 文件 。其 中的俄文字母在导入时会变成一串问号 ,同名的贴图也就无法被找到。 | ||
* 按含义划分:如 | * '''不要将对象命名为<code>light</code>。'''这是一个保留名称:名为该名称的对象的几何体不会被当作普通装饰物,而是被当作发光部件——它不会以自身材质渲染,而是以光的方式渲染,在场景中不可见,除非该对象被选中 。 | ||
* 也不要走向另一个极端:几百个细小 | * 按含义划分:如 “facade” (立面)、 “roof” (屋顶)、 “column_left” (左立柱)。由 单一 整体 部件 构成的模型在列表中只会是一行——之后就无法 单独 隐藏或改变 它某 一部分的颜色。 | ||
* 也不要走向另一个极端:几百个细小 对象 会把'''3D Objects'''列表变成一条无穷无尽、难以查找的长条。 | |||
== 多边形 == | == 多边形 == | ||
Light Stream 只读取三角形和四边形。五个 | Light Stream 只 能 读取三角形和四边形。 拥有 五个 或更多 顶点的面会被静默跳过——场景中 对 应 的 位置会出现破洞。 | ||
因此在导出设置的 '''Faces'''(面) | 因此在导出设置的'''Faces'''(面)组中,应选择'''Triangles'''(三角形)或'''Quads'''(四边形),而不是'''Polygons'''(多边形)。导出前请塌陷修改器,并将 对象 转换为多边形网格:NURBS、面片、带布尔运算的实体以及其他未 被计算 的 对象 ,要么无法进 入OBJ 文件,要么进入后与视口中 看到 的 样子 不 一致 。 | ||
对几何体还有一 | 对几何体还有一 个 要求:'''不要导出顶点颜色。'''如果导出 器 在顶点坐标之外还附加了顶点颜色,这样的顶点将 完全 无法被读取, 顶点编号会发生错位—— 面 就 会 按 错误的点 来 构建 : 模型会 出现 内外翻转 或从中间断开 的 情况 。 | ||
== 法线 == | == 法线 == | ||
'''必须将法线写入文件'''——在导出设置中对应 '''Normals'''(法线) | '''必须将法线写入文件'''——在导出设置中对应'''Normals'''(法线)选 项 。程序依据法线计算明暗 关系 :没有法线, 对象根本不 会 被打 光, 在场景中只会呈现为 没有立体感的 纯黑 色剪影。 | ||
平滑组 | 平滑组本身不会被读取,但也不需要单独设置:导出 器 会把平滑的结果写入法线 中 , 对象 进入场景后会保持 在 编辑器中同 样 的平滑或 多 面效果。 | ||
明暗关系只针对用纯色着色 的部件 计算 。 带贴图 的 对象 会 以平 面 方式渲染,不做 明暗 处理—— 法线 对它没有影响 。 | |||
Light Stream 没有背面剔除:一个面从两侧都能看见,因此内外翻转 的 部件不会消失。但方向背离光源的法 线 会消除明暗效果:这样的面会明显比相邻的面暗。如果导入后模型上出现暗斑,请检查编辑器中法线的方向。 | |||
== 用于 固定装置的线条 == | |||
写入文件的 线条 会作为现成的样条线进 入 场景——可以直接沿它们布置固定装置(Fixtures),无需手动描绘边缘。这是把灯带、灯串和轮廓灯光路径传入Light Stream最方便的方法 : 在3ds Max中按实际位置用样条线画好,进入程序后只需把它们与映射关联起来即可。 | |||
要让 线条 能够 导入: | |||
不需要为固定装置单独建 | * 开启其导出功能——在OBJ导出设置中勾选'''Shapes/Lines'''(形状/线条); | ||
* 将样条线转换为具有所需点数的折线:曲线在文件中是按线段记录的,步长越小,进入场景的点就越多; | |||
* 把各段连接成一条线。文件中的每一条线都会成为一条独立的样条线,因此由未连接的线段拼成的路径,导入后会变成一堆零散的短样条线; | |||
* 如果样条线没有出现,请关闭贴图坐标的导出:有些导出器也会把贴图坐标写入线条记录,而这样的记录会被Light Stream跳过。 | |||
样条线的名称取自的不是线条本身,而是记录该线条的对象——因此最好把线条整理到单独且有意义命名的对象中,例如“line_roof”(屋顶线)、“contour_window”(窗轮廓线)。这样的对象本身不会出现在'''3D Objects'''列表中:如果它不含任何面,进入场景的就只有样条线。 | |||
不需要为固定装置单独建 立对象 :3ds Max中的光源根本不会保存 到OBJ文件中 。如果 希望 把已经 布置 好的灯具 也传 入程序,可以把模型导出为<code>*.fbx</code> 格式 ——从 该 格式中,除了 对象 和样条 线 之外,单个固定装置也 会被 导入。 | |||
== 材质与贴图 == | == 材质与贴图 == | ||
OBJ | OBJ把材质存储在模型旁边的一个单独文件中,而贴图则是另外的图片文件,因此请 开 启材质导出,并始终把模型 作为完 整 的一 个文件夹 整体 转移。 | ||
关于材质,需要 | 关于材质,需要 事先 了解 以下几点 : | ||
* '''一个 | * '''一个 对象对应 一种材质。'''多组件材质(Multi/Sub-Object)只 会转移 其中一 个 部分 ——文件中最后提到的那一个,并且它 会被 应用到整个对象上 。如果部件的不同部分需要不同颜色,请按材质把该部件拆分成 不同对象 。 | ||
* 材质中只会取用基础颜色和基础贴图。透明度、反射、凹凸、自发光以及任何程序化贴图都会被忽略——最好把它们 | * 材质中只会取用基础颜色和基础贴图。透明度、反射、凹凸、自发光以及任何程序化贴图都会被忽略——最好把它们 “ 烘焙 ”成 普通图片,或者不要依赖它们。 | ||
* 贴图 | * 贴图 就是 普通 的JPG 、PNG、BMP 或GIF 图片。把它们放在模型旁边或子文件夹中:程序会按名 称 在 模型旁边及所有子 文件夹中查找 文件 。文件名必须使用拉丁字母。 | ||
* 贴图需要展开 | * 贴图需要展开 坐标 (UV)。没有展开 坐标 的 对象 ,贴图会被 涂抹 成单一颜色。 | ||
* Light Stream | * Light Stream 中 没有自发光材质。如果某个部件 需要 看起来 像在 发光——例如招牌、屏幕、 发 光线 条 ——请在导入后,在'''Properties'''(属性)窗口的'''Material'''(材质)部分为它 启用'''Glow'''(发光)选 项 。 | ||
颜色、贴图和发光效果也完全可以在程序 | 颜色、贴图和发光效果也完全可以在程序 中 手动指定,因此对于辅助性 的 几何体,完全可以不在编辑器 中 设置材质:没有材质的 对象 导入后会 显示为灰 色。 | ||
== 模型复杂度 == | == 模型复杂度 == | ||
模型会被整 | 模型会被 完 整 嵌 入 到 项目文件 内部 ,因此它的体积就是项目的体积、打开 项目所需的 时间, 以及 每一帧预览 时对 显卡 造成的负担 。而且在程序中 , 网格 所 占用的空间比在编辑器中更大:每个面都 要 连同自己的顶点一起存储。 | ||
导出前合理的最低限度准备工作: | 导出前合理的最低限度准备工作: | ||
* 删除 | * 删除 对象 上看不见的 所有内容 :内部结构、背面、隐藏 部件 、辅助 对象 、重复的副本; | ||
* 去掉预览中看不 | * 去掉预览中看不 出来 的细 节 :螺栓、型材、纹理细节、一毫米的倒角; | ||
* 减少圆角和管道的分段数——平滑度的代价很高; | * 减少圆角和管道的分段数 量 ——平滑度的代价很高; | ||
* 在需要的地方保留顶点:'''Snap to Vertices'''(吸附 | * 在需要的地方保留顶点:'''Snap to Vertices'''( 顶点 吸附) 正是 依 据 顶点工作 的 , 这样 固定装置才能 准 确落在 拐 角和边 缘 上。如果需要沿 一面 平整的墙 布置一 排 灯具 , 就要 在模型 中 沿 墙 边添加 相应的 边。 | ||
== 导出流程 == | == 导出流程 == | ||
# | # 在3ds Max场景中 , 只保留 需要传入Light Stream的内容:模型本身以及 用于 固定装置的线条。 | ||
# 塌陷修改器, | # 塌陷修改器, 把对象 转换为多边形网格,删除隐藏和多余的内容。 | ||
# 检查 | # 检查 对象 名称:必须存在,且必须 使用 拉丁字母。 | ||
# 检查尺寸, | # 检查尺寸,把模型 调整 到 “ 一个单位 等于 一 毫 米 ” 的比例。 | ||
# 将选中 | # 将选中内容导出为<code>*.obj</code>。 | ||
# 在导出设置中:'''Faces''' | # 在导出设置中:'''Faces'''——选择'''Triangles'''或'''Quads''';'''Normals'''—— 开 启;'''Texture coordinates'''(贴图坐标)——如 果 有贴图则 开 启;'''Shapes/Lines'''——如 果 场景中有 用于 固定装置的线条则 开 启;'''Flip YZ-axis'''——取消勾选;材质导出—— 开 启。 | ||
# 把模型、材质文件和贴图保存到同一个文件夹中,并从 | # 把模型、材质文件和贴图保存到同一个文件夹中,并从 该文件夹 导入。 | ||
导出 | 导出 得到的 文件的第一行 ,导出器会用来写入 关于自身的 说明信息 ——如果你要手动编辑 该 文件,不要删除这一行:导入时 第一行 不会 被 读取,你放在这个位置的任何内容都会随之丢失。 | ||
== 导入后应检查的内容 == | == 导入后应检查的内容 == | ||
# 在 '''3D View'''(3D视图)窗口中不选中任何 | # 在'''3D View'''(3D视图)窗口中不选中任何 内容, 按'''Z'''键——摄像机会 框住 整个场景。在旁边创建一个 立方体,把它的'''Width'''、'''Height''' 和'''Length''' 都设为'''1000''':如果立面旁边 这个 一米 见方的小 立方体看起来确实是一米见方,说明比例 是 正确 的 。 | ||
# 查看 '''3D Objects''' | # 查看'''3D Objects'''列表:所有部件是否 都在 ,名称是否可读,线条 对应 的样条 线 是否已导入。 | ||
# 用摄像机 | # 用摄像机绕模型 转一圈, 查找复杂面 所在位置是否 出现破洞,以及法线翻转 位置是否 出现暗斑。 | ||
# 如果你导出了材质,请确认 | # 如果你导出了材质,请确认 对象 不是 灰 色 的:纯 灰色 说明既没有找到材质,也没有找到贴图 。 | ||
任何 不 一致 的地方, 最 可靠的做法是 在3ds Max中修正后重新导入:无法 用Light Stream自身的工具来 完善几何体 ,而在编辑器中修正 过 的模型 ,还 可以在其他项目中 重 复 使 用。 | |||
== 还有 | == 还有 什么 会 用到 == | ||
* 导入 | * 导入本身是如何进行的,以及 在场景中该 如何处理模型——见[[导入OBJ模型]]。 | ||
* 已导入 | * 已导入 对象 的名称、可见性、锁定 状态 和材质——见[[3D对象]]。 | ||
* 吸附 | * 顶点 吸附以及'''3D View'''窗口的其他按钮——见[[3D 工具栏]]。 | ||
* 如何 | * 如何 在做好 的模型 上布 置固定装置——见[[添加3D样条]]和[[2D 与 3D 的关联]]。 | ||
2026年9月3日 (四) 16:12的最新版本
这篇文章讲的是模型应该是什么样子,才能以合适的大小、正确的朝上方向、且不丢失任何内容进入 Light Stream 的场景。这里以 3ds Max 为例,但对任何三维编辑器的要求都是一样的:对程序来说重要的不是模型是用什么软件制作的,而是*.obj文件中记录了什么内容。关于导入本身的介绍见文章导入OBJ模型。
为 Light Stream 准备模型,追求的不是“更好看”,而是“更清楚”。这里不会有漂亮的渲染效果:程序只用单一贴图的简单平涂方式显示物体。但吸附功能是基于模型顶点工作的,模型中的对象也会成为列表中的一行——在整个项目过程中你都要翻阅这个列表——所以最重要的是正确的比例、干净的几何体和有意义的命名。
哪些内容会转移到 Light Stream,哪些不会
| 会转移 | 不会转移 |
|---|---|
|
|
单位与比例
坐标是按文件中原样读取的:导入时没有缩放窗口,“输入时”无法调整大小。
Light Stream 的场景以毫米为单位:文件中的一个长度单位等于一毫米。高度30米的建筑立面在文件中应占30 000个单位,而LED灯条上单个像素点则是三四十个单位。检查比例最简单的方法是用程序自身创建的立方体:在Properties(属性)窗口的Cube(立方体)部分,把Width(宽度)、Height(高度)和Length(长度)都设为1000——这是一个一米见方的小立方体,把它放在模型旁边进行比较。
在3ds Max中,最方便的做法是:将系统单位设置为毫米,并按真实尺寸建模——这样导出时就不需要重新换算,缩放系数保持为1。如果场景是用其他单位搭建的,就在导出时设置缩放系数:从米——1000,从厘米——10,从英寸——25.4。
单位错误是导入后“什么都看不见”最常见的原因。以米为单位导出的模型会比实际需要小一千倍,淹没在固定装置(fixtures)之中;而不小心放大了一千倍的模型则会跑到离坐标原点几公里远的地方,摄像机里只会显示一片空白。
朝向
Light Stream 场景中朝上的是Z轴——这与3ds Max中一致。因此在OBJ导出设置中,应取消勾选Flip YZ-axis(交换坐标轴以适应Y轴朝上的约定)选项:如果勾选了它,模型进入场景后会侧倒。如果模型确实侧倒了,切换一下这个选项,重新导出即可。
导出之前,最好重置变换,并在3ds Max中把模型放到它相对于坐标原点应处的位置:对象之间的相对位置以及文件中的坐标,在导入时会被完整保留。
对象划分与命名
文件会被解析为若干独立对象,每个对象在3D Objects(3D对象)窗口中都会成为一行,各自拥有自己的可见性复选框、材质和锁定状态。规则很简单:
- 所有几何体都必须属于命名对象。写在文件中第一个对象之前的内容不会被导入。
- 每个对象都必须有名称。未命名的对象或组会中断文件的读取:写在它之后的内容将无法进入场景,模型会只导入一半。
- 名称必须使用拉丁字母,不能使用西里尔字母。这既适用于对象名称,也适用于模型所引用的文件名——材质文件和贴图文件。其中的俄文字母在导入时会变成一串问号,同名的贴图也就无法被找到。
- 不要将对象命名为
light。这是一个保留名称:名为该名称的对象的几何体不会被当作普通装饰物,而是被当作发光部件——它不会以自身材质渲染,而是以光的方式渲染,在场景中不可见,除非该对象被选中。 - 按含义划分:如“facade”(立面)、“roof”(屋顶)、“column_left”(左立柱)。由单一整体部件构成的模型在列表中只会是一行——之后就无法单独隐藏或改变它某一部分的颜色。
- 也不要走向另一个极端:几百个细小对象会把3D Objects列表变成一条无穷无尽、难以查找的长条。
多边形
Light Stream 只能读取三角形和四边形。拥有五个或更多顶点的面会被静默跳过——场景中对应的位置会出现破洞。
因此在导出设置的Faces(面)组中,应选择Triangles(三角形)或Quads(四边形),而不是Polygons(多边形)。导出前请塌陷修改器,并将对象转换为多边形网格:NURBS、面片、带布尔运算的实体以及其他未被计算的对象,要么无法进入OBJ文件,要么进入后与视口中看到的样子不一致。
对几何体还有一个要求:不要导出顶点颜色。如果导出器在顶点坐标之外还附加了顶点颜色,这样的顶点将完全无法被读取,顶点编号会发生错位——面就会按错误的点来构建:模型会出现内外翻转或从中间断开的情况。
法线
必须将法线写入文件——在导出设置中对应Normals(法线)选项。程序依据法线计算明暗关系:没有法线,对象根本不会被打光,在场景中只会呈现为没有立体感的纯黑色剪影。
平滑组本身不会被读取,但也不需要单独设置:导出器会把平滑的结果写入法线中,对象进入场景后会保持在编辑器中同样的平滑或多面效果。
明暗关系只针对用纯色着色的部件计算。带贴图的对象会以平面方式渲染,不做明暗处理——法线对它没有影响。
Light Stream 没有背面剔除:一个面从两侧都能看见,因此内外翻转的部件不会消失。但方向背离光源的法线会消除明暗效果:这样的面会明显比相邻的面暗。如果导入后模型上出现暗斑,请检查编辑器中法线的方向。
用于固定装置的线条
写入文件的线条会作为现成的样条线进入场景——可以直接沿它们布置固定装置(Fixtures),无需手动描绘边缘。这是把灯带、灯串和轮廓灯光路径传入Light Stream最方便的方法:在3ds Max中按实际位置用样条线画好,进入程序后只需把它们与映射关联起来即可。
要让线条能够导入:
- 开启其导出功能——在OBJ导出设置中勾选Shapes/Lines(形状/线条);
- 将样条线转换为具有所需点数的折线:曲线在文件中是按线段记录的,步长越小,进入场景的点就越多;
- 把各段连接成一条线。文件中的每一条线都会成为一条独立的样条线,因此由未连接的线段拼成的路径,导入后会变成一堆零散的短样条线;
- 如果样条线没有出现,请关闭贴图坐标的导出:有些导出器也会把贴图坐标写入线条记录,而这样的记录会被Light Stream跳过。
样条线的名称取自的不是线条本身,而是记录该线条的对象——因此最好把线条整理到单独且有意义命名的对象中,例如“line_roof”(屋顶线)、“contour_window”(窗轮廓线)。这样的对象本身不会出现在3D Objects列表中:如果它不含任何面,进入场景的就只有样条线。
不需要为固定装置单独建立对象:3ds Max中的光源根本不会保存到OBJ文件中。如果希望把已经布置好的灯具也传入程序,可以把模型导出为*.fbx格式——从该格式中,除了对象和样条线之外,单个固定装置也会被导入。
材质与贴图
OBJ把材质存储在模型旁边的一个单独文件中,而贴图则是另外的图片文件,因此请开启材质导出,并始终把模型作为完整的一个文件夹整体转移。
关于材质,需要事先了解以下几点:
- 一个对象对应一种材质。多组件材质(Multi/Sub-Object)只会转移其中一个部分——文件中最后提到的那一个,并且它会被应用到整个对象上。如果部件的不同部分需要不同颜色,请按材质把该部件拆分成不同对象。
- 材质中只会取用基础颜色和基础贴图。透明度、反射、凹凸、自发光以及任何程序化贴图都会被忽略——最好把它们“烘焙”成普通图片,或者不要依赖它们。
- 贴图就是普通的JPG、PNG、BMP或GIF图片。把它们放在模型旁边或子文件夹中:程序会按名称在模型旁边及所有子文件夹中查找文件。文件名必须使用拉丁字母。
- 贴图需要展开坐标(UV)。没有展开坐标的对象,贴图会被涂抹成单一颜色。
- Light Stream中没有自发光材质。如果某个部件需要看起来像在发光——例如招牌、屏幕、发光线条——请在导入后,在Properties(属性)窗口的Material(材质)部分为它启用Glow(发光)选项。
颜色、贴图和发光效果也完全可以在程序中手动指定,因此对于辅助性的几何体,完全可以不在编辑器中设置材质:没有材质的对象导入后会显示为灰色。
模型复杂度
模型会被完整嵌入到项目文件内部,因此它的体积就是项目的体积、打开项目所需的时间,以及每一帧预览时对显卡造成的负担。而且在程序中,网格所占用的空间比在编辑器中更大:每个面都要连同自己的顶点一起存储。
导出前合理的最低限度准备工作:
- 删除对象上看不见的所有内容:内部结构、背面、隐藏部件、辅助对象、重复的副本;
- 去掉预览中看不出来的细节:螺栓、型材、纹理细节、一毫米的倒角;
- 减少圆角和管道的分段数量——平滑度的代价很高;
- 在需要的地方保留顶点:Snap to Vertices(顶点吸附)正是依据顶点工作的,这样固定装置才能准确落在拐角和边缘上。如果需要沿一面平整的墙布置一排灯具,就要在模型中沿墙边添加相应的边。
导出流程
- 在3ds Max场景中,只保留需要传入Light Stream的内容:模型本身以及用于固定装置的线条。
- 塌陷修改器,把对象转换为多边形网格,删除隐藏和多余的内容。
- 检查对象名称:必须存在,且必须使用拉丁字母。
- 检查尺寸,把模型调整到“一个单位等于一毫米”的比例。
- 将选中内容导出为
*.obj。 - 在导出设置中:Faces——选择Triangles或Quads;Normals——开启;Texture coordinates(贴图坐标)——如果有贴图则开启;Shapes/Lines——如果场景中有用于固定装置的线条则开启;Flip YZ-axis——取消勾选;材质导出——开启。
- 把模型、材质文件和贴图保存到同一个文件夹中,并从该文件夹导入。
导出得到的文件的第一行,导出器会用来写入关于自身的说明信息——如果你要手动编辑该文件,不要删除这一行:导入时第一行不会被读取,你放在这个位置的任何内容都会随之丢失。
导入后应检查的内容
- 在3D View(3D视图)窗口中不选中任何内容,按Z键——摄像机会框住整个场景。在旁边创建一个立方体,把它的Width、Height和Length都设为1000:如果立面旁边这个一米见方的小立方体看起来确实是一米见方,说明比例是正确的。
- 查看3D Objects列表:所有部件是否都在,名称是否可读,线条对应的样条线是否已导入。
- 用摄像机绕模型转一圈,查找复杂面所在位置是否出现破洞,以及法线翻转位置是否出现暗斑。
- 如果你导出了材质,请确认对象不是灰色的:纯灰色说明既没有找到材质,也没有找到贴图。
任何不一致的地方,最可靠的做法是在3ds Max中修正后重新导入:无法用Light Stream自身的工具来完善几何体,而在编辑器中修正过的模型,还可以在其他项目中重复使用。
还有什么会用到
- 导入本身是如何进行的,以及在场景中该如何处理模型——见导入OBJ模型。
- 已导入对象的名称、可见性、锁定状态和材质——见3D对象。
- 顶点吸附以及3D View窗口的其他按钮——见3D 工具栏。
- 如何在做好的模型上布置固定装置——见添加3D样条和2D 与 3D 的关联。