A MeshThe main graphics primitive of Unity. Meshes make up a large part of your 3D worlds. Unity supports triangulated or Quadrangulated polygon meshes. Nurbs, Nurms, Subdiv surfaces must be converted to polygons. More info
See in Glossary Renderer component renders a mesh. It works with a Mesh FilterA mesh component that takes a mesh from your assets and passes it to the Mesh Renderer for rendering on the screen. More info
See in Glossary component on the same GameObjectThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
See in Glossary; the Mesh Renderer renders the mesh that the Mesh Filter references.
To render a deformable mesh, use a Skinned Mesh Renderer instead.
In C# code, the MeshRenderer class represents a Mesh Renderer component. The MeshRenderer
class inherits much of its functionality from the Renderer class. As such, this component has a lot in common with other components that inherit from Renderer
, such as Line RendererA component that takes an array of two or more points in 3D space and draws a straight line between each one. You can use a single Line Renderer component to draw anything from a simple straight line to a complex spiral. More info
See in Glossary, and Trail RendererA visual effect that lets you to make trails behind GameObjects in the Scene as they move. More info
See in Glossary.
The Materials section lists all the materials that this component uses.
Property | Description |
---|---|
Size | The number of elements in the material list. If you decrease the number of elements, Unity deletes the elements at the end of the list. If you increase the number of elements, Unity adds new elements to the end of the list. Unity populates new elements with the same material that the element at the end of the list uses. |
Element | The materials in the list. You can assign a material asset to each element. By default, Unity orders the list alphabetically based on the name of the materials. This list is reorderable, and Unity updates the number of the elements automatically as you change their order. |
Note: If there are more materials than there are sub-meshes, Unity renders the last sub-mesh with each of the remaining materials, one on top of the next. If the materials are not fully opaque, you can layer different materials and create interesting visual effects. However, fully opaque materials overwrite previous layers, so any additional opaque materials that Unity applies to the last sub-mesh negatively affect performance and produce no benefit.
The Lighting section contains properties that relate to lighting.
Property | Description | |
---|---|---|
Cast Shadows | Specify if and how this Renderer casts shadows when a suitable Light shines on it. This property corresponds to the Renderer.shadowCastingMode API. |
|
On | This Renderer casts a shadow when a shadow-casting Light shines on it. | |
Off | This Renderer does not cast shadows. | |
Two-sided | This Renderer casts two-sided shadows. This means that single-sided objects like a plane or a quad can cast shadows, even if the light source is behind the mesh. For Baked Global Illumination or Enlighten Realtime Global Illumination to support two-sided shadows, the material must support Double Sided Global Illumination. |
|
Shadows Only | This Renderer casts shadows, but the Renderer itself isn’t visible. | |
Receive Shadows | Specify if Unity displays shadows cast onto this Renderer. This property only has an effect if you enable Baked Global Illumination or Enlighten Realtime Global Illumination for this scene. This property corresponds to the Renderer.receiveShadows API. |
|
Contribute Global Illumination | Include this Renderer in global illumination calculations, which take place at bake time. This property only has an effect if you enable Baked Global Illumination or Enlighten Realtime Global Illumination for this scene. Enabling this property enables the Contribute GI flag in the GameObject’s Static Editor Flags. It corresponds to the StaticEditorFlags.ContributeGI API. |
|
Receive Global Illumination | Whether Unity provides global illumination data to this Renderer from baked lightmaps, or from runtime Light Probes. This property is only editable if you enable Contribute Global Illumination. It only has an effect if you enable Baked Global Illumination or Enlighten Realtime Global Illumination for this scene. This property corresponds to the MeshRenderer.receiveGI API. |
|
Lightmaps | Unity provides global illumination data to this Renderer from lightmaps. | |
Light Probes | Unity provides global illumination data to this Renderer from Light ProbesLight probes store information about how light passes through space in your scene. A collection of light probes arranged within a given space can improve lighting on moving objects and static LOD scenery within that space. More info See in Glossary in the scene. |
|
Prioritize Illumination | Enable this property to always include this Renderer in Enlighten Realtime Global Illumination calculations. This ensures that the Renderer is affected by distant emissives, even those which are normally excluded from Global Illumination calculations for performance reasons. This property is visible only if Contribute GI is enabled in the GameObject’s Static Editor Flags, your project uses the Built-in Render Pipeline, and Enlighten Realtime Global Illumination is enabled in your scene. |
The Lightmapping section contains properties relating to baked and real-time lightmapsA pre-rendered texture that contains the effects of light sources on static objects in the scene. Lightmaps are overlaid on top of scene geometry to create the effect of lighting. More info
See in Glossary.
This section is visible only if only if Receive Global IlluminationA group of techniques that model both direct and indirect lighting to provide realistic lighting results.
See in Glossary is set to Lightmaps.
Property: | Function: |
---|---|
Scale in Lightmap | Specify the relative size of the Renderer’s UVs within a lightmap. A value of 0 results in the Renderer not being lightmapped, but it still contributes to lighting other Renderers in the Scene. A value greater than 1.0 increases the number of pixels (the lightmap resolution) used for this Renderer, while a value less than 1.0 decreases it. You can use this property to optimize lightmaps so that important and detailed areas are more accurately lit. For example, an isolated building with flat, dark walls uses a low lightmap scale (less than 1.0) while a collection of colourful motorcycles displayed close together requires a high scale value. This property corresponds to the MeshRenderer.scaleInLightmap API. |
Stitch Seams | Enable Lightmap seam stitching for this Renderer. This property corresponds to the MeshRenderer.stitchLightmapSeams API. |
Lightmap Parameters | Choose or create a Lightmap Parameters asset for this Renderer. |
Optimize Realtime UVs | Determine whether Unity merges the real-time lightmap UVs for this Renderer. This property is visible only if your Project uses the Built-in Render Pipeline, and Enlighten Realtime Global Illumination is enabled in your scene. |
Max Distance | Specify the maximum worldspace distance for UV chart simplification in real-time lightmaps. If charts are within this distance, Unity simplifies them. This property is visible only if your Project uses the Built-in Render Pipeline, and Enlighten Realtime Global Illumination is enabled in your scene. |
Max Angle | Specify the maximum angle in degrees between faces sharing a UV edge in real-time lightmaps. If the angle between the faces is below this value, Unity simplifies the UV charts. This property is visible only if your Project uses the Built-in Render Pipeline, and Enlighten Realtime Global Illumination is enabled in your scene. |
Ignore Normals | Enable this option to prevent Unity from splitting the UV charts in real-time lightmaps. This property is visible only if your Project uses the Built-in Render Pipeline, and Enlighten Realtime Global Illumination is enabled in your scene. |
Min Chart Size | Specify the minimum texel size used for a UV chart in real-time lightmaps. If stitching is required, a value of 4 creates a chart of 4x4 texels to store lighting and directionality. If stitching is not required, a value of 2 reduces the texel density and provides better lighting build times and game performance. This property is visible only if your Project uses the Built-in Render Pipeline, and Enlighten Realtime Global Illumination is enabled in your scene. |
When you’ve baked your lighting data (menu: Window > Rendering > Lighting > Generate Lighting ), this section also shows the baked lightmaps and real-time lightmaps in the current scene that this Renderer uses.
The Probes section contains properties relating to Light Probe and Reflection ProbesA rendering component that captures a spherical view of its surroundings in all directions, rather like a camera. The captured image is then stored as a Cubemap that can be used by objects with reflective materials. More info
See in Glossary.
Property | Description | |
---|---|---|
Light Probes | Set how this Renderer receives light from the Light Probes system. This property corresponds to the Renderer.lightProbeUsage API. |
|
Off | The Renderer doesn’t use any interpolated Light Probes. | |
Blend Probes | The Renderer uses one interpolated Light Probe. This is the default value. | |
Use Proxy Volume | The Renderer uses a 3D grid of interpolated Light Probes. | |
Custom Provided | The Renderer extracts Light Probe shader uniform values from the MaterialPropertyBlock. | |
Proxy Volume Override | Set a reference to another GameObject that has a Light Probe Proxy Volume component. This property is only visible when Light Probes is set to Use Proxy Volume. |
|
Reflection Probes | Set how the Renderer receives reflections from the Reflection Probe system. This property corresponds to the Renderer.probeAnchor API. |
|
Off | Disables Reflection Probes. Unity uses a skybox for reflection. | |
Blend Probes | Enables Reflection Probes. Blending occurs only between Reflection Probes. This is useful in indoor environments where the character may transition between areas with different lighting settings. | |
Blend Probes and Skybox | Enables Reflection Probes. Blending occurs between Reflection Probes, or between Reflection Probes and the default reflection. This is useful for outdoor environments. | |
Simple | Enables Reflection Probes, but no blending occurs between Reflection Probes when there are two overlapping volumes. | |
Anchor Override | Set the Transform that Unity uses to determine the interpolation position when using the Light Probe or Reflection Probe systems. By default, this is the centre of the bounding box of the Renderer’s geometry. This property corresponds to the Renderer.probeAnchor API. |
The Ray Tracing section contains properties that relate to ray tracing effects.
This section only appears if your graphics card supports ray tracing and you upgrade your project to use DirectX 12 in the Player settings window.
These properties have no effect unless you configure your project in one of the following ways:
Property: | Function: | |
---|---|---|
Ray Tracing Mode | Specify if and how often Unity updates this Renderer during ray tracing. More frequent updates increase rendering time. | |
Off | Unity excludes this Renderer from ray tracing calculations. This option causes the Renderer to not appear in ray-traced reflections, for example. | |
Static | Unity doesn’t update the ray tracing acceleration structure if the GameObject’s Transform or mesh geometry changes. This means ray tracing effects don’t change at runtime. | |
Dynamic Transform | Unity updates the ray tracing acceleration structure if the GameObject’s Transform changes, but not if the mesh geometry changes. This is the default value for a Mesh Renderer. If your project uses HDRP, this setting is the same as Dynamic Geometry because HDRP rebuilds the acceleration structure every frame. | |
Dynamic Geometry | Unity updates the ray tracing acceleration structure every frame with the GameObject’s Transform and mesh geometry. This is the default value for a Skinned Mesh Renderer. | |
Procedural Geometry | Causes Unity to render this Renderer procedurally with an intersection shaderA program that runs on the GPU. More info See in Glossary rather than with the mesh in the Mesh Filter component. |
|
Acceleration Structure Build Flags | Specifies whether this Renderer overrides the default build flags you specify when you create a ray tracing acceleration structure. |
The Additional Settings section contains additional properties.
Property | Description | |
---|---|---|
Motion Vectors | Set whether to use motion vectors to track this Renderer’s per-pixel, screen-space motion from one frame to the next. You can use this information to apply post-processing effects such as motion blur. Note: not all platforms support motion vectors. See SystemInfo.supportsMotionVectors for more information. This property corresponds to the Renderer.motionVectorGenerationMode API. |
|
Camera Motion Only | Use only Camera movement to track motion. | |
Per Object Motion | Use a specific pass to track motion for this Renderer. | |
Force No Motion | Do not track motion. | |
Dynamic Occlusion | When Dynamic Occlusion is enabled, Unity’s occlusion cullingA process that disables rendering GameObjects that are hidden (occluded) from the view of the camera. More info See in Glossary system culls this Renderer when it is blocked from a Camera’s view by a Static Occluder. Otherwise, the system does not cull this Renderer when it is blocked from a Camera’s view by a Static Occluder. Dynamic Occlusion is enabled by default. Disable it for effects such as drawing the outline of a character behind a wall. |
MeshRenderer
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.
When you visit any website, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and change our default settings. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer.
More information
These cookies enable the website to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly.
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising. Some 3rd party video providers do not allow video views without targeting cookies. If you are experiencing difficulty viewing a video, you will need to set your cookie preferences for targeting to yes if you wish to view videos from these providers. Unity does not control this.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.