Mesh Renderer 组件用于渲染网格。该组件与同一个游戏对象上的 Mesh Filter 组件配合使用;Mesh Renderer 组件渲染 Mesh Filter 组件引用的网格。
要渲染可变形网格,请改用 Skinned Mesh Renderer。
在 C# 代码中,MeshRenderer 类表示 Mesh Renderer 组件。MeshRenderer 类的大部分功能继承自 Renderer 类。因此,该组件与其他从 Renderer 继承的组件(例如 Line Renderer 和 Trail Renderer)有很多共同之处。
材质 (Materials) 部分列出了此组件使用的所有材质。
| 属性 | 描述 |
|---|---|
| Size | 材质列表中的元素数量。 如果减少元素数量,Unity 会删除列表末尾的元素。如果增加元素数量,Unity 会在列表末尾添加新元素。同时 Unity 会使用列表末尾元素所使用的材质来填充这些新元素。 |
| Element | 列表中的材质元素。您可以为每个元素分配一个材质资源。 默认情况下,Unity 会根据材质名称按字母顺序对列表进行排序。此列表是可重新排序的,当您更改元素的顺序时,Unity 会自动更新元素的编号。 |
注意:如果材质多于子网格,则 Unity 会使用剩余的每个材质逐一渲染最后一个子网格,使一个材质加在下一个材质之上。如果材质不是完全不透明的,则可以将不同的材质分层并创建有趣的视觉效果。但是,完全不透明的材质会覆盖之前的层,因此 Unity 应用于最后一个子网格的任何其他不透明材质都会对性能产生负面影响,但不会带来任何好处。
光照 (Lighting) 部分包含与光照相关的属性。
| 属性 | 描述 | |
|---|---|---|
| Cast Shadows | 指定当合适的光源 照射到此渲染器时,它是否以及如何投射阴影。 此属性对应于 Renderer.shadowCastingMode API。 |
|
| On | 当有投射阴影的光源照射到此渲染器时,它会投射阴影。 | |
| Off | 此渲染器不投射阴影。 | |
| Two-sided | 此渲染器投射双面阴影。这意味着单面物体(如平面或四边形)即使光源位于网格的背面,也能投射阴影。 对于支持双面阴影的烘焙全局光照或 Enlighten 实时全局光照,材质必须支持双面全局光照。 |
|
| Shadows Only | 此渲染器投射阴影,但渲染器本身不可见。 | |
| Receive Shadows | 指定 Unity 是否显示投射到此渲染器上的阴影。 此属性仅在场景启用了烘焙全局光照或实时全局光照 时生效。 此属性对应于 Renderer.receiveShadows API。 |
|
| Contribute Global Illumination | 将此渲染器纳入全局光照 (Global Illumination, GI) 的计算中,该计算在烘焙时进行。 此属性仅在场景启用了烘焙全局光照 或实时全局光照 时生效。 启用此属性后,将在游戏对象的静态编辑器标志 中设置 Contribute GI 标志。它对应于 StaticEditorFlags.ContributeGI API。 |
|
| Receive Global Illumination | 指定 Unity 是否从烘焙光照贴图或运行时光照探针向此渲染器提供全局光照数据。 此属性仅在您启用 Contribute Global Illumination 时后可编辑。此属性仅在场景启用了烘焙全局光照 或实时全局光照 时生效。 此属性对应于 MeshRenderer.receiveGI API。 |
|
| Lightmaps | Unity 从光照贴图向此渲染器提供全局光照数据。 | |
| Light Probes | Unity 从场景中的光照探针 向此渲染器提供全局光照数据。 | |
| Prioritize Illumination | 启用此属性可确保此渲染器始终被包含在 Enlighten 实时全局光照计算中。这使得渲染器能够受到远处发光体的影响,即使这些发光体通常因性能原因被排除在全局光照计算之外。 此属性仅在以下条件下可见:游戏对象的静态编辑器标志 中启用了 Contribute GI,项目使用内置渲染管线 (Built-in Render Pipeline),并且场景启用了实时全局光照。 |
|
光照映射 (Lightmapping) 部分包含与烘焙光照贴图以及实时光照贴图相关的属性。
仅当接收全局光照 (Receive Global Illumination) 设置为光照映射 (Lightmaps) 时,此部分才可见。
| 属性: | 功能: |
|---|---|
| Scale in Lightmap | 指定 Renderer 的 UV 在光照贴图中的相对大小。 值为 0 将使 Renderer 不进行光照贴图,但仍然有助于为 Scene 中的其他 Renderer 提供光照。大于 1.0 的值会增加用于此 Renderer 的像素数(光照贴图分辨率),而小于 1.0 的值会减小该像素数。 您可以使用此属性来优化光照贴图,从而更精确地为重要和高度细节化的区域提供光照。例如,一幢具有平坦黑暗墙壁的隔离建筑物将使用低光照贴图比例(小于 1.0),而一组靠近在一起显示的彩色摩托车则需要高比例值。 此属性对应于 MeshRenderer.scaleInLightmap API。 |
| Stitch Seams | 为此 Renderer 启用光照贴图接缝缝合。 此属性对应于 MeshRenderer.stitchLightmapSeams API。 |
| Lightmap Parameters | 为此 Renderer 选择或创建光照贴图参数 (Lightmap Parameters) 资源。 |
| Optimize Realtime UVs | 确定 Unity 是否为此 Renderer 合并实时光照贴图 UV。 仅当 Project 使用 Built-in Render Pipeline 并在场景中启用了 Enlighten 实时全局光照 (Realtime Global Illumination) 时,此属性才可见。 |
| Max Distance | 指定在实时光照贴图中用于简化 UV 图表的最大世界空间距离。如果图表在此距离之内,则 Unity 会简化图表。 仅当 Project 使用 Built-in Render Pipeline 并在场景中启用了 Enlighten 实时全局光照 (Realtime Global Illumination) 时,此属性才可见。 |
| Max Angle | 指定在实时光照贴图中共享 UV 边缘的面之间的最大角度(以度为单位)。如果面之间的角度小于此值,则 Unity 将简化 UV 图表。 仅当 Project 使用 Built-in Render Pipeline 并在场景中启用了 Enlighten 实时全局光照 (Realtime Global Illumination) 时,此属性才可见。 |
| Ignore Normals | 启用此选项可防止 Unity 在实时光照贴图中拆分 UV 图表。 仅当 Project 使用 Built-in Render Pipeline 并在场景中启用了 Enlighten 实时全局光照 (Realtime Global Illumination) 时,此属性才可见。 |
| Min Chart Size | 指定在实时光照贴图中用于 UV 图表的最小纹素大小。如果需要缝合,则值 4 将创建一个 4x4 纹素的图表来存储光照和方向性。如果不需要缝合,则值 2 将降低纹素密度并提供更好的光照构建时间和游戏性能。 仅当 Project 使用 Built-in Render Pipeline 并在场景中启用了 Enlighten 实时全局光照 (Realtime Global Illumination) 时,此属性才可见。 |
烘焙光照数据(菜单:窗口 (Window) > 渲染 (Rendering) > 光照 (Lighting) > 生成光照 (Generate Lighting))后,此部分还将显示此 Renderer 在当前场景中使用的烘焙光照贴图和实时光照贴图。
探针 (Probes) 部分包含与光照探针 (Light Probes) 和反射探针 (Reflection Probes) 有关的属性。
| 属性 | 描述 | |
|---|---|---|
| Light Probes | 设置此渲染器如何从光照探针 系统接收光照。 此属性对应于 Renderer.lightProbeUsage API。 |
|
| Off | 渲染器不使用任何插值光照探针。 | |
| Blend Probes | 渲染器使用一个插值光照探针。这是默认值。 | |
| Use Proxy Volume | 渲染器使用插值光照探针的 3D 网格。 | |
| Custom Provided | 渲染器从材质属性块 提取光照探针着色器 uniform 值。 | |
| Proxy Volume Override | 设置对另一个带有光照探针代理体积组件的游戏对象的引用。 仅当光照探针设置为使用代理体积 (Use Proxy Volume) 时,此属性才可见。 |
|
| Reflection Probes | 设置渲染器如何从反射探针系统接收反射。 此属性对应于 Renderer.probeAnchor API。 |
|
| Off | 禁用反射探针。Unity 将天空盒用于反射。 | |
| Blend Probes | 启用反射探针。混合仅在反射探针之间发生。在室内环境中,如果角色可能在具有不同光照设置的区域之间过渡,此设置会很有用。 | |
| Blend Probes and Skybox | 启用反射探针。混合发生在反射探针之间或反射探针与默认反射之间。这对于室外环境很有用。 | |
| Simple | 启用反射探针,但存在两个重叠的探针体积时,反射探针之间不会发生混合。 | |
| Anchor Override | 设置变换组件,Unity 在使用光照探针 或反射探针 系统时,将使用该组件来确定插值位置。默认情况下,这个位置是渲染器几何体的包围盒中心。 此属性对应于 Renderer.probeAnchor API。 |
|
“光线追踪 (Ray Tracing)”部分包含与光线追踪特效相关的属性。
仅当显卡支持光线追踪并且您在“播放器设置 (Player Settings)”窗口中将项目升级为使用 DirectX 12 时,才显示此部分。
除非采用以下方法之一配置项目,否则这些属性无效:
| 属性: | 功能: | |
|---|---|---|
| 光线追踪模式 (Ray Tracing Mode) | 指定 Unity 在光线追踪期间是否以及多久更新一次此渲染器。更频繁的更新会增加渲染时间。 | |
| Off | Unity 将此渲染器排除在光线追踪计算之外。例如,此选项会导致渲染器不会出现在光线追踪反射中。 | |
| Static | 如果游戏对象的变换或网格几何体发生更改,Unity 不会更新光线追踪加速结构。这意味着光线追踪效果在运行时不会改变。 | |
| 动态变换 (Dynamic Transform) | 如果游戏对象的变换发生更改,Unity 会更新光线追踪加速结构,但如果网格几何体发生更改,则不会更新。这是网格渲染器的默认值。如果您的项目使用 HDRP,此设置与动态几何体相同,因为 HDRP 每帧都会重新构建加速结构。 | |
| 动态几何体 (Dynamic Geometry) | Unity 使用游戏对象的变换和网格几何体每帧更新光线追踪加速结构。这是蒙皮网格渲染器的默认值。 | |
| 程序化几何体 (Procedural Geometry) | Unity 使用交叉着色器而不是网格过滤器组件中的网格,以程序化方式渲染此渲染器。 | |
| 加速结构生成标志 (Acceleration Structure Build Flags) | 指定此渲染器是否覆盖在创建光线追踪加速结构时指定的默认构建标志。 | |
其他设置 (Additional Settings) 部分包含其他属性。
| 属性 | 描述 | |
|---|---|---|
| Motion Vectors | 设置是否使用运动矢量来跟踪此渲染器从一帧到下一帧的每个像素的屏幕空间运动。您可以利用这些信息来实现后期处理效果,例如运动模糊。 注意:并非所有平台都支持运动矢量功能。请参阅 SystemInfo.supportsMotionVectors 以了解更多信息。 此属性对应于 Renderer.motionVectorGenerationMode API。 |
|
| Camera Motion Only | 仅使用摄像机移动来跟踪运动。 | |
| Per Object Motion | 使用特定通道来跟踪此渲染器的运动。 | |
| Force No Motion | 不跟踪运动。 | |
| Dynamic Occlusion | 启用 Dynamic Occlusion 后,当一个渲染器被静态遮挡物阻挡在摄像机的视野之外时,Unity 的遮挡剔除 系统将剔除该渲染器。如果未启用 Dynamic Occlusion,即使渲染器被静态遮挡物阻挡,系统也不会将其剔除。 默认情况下启用 Dynamic Occlusion。如果需要实现如绘制墙后角色轮廓的效果,可以禁用此选项。 |
|
MeshRenderer