在第三方工具中准备 3D 资产

支持的格式

当您想将使用第三方工具创建的3D资产引入到 Kanzi Studio 时,您必须导入或合并这些资产。您可以以以下格式导入或合并3D资产:

  • glTF 2.0 (gltf, glb) 用于网格、动画、蒙皮和变形。

  • COLLADA (dae) 用于网格、动画、蒙皮和变形。

  • Filmbox (fbx) 用于网格、动画、蒙皮、变形和样条。

  • 网格的几何定义 (obj)

第三方工具中的不同导出器处理内容的方式不同。例如,如果使用 fbx 格式无法获得预期结果,请尝试使用 dae 格式。

准备 3D 资产

当为您的 Kanzi Studio 项目准备 3D 资产时,请记住:

  • 尽量减少切换材质的次数。您可以通过合并使用相同材质的网格,并仅为网格使用一种材质来实现这一点。这样做可以提高网格和材质管理以及渲染性能。请参阅 减少着色器切换。

  • 从着色器未使用的网格中移除顶点属性。顶点大小越小,访问顶点数据的效率越高,内存消耗越低。您可以在大多数3D建模软件中导出时移除不必要的顶点属性。导出设置通常包括导出的顶点属性列表,例如法线、顶点颜色等。例如,如果网格在渲染时不使用纹理材质,则纹理坐标顶点属性是不必要的,您可以将其移除。

  • 当您从 fbx 文件导入 3D 资产时,Kanzi Studio 会自动复制您分配到漫射槽中的所有纹理,并将每个纹理转换为 Single Texture。

  • 您最好将单个的对象保留在中心,并为中心点选择一个合理的位置。例如,对于椅子,将中心点设置为椅子接触地面的点。

    放置不当的枢轴是一个问题,因为当您将对象带到 Kanzi 并将其添加到层次结构或对其进行动画处理后,该对象很可能不会按预期方式表现。此外,当枢轴远离导入对象时,对象的顶点缓冲区的精度太低。在 Kanzi Studio 中,有此问题的对象看起来像是低分辨率。

  • 与第三方3D建模软件不同,Kanzi 使用 OpenGL 着色器来处理材质。这就是为什么当您导入3D资产时,Kanzi Studio 仅导入一些基本的材质参数,例如漫反射、环境光和纹理。此外,Kanzi Studio 不会导入着色模型。

    如果您没有分配材质,Kanzi Studio 会分配您在项目中设置为默认材质的材质。如果您确实分配了默认材质,并且导入的3D内容的材质值无效,Kanzi Studio 会使用亮绿色的调试材质。要解决此问题,请在导入3D资产后在 Kanzi Studio 中分配材质。请参阅 使用材料。

  • 当导入时,Kanzi Studio 仅支持 Blinn-Phong 光照模型。在您的 3D 建模工具中导出 3D 资产之前,选择 Blinn-Phong 材质(光泽度值 > 1)。

  • Kanzi Studio 仅导入其支持的灯光,包括简单的点光源、方向光和聚光灯。对于天光、物理光、区域光和 Vray 灯光,Kanzi Studio 为每个创建一个 Empty Node 3D。

  • 当建立可移动的透明零部件(例如汽车上的活动门和透明车窗)时,请将它们创建为单独的对象。要在 Kanzi 中执行此操作,您必须使用排序过滤器,或为车窗创建单独的渲染通道以正确渲染。请参阅 使用 Sorting Filter。

  • 如果希望两个可移动的零部件紧靠在一起(例如车门关闭)时接缝不可见,请在您的第三方工具中编辑法线并将接缝法线合并以使它们指向同一个方向。这使得接缝上的反射看起来更加平滑。

  • 您的3D建模工具使用的坐标系方向可能与 Kanzi Studio 使用的不同,这可能会在您将资源导入到 Kanzi Studio 时改变其方向。您可以在建模工具中或在 Kanzi Studio 中更改资源的方向。要在 Kanzi Studio 中更改3D资源的方向:

    1. 在 Library > Resource Files > 3D Assets 中选择模型。

      ../../_images/select-3d-asset-model.png
    2. 在 Properties 中,将 Import Axis Transform 属性设置为表示坐标系之间方向差异的值。

      ../../_images/import-axis-transform.png
    3. 在 Library > Resource Files > 3D Assets 中右键单击您的模型并选择 Clean Import 3D Asset File。Clean Import 3D Asset File 首先删除先前导入的 3D 资产及您在 Kanzi Studio 中对该 3D 资产所做的所有修改,然后导入所选的 3D 资产。

      ../../_images/clean-import-3d-asset-file.png
  • 在 Kanzi Studio 中使用 Kanzi 动画工具和状态管理器中的过渡来创建非常简单的动画比从第三方工具导入更容易。如果您正在创建复杂的动画,例如包含层次结构的动画,请在第三方工具中创建它们并将其导入到 Kanzi Studio。

  • 当动画控制器或控制器堆栈中包含复杂内容时,烘焙已经存在于您第三方工具中的动画,或者在导出动画之前对其进行烘焙。将枢轴居中并设置空动画控制器(使用 Freeze Transform 工具将动画归零)以从 0 开始动画可以保持数据的整洁。

  • 处理蒙皮的着色器设置骨骼计数,并且会影响单个顶点的骨骼数量。

    如果在您的 Kanzi Studio 项目中,蒙皮网格未按预期工作:

    • 使用在 Log 窗口中打印的消息作为更改第三方工具中网格的指南,并重新导入网格。

    • 如果您要蒙皮的网格过于复杂,尝试将其简化。

    • 在您的内容工具中检查骨骼在将顶点映射到骨骼之前是否没有反转矩阵。反转矩阵通常是由于工具在某些轴上翻转或镜像对象而导致的。如果网格中的骨骼具有反转矩阵,请将其移除并重新将顶点映射到骨骼。

  • 当您在将3D资产导入到 Kanzi Studio 后遇到翻转的网格、多边形、法线或纹理坐标时,最好在您的第三方工具中修复这些问题。然而,如果您无法在第三方工具中找到或修复问题,您可以在 Kanzi Studio 中修复其中的一些问题。要在 Kanzi Studio 中翻转网格、多边形、法线或纹理坐标,请在 Library > Resource Files > 3D Assets 中右键单击导入的3D模型,然后选择 Flip 和您想要翻转的内容类型。

  • 当使用复杂层次结构时,在您的第三方工具中创建一个脚本,以保存所有节点的父属性,并在使用之前取消链接它们,例如,在 3ds Max 中对所有内容使用 Reset X-Form 工具,然后重新链接并保存并重新应用旋转。

  • 少量焊接所有顶点,以确保不存在任何会引发着色错误和产生多余顶点的未焊接顶点。

  • 删除无用的顶点。您可以通过使用矩形选择选择一个顶点并检查选择中显示的是顶点的编号而不是顶点的数量来找到重复的网格。如果显示选择了两个或更多顶点,并且它们似乎位于同一位置,则很可能存在重叠的网格。在 3ds Max 中,在某些情况下,焊接选择无法解决此问题,因为如果您使用的是可编辑多边形网格类型类对象,则对象本身对拓扑有更多规则,并且合并顶点不适用于某些情况。

  • 为避免比例问题,要在正确设置单位和比例后,方可导出您正在使用的第三方工具中的 3D 内容。

    在将其导入到 Kanzi Studio 后,您可以调整3D资产的比例。请参阅 调整所导入 3D 资产的比例:。

  • 如果在将 3D 资产导入到 Kanzi Studio 后,资产看起来不正确:

    • 将资产导出为 Kanzi Studio 支持的另一种格式。例如,如果您导出为 fbx 文件并且资产看起来不正确,请改为导出为 dae 文件。请参阅 导入。

    • 将资产导入回您从中导出这些资产的第三方工具。如果您导出到一个 fbx 文件,要检查内容是否正确,您还可以使用 Autodesk fbx review 工具。

      如果资产在第三方工具中显示不正确,请更改导出器设置。例如,导出为二进制或ASCII fbx。但是,如果更改导出器设置不能解决问题,并且资产在第三方工具中显示正确,请联系 Rightware 支持。请参阅 技术支持。

在 3ds Max 中准备 3D 资产

当在 3ds Max 中为您的 Kanzi Studio 项目准备 3D 资产时,请记住:

  • 如果将显示单位比例 (Display Unit Scale) 设置为通用单位 (Generic Units) 以外的任何值,为避免与 Kanzi Studio 和 3ds Max 中的单位比例差异,请在 3ds Max 中的单位设置 (Units Setup) > 系统单位设置 (System Unit Setup) 中将系统单位比例 (System Unit Scale) 设置为与您的显示单位比例相匹配。

  • 如果设置对齐 vector,您可以沿 y 轴或 z 轴导出 3D 模型,并且 Kanzi Studio 会校正旋转。

  • 在导入过程中,Kanzi 烘焙枢轴,使其成为模型的原点。

  • 避免使用偏移和非均匀缩放,至少当您有层次结构时。因为 3ds Max 允许您将对象链接到层次结构中,即使对象具有非均匀缩放。这使您可以在添加对象的阶段(无论是否缩放)对层次结构产生相同的效果。该信息在此过程中丢失,您无法通过重置来重建它。如果您需要使用非均匀缩放,请仅在网格级别进行。

  • 当使用 UV 时:

    • UV 分裂和平滑组会创建双顶点。拥有硬边并不总是最佳选择,但如果您有 UV 分裂,您可以在同一位置使用平滑组硬边,而不会有任何额外的惩罚。

    • 在平坦的 2D 空间中展开您的 3D 网格,以投射 3D 网格的纹理,从而实现从网格的起点向终点流动。

    • 在 UV 编辑窗口中设置平坦的多边形面,并匹配它们的大小以获得最佳效果。

    • 在 UV 布局中,在水平和垂直方向对齐相匹配的多边形的顶点,以匹配顶点位置。

    • 要获得最大的 UV 布局空间,请缩放多边形以填满 UV 布局。

      请注意,如果在 UV 布局中不需要为对象留出整个空间,您可以在可用空间中放置其他对象。这样,您可以对多个对象使用相同的纹理。

    请参阅 使用带有 UV 的 3D 模型。

  • 拓扑和边缘方向。如果 3ds Max 中使用的默认方向不正确,为了实现低多边形模型的更好阴影效果,请使用 Edit polygons > Turn。

  • 避免在对象上使用反向缩放或Mirror工具,以避免反向矩阵。Mirror工具创建的内容适用于离线渲染,但对于实时渲染则会生成无效矩阵。尝试修复反向矩阵:

    1. 从层级中移除对象,并对对象使用重置 X 形式 (Reset X-Form) 工具。

    2. 重新应用最近使用的方向。

    3. 重新将对象添加到层级中。

  • 在导出之前使用 Reset X-Forms 工具,以确保没有不需要的缩放或翻转面。请注意,当您在层次结构中有对象时(3ds Max 中的示意图视图),在父对象中使用 Reset X-Forms 工具也会旋转子对象,而这在 3ds Max 中是无法撤销的。为避免这种情况,可以在创建层次结构之前使用 Reset X-Forms 工具,或者在重置它们时暂时打破层次结构。您可以使用 MAXScript 解决此问题,但在 max 默认情况下就是这样。

  • 要将动画从 3ds Max 转为使用 fbx 文件格式。如果必须使用 Collada,请在高级选项中设置:

    • Axis Conversion Up Axis 为 Y-up

    • Collada Single Matrix 为 enabled

    ../../_images/3ds-max-animation-export.png

在 Maya 中准备 3D 资产

当在 Maya 中为您的 Kanzi Studio 项目准备 3D 资产时,请记住:

  • 即使视口纵横比、相机纵横比和分辨率之间的差异很小,也会导致布局出现奇怪的效果。

  • 相机 FOV 目前无法从 .fbx 导入到 Kanzi。在导入期间,Kanzi 将 FOV 值分配为 40。要更正此问题,请将 FOV 值从 Maya 相机复制到 Kanzi Camera 节点。

另请参阅

最佳实践

导入 3D 资产

合并 3D 资产

导入

使用带有 UV 的 3D 模型