跳到内容
折叠侧栏
Light Stream (CN)
搜索
登录
个人工具
登录
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
上传文件
特殊页面
页面信息
查看“在3ds Max中准备模型”的源代码
页面
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
阅读
查看源代码
查看历史
PDF 导出
更多
阅读
查看源代码
查看历史
PDF 导出
←
在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,哪些不会 == {| class="wikitable" ! 会转移 !! 不会转移 |- | * 几何体——三角形和四边形 * 对象的划分及其名称 * 法线(明暗关系与平滑) * 线条——它们会变成样条线 * 展开贴图坐标(UV) * 材质的基础颜色和基础贴图 | * 修改器、构建历史、骨骼和动画 * 图层、组、“父子”关系 * 单独的平滑组 * 除基础贴图外的所有贴图:凹凸、反射、透明度、自发光 * 同一对象的第二个及后续材质 * 光源和摄像机——它们不会从<code>*.obj</code>文件中导入 * 顶点颜色 |} == 单位与比例 == 坐标是按文件中原样读取的:导入时没有缩放窗口,“输入时”无法调整大小。 '''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对象)窗口中都会成为一行,各自拥有自己的可见性复选框、材质和锁定状态。规则很简单: * '''所有几何体都必须属于命名对象。'''写在文件中第一个对象之前的内容不会被导入。 * '''每个对象都必须有名称。'''未命名的对象或组会中断文件的读取:写在它之后的内容将无法进入场景,模型会只导入一半。 * '''名称必须使用拉丁字母,不能使用西里尔字母。'''这既适用于对象名称,也适用于模型所引用的文件名——材质文件和贴图文件。其中的俄文字母在导入时会变成一串问号,同名的贴图也就无法被找到。 * '''不要将对象命名为<code>light</code>。'''这是一个保留名称:名为该名称的对象的几何体不会被当作普通装饰物,而是被当作发光部件——它不会以自身材质渲染,而是以光的方式渲染,在场景中不可见,除非该对象被选中。 * 按含义划分:如“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文件中。如果希望把已经布置好的灯具也传入程序,可以把模型导出为<code>*.fbx</code>格式——从该格式中,除了对象和样条线之外,单个固定装置也会被导入。 == 材质与贴图 == OBJ把材质存储在模型旁边的一个单独文件中,而贴图则是另外的图片文件,因此请开启材质导出,并始终把模型作为完整的一个文件夹整体转移。 关于材质,需要事先了解以下几点: * '''一个对象对应一种材质。'''多组件材质(Multi/Sub-Object)只会转移其中一个部分——文件中最后提到的那一个,并且它会被应用到整个对象上。如果部件的不同部分需要不同颜色,请按材质把该部件拆分成不同对象。 * 材质中只会取用基础颜色和基础贴图。透明度、反射、凹凸、自发光以及任何程序化贴图都会被忽略——最好把它们“烘焙”成普通图片,或者不要依赖它们。 * 贴图就是普通的JPG、PNG、BMP或GIF图片。把它们放在模型旁边或子文件夹中:程序会按名称在模型旁边及所有子文件夹中查找文件。文件名必须使用拉丁字母。 * 贴图需要展开坐标(UV)。没有展开坐标的对象,贴图会被涂抹成单一颜色。 * Light Stream中没有自发光材质。如果某个部件需要看起来像在发光——例如招牌、屏幕、发光线条——请在导入后,在'''Properties'''(属性)窗口的'''Material'''(材质)部分为它启用'''Glow'''(发光)选项。 颜色、贴图和发光效果也完全可以在程序中手动指定,因此对于辅助性的几何体,完全可以不在编辑器中设置材质:没有材质的对象导入后会显示为灰色。 == 模型复杂度 == 模型会被完整嵌入到项目文件内部,因此它的体积就是项目的体积、打开项目所需的时间,以及每一帧预览时对显卡造成的负担。而且在程序中,网格所占用的空间比在编辑器中更大:每个面都要连同自己的顶点一起存储。 导出前合理的最低限度准备工作: * 删除对象上看不见的所有内容:内部结构、背面、隐藏部件、辅助对象、重复的副本; * 去掉预览中看不出来的细节:螺栓、型材、纹理细节、一毫米的倒角; * 减少圆角和管道的分段数量——平滑度的代价很高; * 在需要的地方保留顶点:'''Snap to Vertices'''(顶点吸附)正是依据顶点工作的,这样固定装置才能准确落在拐角和边缘上。如果需要沿一面平整的墙布置一排灯具,就要在模型中沿墙边添加相应的边。 == 导出流程 == # 在3ds Max场景中,只保留需要传入Light Stream的内容:模型本身以及用于固定装置的线条。 # 塌陷修改器,把对象转换为多边形网格,删除隐藏和多余的内容。 # 检查对象名称:必须存在,且必须使用拉丁字母。 # 检查尺寸,把模型调整到“一个单位等于一毫米”的比例。 # 将选中内容导出为<code>*.obj</code>。 # 在导出设置中:'''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 的关联]]。
返回
在3ds Max中准备模型
。