在 Unity 中处理 autocad 对象

Dealing with autocad objects in Unity

本人是Unity开发新手,在Autocad开发方面经验丰富。是否可以使用在 autocad 中创建的 3d 实体和 3d 网格地形并将其显示在 Unity 界面中并获取其属性(例如 3D 实体颜色、尺寸、手柄等。)

Unity supports .FBX、.dae (Collada)、.3DS、.dxf 和 .obj 文件。如果您的 Autocad 可以导出到其中任何一个,那么答案是 。有可能请阅读下文。

在 Autocad、SolidWorks 或其他类似软件中生成的对象应该以任何方式直接导入到 Unity。它对 Unity 来说太重了。如果您想使用这些软件中的任何一个模型,请将它们导出到 Maya 或 Blender 等软件,然后清理模型。在导入 Unity 之前减少多边形数量。

请注意,清理模型需要时间。你应该花时间在 Maya 或 Blender 中制作新模型。如果您的目标是制作游戏,那么您需要学习 MayaBlender。 Autocad 不用于此。由于您已经在使用 Autocad,我建议您使用 Maya,因为现在的 UI 看起来很相似。

编辑:

我在下面看到一个答案,表明在 Unity 中使用 Autocad 模型或在 Autocad 中为对象建模完全没问题。这不仅仅是关于创建模型。您必须对模型做一些工作才能使它看起来不错,甚至可以与 Unity 的渲染引擎一起正常工作。不使用 Autocad 为游戏对象建模的原因有很多:

  • 1.UV mapping/unwrapping.

在将模型导入游戏引擎之前,您必须展开模型的 UV。没有这个,就很难做纹理,你会 运行 出问题。更不用说最大的问题之一 "texture seams".

  • 2。给模型贴图。

同样,这是在 Maya 和 Blender 而不是 Autocad 等程序中完成的。

  • 3.烘焙textures/Map

在处理高度详细的模型时,大多数时候您需要烘焙贴图。当从 V-ray 或 Maya 中任何具有复杂材质的渲染器生成材质时,您需要将最终结果烘焙成多种类型的贴图,例如颜色、法线、alpha...。这也适用于光烘焙。

  • 4.地图传输

最初,您对高多边形建模,然后将贴图转换为低多边形。你不能用 Autocad 做到这一点。这非常重要,因为它减少了游戏中多边形的数量。


上面提到的所有内容对于游戏开发都非常重要,但 Autocad 并不是用来处理这些的。

使用正确的工具完成工作。使用 Autocad 进行工程,使用 Maya 或 Blender 进行游戏电影艺术。就这么简单。

要从 AutoCad 导出,请使用 OBJ 格式或 FBX。 Unity "what files can I import" 页面具有误导性,因为每个新年导出的文件格式都不同,而且导出程序的新版本通常与 Unity 不兼容。不幸的是,Unity 开发人员花了几年时间才开始更新导入过程。

关于优化模型,Maya 中的 "cleaning them up" 是个笑话,因为 Maya 还会根据您使用的格式导出 "heavy" 模型。清理模型有优先级,但AutoCad产品是行业中最好的,如果你在CAD程序中清理它们然后导出为OBJ或FBX,应该没问题。 Maya 也是一种 AutoCad 产品,我只是说您不必在不同的程序中处理一个文件。如果您使用 OBJ 或 FBX 导出格式,并且您的文件主要是 CG 模型,那么通常直接从 CAD 程序导入 Unity 就可以正常工作。 CAD 程序具有清理模型的实用程序,Sketchup、DAZ3D 等程序也是如此。您不需要对面进行三角剖分,通常 OBJ 效果很好。

如果可能,从任何源程序导入到 Unity 的最佳选择是使用 OBJ。如果您没有动画或 "bones",大多数模型将维持此状态。如果您导出到 OBJ 并选择不对所有面进行三角剖分的选项,并且包含纹理,您应该没问题。如果您的模型包含动画,那么您应该使用 FBX 格式,这会产生相当大的文件大小成本。

此外,将 .obj 文件、.mtl 文件和纹理文件夹拖放到所需的 Unity Asset 文件夹中效果更好(比尝试 "import asset" 本机 Unity 功能更好).

请注意,根据导出程序的版本,Unity 在其 "what files can I import" 页面上声称要导入的许多格式都是无效的。例如,DXF 文件必须是早期版本,而不是最新版本。如果您使用早期版本,如 Sketchup 和 .skp 等程序只能导入到 Unity 中,最早可追溯到 2013 年,目前为 Unity 5.6.0f3。

通常,如果你意识到这些问题,并且愿意尝试一些CG模型的方法exporting/importing,你会发现成功的。显然,游戏开发者一直在使用 Unity,因为他们对引擎的重视程度足以容忍这些缺陷。