Unity3D的Model Import Settings window - Model tab
Table of Contents
请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com
1 Model tab
当选中模型文件时,Inspector窗口就会显现出Import Settings窗口,且定位到Model页。可以通过在此页中调整参数控制模型导入的细节。
Model页上的各种属性可以分为三个区,分别是:
分区 | 细节 |
---|---|
(A) Scene | 和关卡场景相关的,比如光源和摄像机的导入,还有scale factor的设置 |
(B) Meshes. | 和网格导入相关的属性 |
(C) Geometry | 和网格拓扑相关的户型,比如的顶点的纹理UV,法线等等 |
2 Scene分区的属性描述表格
属性 | 功能 |
---|---|
Scale Factor | 在导入的原始模型文件的比例值,不适合项目中的预期比例时,设置此值,可作为一个全局的对原始模型的缩放比例值。 Unity的物理系统,期望游戏世界中的1米,就对应于原始模型文件的1个单位。 |
Convert Units | 启用此选项,可将导入的原始模型文件的比例值。转换为Unity的比例。导入BlendShapes时,启用此属性可允许Unity导入网格物体的混合形状。 |
Import BlendShapes | Enable this property to allow Unity to import blend shapes with your Mesh. See Importing blend shapes below for details.Note: Importing blend shape normals requires smoothing groups in the FBX file |
Import Visibility | 导入FBX设置,这些设置将会确定是否启用MeshRenderer组件,当启用时改mesh可见 |
Import Cameras | 从.FBX文件中导入在这些文件中定义的camera |
Import Lights | 从.FBX文件中导入在这些文件中定义的光源 |
Preserve Hierarchy | 即使此模型只有一个根节点,也要始终创建一个显式的prefab的根节点。通常,FBX Importer会从模型中剥离所有空的根节点作为优化策略。但是,如果您有多个FBX文件,且它们具有相同层次结构的某些部分,则可以使用此选项保留原始层次结构。 |
Sort Hierarchy By Name | 在导入.FBX文件中节点为unity的game object时,是否按照节点名字按字母表排序,如果不启用此项的话,原来是怎样的一个节点顺序就保持原顺序导入 |
Preserver Hierarchy属性选项的举例说明:
例如,file1.fbx包含一个rig和mesh,而file2.fbx包含相同的rig,但仅包含的动画而没有mesh。如果这时候导入file2.fbx的时候不启用此项的话,Unity会裁切(stript)掉它的这个无mesh的根节点,从而导致层次结构不匹配,动画会被毁坏。
2.1 Import BlendShapes
Unity支持blend shape(morphing),并且可以从3D建模应用程序导出的FBX和DAE文件中导入blend shape。您也可以从FBX文件导入动画。 Unity支持顶点级动画(vertex-level animation),这些顶点级动画可以通过顶点,法线和切线进行blend shape。
蒙皮(skin)和blend shape可以同时影响mesh。 Unity导入包含blend shape的mesh时,它将使用SkinnedMeshRender组件(而不是MeshRenderer组件),无论其是否具有蒙皮。
Unity导入blend shape动画作为常规动画的一部分:通过SkinnedMeshRenderers组件可以设置blend shape动画的权重。
选择以下两种方法之一来导入具有法线的混合形状:
- 将Blend Shape Normals选项设置为Import选项。以便Unity使用FBX文件中的法线。有关更多信息,请参见下面的Blend Shape Normals属性的文档。
- 将Blend Shape Normals选项设置为Calculate选项。,以便Unity使用相同的逻辑来计算网格物体上的法线和 blend shape
2.2 Importing visibility
通过Import Visibility属性,Unity可以从FBX文件中读取visibility properties。通过控制Renderer.enabled属性,这个可见性(visibility)值和animation curves能启用和禁用MeshRenderer组件。
可见性在继承体系下,默认情况下为true,但可以覆盖。例如,如果父网格物体的可见性设置为0,则其子物体上的所有渲染器也会被禁用。 在这种情况下,将为每个子物体的Renderer.enabled属性创建一个动画曲线。
一些3D建模应用程序不支持可视性属性或在可视性属性方面有限制。有关更多信息,请参见:
2.2 Importing cameras
从.FBX文件导入相机时,Unity支持以下属性:
属性 | 功能 |
---|---|
Projection Mode | 正交(Orthographic)或者透视(perspective),不支持动画效果 |
Field of View | 支持动画效果 |
All Physical Camera properties | 如果从FBX文件中导入一个带有Physical Properties的Camera。Unity会创建一个物理化摄像机(physical camera)。这种摄像机启用了Focal Length, Sensor Type,Sensor Size,Lens Shift,和Gate Fit。另外不是所有的3D建模软件都支持Gate Fit属性,如果不支持,Unity3D会将其设置为None |
Near and Far Clipping Plane distance | Unity不导入此属性的任何动画数据 |
Target Cameras | 如果导入一个Target Camera,Unity将会创建一个带有LookAt约束的摄像机。 |
2.3 Importing lights
2.3.1 支持的光源类型
Unity支持以下光源类型:
- Omni
- Spot
- Directional
- Area
2.3.2 支持的光源属性
Unity支持以下光源属性:
属性 | 功能 |
---|---|
Range | 使用如果UseFarAttenuation属性被启动的话,FarAttenuationEndValue属性启用。此属性不支持动画效果 |
Color | 支持动画效果 |
Intensity | 支持动画效果 |
Spot Angle | 支持动画效果,且只对spot光源有效 |
2.3.2 Limitations
一些3D建模应用程序将缩放比例应用于灯光属性。例如,您可以按其层次结构缩放聚光灯并影响光锥。Unity不会这样做,这可能导致灯光在Unity中看起来有所不同。
FBX格式未定义区域灯的宽度和高度。某些3D建模应用程序不具有此属性,而仅允许您使用缩放比例来定义矩形区域。因此,导入时区域光的大小始终为1。
除非烘焙目标动画,否则不支持目标光源动画。
3 Meshes property section
属性 | 功能 |
---|---|
Mesh Compression | 设置压缩率级别以减小mesh的文件大小。 通过使用mesh bound和降低存储顶点的浮点数的位深度来压缩网格数据,增加压缩率会降低网格的精度。调整原则是:把压缩率尽可能调得高一些,但又看起来和不压缩没有太大的精度损失。压缩率级别分为Low、Medium、High三档,分别对应于低中高三种程度的压缩率 |
Read/Write Enabled | 当启用了此标志之后,在使用这些数据渲染时,Unity将会把这些mesh数据上传到GPU能访问的存储器中,但在CPU访问的存储器中依然保留一份这个数据。如果关闭此选项时,Unity将这些数据上传到GPU能访问的存储器之后,会将其从CPU能访问的存储器中删除掉。默认地该项时关闭的,这样子可以省下不少运行期内存。Mesh类的Mesh.isReadable属性有这方面更详细的信息 |
Optimize Mesh | 此选项将会决定。在导入mesh时,对mesh的三角形以何种方式进行排列,使得渲染时GPU的性能更好更优化 |
Generate Colliders | 启用此项时,将会自动地对导入的mesh,对应生成mesh collider |
3.1 Optimize Mesh的子选项列表
选项名 | 功能 |
---|---|
Nothing | 不启用优化 |
Everything | 让Unity全部重排mesh中的多边形中的顶点,重排顶点的对应的索引 |
Polygon Order | 仅重排mesh中的多边形信息,不处理顶点 |
Vertex Order | 仅重排mesh中的顶点信息,不重排多边形 |
4 Geometry properties section
属性 | 功能 |
---|---|
Keep Quads | 启用此选项,可阻止Unity将具有四个顶点的多边形转换为三角形。 如果正在使用细分表面着色器(Tessellation Shaders)的话,则可能要启用此选项,因为细分四边形可能比细分三角形更有效。Unity可以导入任何类型的多边形(三角形到任意多边形)。无论此设置如何,具有多于4条边的多边形。始终会转换为三角形。但是,如果网格具有四边形和三角形(或由大于4边的多边形转换而来的三角形),则Unity会创建两个子网格来分隔四边形和三角形。 每个子网格仅包含三角形或仅包含四边形。如果要从3ds Max将四边形导入Unity,则必须将其导出为"Editable Poly."。 |
Weld Vertices | 合并在空间上具有相同位置的顶点,前提是它们在整体上具有相同的属性(包括UV,法线,切线和顶点颜色),这将可以顶点的总数来优化网格。默认情况下启用此选项。当在设计上,故意在相同位置设置相同的的顶点以达到某种效果时。导入FBX时可能需要关闭此优化。 |
Index Format | 指定存储每一个顶点索引值的整数位数。出于内存带宽等原因,最好一直都是用16位整数 |
Legacy Blend Shape Normals | 当启用此项时,导入网格时会根据Smoothing Angle的值计算法线。 |
Normals | 决定如何计算出mesh中个顶点的法线 |
5.1
5.2 Normals属性的三个选项
选项名 | 功能 |
---|---|
Import | 从.FBX文件中导入法线。如果文件中不包含法线信息,导入时将会计算出这些信息来。 |
Calculate | Unity导入.FBX时,根据给定的Normals Mode,Smoothness Source,Smoothing Angle计算法线。 |
None | 不使用法线 |
5.3 Blend Shape Normals属性的三个选项
选项名 | 功能 |
---|---|
Import | 从.FBX文件中导入法线。 如果blend shape不包含法线,则FBX SDK将使用其自己的方法来计算法线,这些法线的值,和使用下面的Calculate选项所产生的法线值不同。 |
Calculate | Unity导入.FBX时,根据给定的Normals Mode,Smoothness Source,Smoothing Angle计算法线。 |
None | blend shape的法线不会参与对base shape的计算。 |
5.4
5.5 Prefer Smoothing Groups
参考网页
https://docs.unity3d.com/2020.1/Documentation/Manual/class-FBXImporter.html
https://docs.unity3d.com/2020.1/Documentation/Manual/FBXImporter-Model.html