导入OBJ模型
导入的作用是把真实物体——建筑外立面、舞台场景、艺术装置——放入场景,取代简单的立方体和平面,然后依据它来布置固定装置(Fixture)。Light Stream 支持 *.obj 和 *.fbx 格式的模型;这些模型可以在任意三维软件中制作,例如 3ds Max、Blender、SketchUp 等。
导入的模型只是布景:它本身不会发光,也不会发送 Art-Net 信号。只有与映射(Mapping)关联的固定装置和样条(Spline)才会发光;模型的作用是让你看清固定装置安装在什么物体上,并能够沿着模型的棱边和转角精确摆放它们。
如何导入
- 打开菜单文件(File) → 导入(Import) → 3D 模型(fbx, obj)。3D 视图(3D View)窗口工具栏上的导入对象(Import Object)按钮效果相同——它是第三个按钮,紧跟在两个“魔法”按钮之后。
- 在文件选择窗口中指定
*.obj或*.fbx文件。一次只能选择一个文件;如果要用多个模型组成一个场景,请重复执行导入。 - 点击打开(Open)。模型会立即添加到场景中,不会弹出额外的提问或设置。较大的
*.fbx文件不会瞬间加载完成——加载期间光标会变成“沙漏”。 - 将光标移到3D 视图窗口上,不选中任何内容,按下Z键——摄像机会把整个场景连同新模型一起纳入视野。
程序会记住你上一次导入时所在的文件夹,下次打开文件选择窗口时会直接定位到该文件夹。
导入操作无法用Ctrl+Z撤销。如果导入的模型不是你预期的样子,请在3D 对象(3D Objects)窗口中选中它的各个对象,按Delete键删除(这个操作是可以撤销的),然后在三维软件中修改模型并重新导入。
场景中会出现什么
模型不是作为一个整体添加的:文件会被拆分成若干个对象,每个对象在3D 对象窗口中成为单独的一行,拥有各自的名称、可见性复选框和属性。
| 文件中的内容 | 转换为 |
|---|---|
| 命名的对象或组 | 场景中的一个对象(Object)——模型的一个部件。名称取自文件:该部件在三维软件中叫什么名字,在3D 对象列表中就叫什么名字。 |
| 线条(不属于表面的边) | 场景中的一条样条。模型正是这样带着现成的线条到来,可直接用于线性灯具和灯串:无需手动描线。 |
| 附带文件中的材质 | 对象的颜色和纹理,对应属性(Properties)窗口中的材质(Material)部分。 |
此外,*.fbx 文件中还会带来单个固定装置——即在三维软件中放置好的光源。也就是说,模型有可能已经带着摆放好的固定装置到来,在 Light Stream 中只需将它们与映射关联即可。
对象的拆分方式完全取决于模型在三维软件中是如何搭建的。合理的拆分应该按含义划分,比如“外立面”“屋顶”“左侧立柱”,而用于固定装置的线条应作为单独的、名称清晰的对象。如果模型是一整块实体,在3D 对象列表中也只会是一行:之后就无法隐藏或单独高亮其中的一部分。关于模型准备的更多内容参见文章 Подготовка модели в 3ds max。
每个对象都有自己的中心点——它位于该部件的中间,部件围绕这个中心旋转和缩放。各部件之间的相对位置保持不变:模型会以完整拼合的状态出现在场景中,坐标与文件中记录的一致。
材质与纹理
OBJ 格式不会把颜色和纹理保存在模型文件本身,而是保存在旁边一个单独的材质文件中;纹理则又是独立的图片文件。因此复制和传递模型时必须连同整个文件夹一起:只有 *.obj 文件、没有旁边的相关文件时,模型会显示为灰色。
程序会从材质中读取基础颜色和基础纹理。它按文件名查找图片——先在模型旁边查找,如果没有,就在所有子文件夹中查找,因此“模型和 textures 文件夹放在一起”这种常见的目录结构是可以正常工作的。
场景中的一个对象只能拥有一种材质。如果在三维软件中给一个部件指定了多种材质,导入 Light Stream 后它只会保留一种:如果希望部件的不同部分呈现不同颜色,请按材质把它拆分成独立的对象。
从文件中导入的所有内容,之后都可以在属性窗口的材质部分手动调整:颜色(Color)、启用纹理(Enable Texture)复选框、用于选择其他图片的打开按钮,以及发光(Glow)——启用后对象不再受光照阴影影响,而是以最大亮度绘制,就像自身在发光一样(招牌和屏幕通常这样处理)。颜色会同时应用到所有选中的对象上,因此一次操作就能给整个模型重新上色。
尺寸与朝向
坐标按文件中的原始数值读取,不进行单位换算。Light Stream 场景以毫米为单位:文件中的一个长度单位等于一毫米,这与基本几何体尺寸所用的单位完全一致(参数为 1000 的立方体就是一个边长一米的立方体)。以米为单位导出的模型,在场景中会缩小一千倍,变得比实际需要的小得多,并淹没在固定装置旁边。
在 Light Stream 场景中,Z 轴指向上方。如果三维软件导出模型时使用的是“Y 轴向上”,模型在场景中就会侧躺着。
这两个问题都可以直接在程序中修正:在3D 对象窗口中选中模型的所有部件(点击第一行,然后按住Shift点击最后一行),再用3D 视图工具栏上的缩放(Scale)和旋转(Rotate)按钮为它们设置统一的缩放或旋转。多个选中的对象会作为一个整体围绕共同的中心缩放和旋转——模型不会散开。但如果这个模型还要在其他项目中使用,更可靠的做法是在三维软件中修正缩放和朝向后重新导入。
接下来该做什么
- 锁定模型
- 在属性窗口中,导入的对象有一个锁定(Lock)参数(位于基本(General)部分)。被锁定的对象无法用鼠标在场景中选中——模型不再“粘”在光标上,框选时只会选中你在其上摆放的固定装置。仍然可以通过3D 对象列表中的对应行来选中被锁定的模型。
- 在模型上布置固定装置
- 打开工具栏上的吸附到顶点(Snap to Vertices)——绘制样条的点和拖动的固定装置会吸附到模型的顶点上,线性灯具就能精确落在外立面的边缘上,而不是“凭眼力”摆放。参见 Добавление 3D сплайнов。
- 将对象与映射关联
- 从文件中导入的样条和
*.fbx中的单个固定装置,一开始都没有与任何东西关联,也不会发光——在3D 对象窗口中,它们的映射列是空的。你可以手动为每一个指定固定装置,也可以用魔法 2D 按钮(Magic 2D Button)把它们转移到映射上——它会在映射平面上创建固定装置,并立即将其与对象关联。参见 Связь 2D и 3D。
- 清理多余内容
- 3D 对象列表中的复选框可以关闭遮挡当前视角中固定装置的部件的可见性;不需要的模型部分可以用Delete键删除。
模型在项目中的存储
导入之后,几何数据会保存在项目文件本身之中:原始的 *.obj 或 *.fbx 文件不再需要,项目即使在没有它的情况下也能在其他电脑上打开。但纹理是以文件链接的形式保存的——如果要传递项目,请使用文件 → 收集项目(Collect Project)命令来打包:它会把所有用到的文件复制到同一个文件夹中,并重建路径。
请注意,包含大量细节的大体量模型会增加项目文件的大小、打开所需的时间,以及使用过程中对显卡的负载。预览动画时并不需要这些细小的细节——最好在模型进入项目之前先对其进行简化。
如果出现问题
| 现象 | 原因 |
|---|---|
| 场景中什么都没出现 | 模型可能落在了远离坐标原点的位置——在3D 视图窗口中不选中任何内容,按Z键,摄像机会把整个场景纳入视野。如果3D 对象列表中也没有增加任何对象,说明文件中没有任何命名对象:请在三维软件中重新保存模型,确保其中的对象和组都有名称。 |
| 模型上有洞,部分面丢失 | 程序只能读取三角形和四边形面;更复杂的面会被跳过。请在导出前对模型进行三角化处理——这个操作在任何三维软件中都有。 |
| 模型是灰色的,没有纹理 | 模型文件旁边没有材质文件或图片文件。请将模型连同所有相关文件一起复制并重新导入,或者在属性窗口中用打开按钮手动指定纹理。 |
| 模型侧躺着 | 它是以“Y 轴向上”的方式导出的。请在场景中将其绕X轴旋转 90°,或以“Z 轴向上”重新导出。 |
| 模型过于巨大或小到看不清 | 导出时的度量单位不一致。请为选中的对象设置百分比缩放,或重新导出模型,使文件中的一个单位等于一毫米。 |
| 固定装置用的线条断成了碎片 | 这通常是因为三维软件中的线条是由多段互不相连的线段组成的。请在导出前把它们连接成一条折线。 |
| 模型中的样条和固定装置不发光 | 它们还没有与映射上的固定装置关联——参见 Связь 2D и 3D。 |
另请参阅
- 导入对象及其名称、可见性、锁定和材质信息列于文章 3D对象 中;用于移动模型以及在模型上布置固定装置的按钮见文章 3D Панель инструментов。
- 模型可以随时导入,包括导入到已经布置好固定装置的项目中:导入不会影响映射、地址和合成(Composition)。