Unity allows you to set the level of graphical quality it will attempt to render. Generally speaking, quality comes at the expense of framerate and so it may be best not to aim for the highest quality on mobile devices or older hardware since it will have a detrimental effect on gameplay. The Quality Settings inspector (menu: Edit > Project Settings > Quality) is used to select the quality level in the editor for the chosen device. It is split into two main areas - at the top, there is the following matrix:
Unity lets you assign a name to a given combination of quality options for easy reference. The rows of the matrix let you choose which of the different platforms each quality level will apply to. The Default row at the bottom of the matrix is not a quality level in itself but rather sets the default quality level used for each platform (a green checkbox in a column denotes the level currently chosen for that platform). Unity comes with six quality levels pre-enabled but you can add your own levels using the button below the matrix. You can use the trashcan icon (the rightmost column) to delete an unwanted quality level.
You can click on the name of a quality level to select it for editing, which is done in the panel below the settings matrix:
The quality options you can choose for a quality level are as follows:
Property: | Function: |
---|---|
Name | The name that will be used to refer to this quality level |
Property: | Function: |
---|---|
Pixel Light Count | The maximum number of pixelThe smallest unit in a computer image. Pixel size depends on your screen resolution. Pixel lighting is calculated at every screen pixel. More info See in Glossary lights when Forward RenderingA rendering path that renders each object in one or more passes, depending on lights that affect the object. Lights themselves are also treated differently by Forward Rendering, depending on their settings and intensity. More info See in Glossary is used. |
Texture Quality | This lets you choose whether to display textures at maximum resolution or at a fraction of this (lower resolution has less processing overhead). The options are Full Res, Half Res, Quarter Res and Eighth Res. |
Anisotropic Textures | This enables if and how anisotropic textures will be used. The options are Disabled, Per Texture and Forced On (ie, always enabled). |
AntiAliasingA technique for decreasing artifacts, like jagged lines (jaggies), in images to make them appear smoother. More info See in Glossary |
This sets the level of antialiasing that will be used. The options are 2x, 4x and 8x multi-sampling. |
Soft ParticlesParticles that create semi-transparent effects like smoke, fog or fire. Soft particles fade out as they approach an opaque object, to prevent intersections with the geometry. More info See in Glossary |
Should soft blending be used for particles? |
Realtime Reflection Probes | Should 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 be updated during gameplay? |
Resolution Scaling Fixed DPI Factor | Downscales the device’s screen resolution below its native resolution. For more details, see the platform-specific Player SettingsA settings manager that lets you set various player-specific options for the final game built by Unity. More info See in Glossary pages, such as Android Player Settings and iOS Player Settings. |
Property: | Function: |
---|---|
ShadowsA UI component that adds a simple outline effect to graphic components such as Text or Image. It must be on the same GameObject as the graphic component. More info See in Glossary |
This determines which type of shadows should be used. The available options are Hard and Soft Shadows, Hard Shadows Only and Disable Shadows. |
Shadow resolution | Shadows can be rendered at several different resolutions: Low, Medium, High and Very High. The higher the resolution, the greater the processing overhead. |
Shadow Projection | There are two different methods for projecting shadows from a directional light. Close Fit renders higher resolution shadows but they can sometimes wobble slightly if the cameraA component which creates an image of a particular viewpoint in your scene. The output is either drawn to the screen or captured as a texture. More info See in Glossary moves. Stable Fit renders lower resolution shadows but they don’t wobble with camera movements. |
Shadow Cascades | The number of shadow cascades can be set to zero, two or four. A higher number of cascades gives better quality but at the expense of processing overhead (see Directional Light Shadows for further details). |
Shadow Distance | The maximum distance from camera at which shadows will be visible. Shadows that fall beyond this distance will not be rendered. |
Shadowmask Mode | Sets the shadowmask behaviour when using the ShadowmaskA Texture that shares the same UV layout and resolution with its corresponding lightmap. More info See in Glossary Mixed lighting mode. Use the Lighting window (menu: Window > RenderingThe process of drawing graphics to the screen (or to a render texture). By default, the main camera in Unity renders its view to the screen. More info See in Glossary > Lighting Settings) to set this up in your Scene. |
Distance ShadowmaskA version of the Shadowmask lighting mode that includes high quality shadows cast from static GameObjects onto dynamic GameObjects. More info See in Glossary |
Unity uses real-time shadows up to the Shadow Distance, and baked shadows beyond it. |
Shadowmask | hadowmask: Static GameObjectsThe 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 that cast shadows always cast baked shadows. |
Shadow Near Plane Offset | Offset shadow near plane to account for large triangles being distorted by shadow pancaking. |
Property: | Function: |
---|---|
Blend Weights | The number of bones that can affect a given vertex during an animation. The available options are one, two or four bones. |
VSync Count | Rendering can be synchronised with the refresh rate of the display device to avoid “tearing” artifacts (see below). You can choose to synchronise with every vertical blank (VBlank), every second vertical blank or not to synchronise at all. |
LOD Bias | LODA system for building multiplayer capabilities for Unity games. It is built on top of the lower level transport real-time communication layer, and handles many of the common tasks that are required for multiplayer games. More info See in Glossary levels are chosen based on the onscreen size of an object. When the size is between two LOD levels, the choice can be biased toward the less detailed or more detailed of the two models available. This is set as a fraction from 0 to +infinity. When it is set between 0 and 1 it favors less detail. A setting of more than 1 favors greater detail. For example, setting LOD Bias to 2 and having it change at 50% distance, LOD actually only changes on 25%. |
Maximum LOD Level | The highest LOD that will be used by the game. See note below for more Information. |
Particle Raycast Budget | The maximum number of raycasts to use for approximate particle systemA component that simulates fluid entities such as liquids, clouds and flames by generating and animating large numbers of small 2D images in the scene. More info See in Glossary collisionsA collision occurs when the physics engine detects that the colliders of two GameObjects make contact or overlap, when at least one has a rigidbody component and is in motion. More info See in Glossary (those with Medium or Low quality). See Particle System Collision Module. |
Async Upload Time Slice | The amount of CPU time in milliseconds per frame to spend uploading buffered textures to the GPU. See Async Texture Upload. |
Async Upload Buffer Size | The size in MB for the Async Upload buffer. See Async Texture Upload. |
Models which have a LOD below the MaximumLOD level will not be used and omitted from the build (which will save storage and memory space). Unity will use the smallest LOD value from all the MaximumLOD values linked with the quality settings for the target platform. If an LOD level is included then models from that LODGroup will be included in the build and always loaded at runtime for that LODGroup, regardless of the quality setting being used. As an example, if LOD level 0 is used in any quality setting then all the LOD levels will be included in the build and all the referenced models loaded at runtime.
The picture on the display device is not continuously updated but rather the updates happen at regular intervals much like frame updates in Unity. However, Unity’s updates are not necessarily synchronised with those of the display, so it is possible for Unity to issue a new frame while the display is still rendering the previous one. This will result in a visual artifact called “tearing” at the position onscreen where the frame change occurs.
It is possible to set Unity to switch frames only during the period where the display device is not updating, the so-called “vertical blank”. The VSync option on the Quality Settings synchronises frame switches with the device’s vertical blank or optionally with every other vertical blank. The latter may be useful if the game requires more than one device update to complete the rendering of a frame.
Anti aliasing improves the appearance of polygon edges, so they are not “jagged”, but smoothed out on the screen. However, it incurs a performance cost for the graphics card and uses more video memory (there’s no cost on the CPU though). The level of anti-aliasing determines how smooth polygon edges are (and how much video memory does it consume).
However, built-in hardware anti-aliasing does not work with Deferred ShadingA rendering path that places no limit on the number of lights that can affect a GameObject. All lights are evaluated per-pixel, which means that they all interact correctly with normal maps and so on. Additionally, all lights can have cookies and shadows. More info
See in Glossary or HDRhigh dymanic range
See in Glossary rendering; for these cases you’ll need to use Antialiasing Image Effect.
Soft Particles fade out near intersections with other sceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary geometry. This looks much nicer, however it’s more expensive to compute (more complex pixel shaders), and only works on platforms that support depth textures. Furthermore, you have to use Deferred Shading or Legacy Deferred Lighting rendering pathThe technique Unity uses to render graphics. Choosing a different path affects the performance of your game, and how lighting and shading are calculated. Some paths are more suited to different platforms and hardware than others. More info
See in Glossary, or make the camera render depth textures from scriptsA piece of code that allows you to create your own Components, trigger game events, modify Component properties over time and respond to user input in any way you like. More info
See in Glossary.
2017–09–18 Page amended with limited editorial review
Shadowmask Mode added in 2017.1 NewIn20171