It is useful to know the Unity quality settings to ensure you select the correct settings for your application.
Unity has a number of options that alter the image quality of your game.
Some of these options have a high computational cost and can have a negative impact on
the performance of your game.
The following figure shows quality settings in the Inspector:
Figure 2-1 Quality settings
There are a number of options that can increase the image quality of your game
with only a small trade-off in performance. For example, if the frame rate of your game
is low, the GPU might be processing too much information when performing a complex
graphical effect. You can perform less complex versions of graphical effects, such as
shadows and lighting, for a relatively small impact on the graphical quality. Simpler
effects can reduce the load on the GPU significantly, providing a higher frame rate.
The default settings for lighting can sometimes be too complex for a mobile
device, so some games written for mobile platforms avoid complex techniques or use
game-specific techniques. This might involve techniques such as pre-baking lighting into
light maps or projecting textures instead of casting shadows.
there are a number of options that can have a large impact on the
performance of your game:
- Pixel light count
- Pixel light count is the number of
lights that can affect a given pixel. A high pixel light count requires a large
number of calculations. Most games can use very few dynamic and real-time lights
with minimal impact on image quality. Consider using techniques such as light
maps and projected textures in your game, if lighting is causing performance
- Texture quality
- Texture quality can load the GPU
but it typically does not cause performance problems. Reducing texture quality
can negatively impact the visual quality of your games, so only reduce the
quality if you must. In the Ice Cave demo, Texture
quality is set to full resolution.
- If textures are causing performance problems, try using mipmapping.
Mipmapping reduces compute and bandwidth requirements without impacting image
- Anti-Aliasing is an edge-smoothing
technique that blends the pixels around triangle edges. This provides a
noticeable improvement to the visual quality of your game. There are several
methods of anti-aliasing, but in this case the toggle is for Multi-Sampled Anti-Aliasing (MSAA). 4x MSAA is very
low cost operation on Mali GPUs, so always use it if possible.
- Soft Particles
- Soft Particles requires rendering to
a depth texture or rendering in deferred mode. This increases the load on the
GPU, but can be worth it in terms of achieving realistic visuals on your
particles. On mobile platforms, rendering to and reading from a depth texture
uses up valuable bandwidth, and rendering using a deferred path means you have
no access to MSAA. Consider whether soft particles are important enough to your
game to use them.
- Anisotropic Textures
- Anisotropic Textures is a technique
that removes distortion from textures drawn at high gradients. This improves the
image quality but it is an expensive technique. Avoid using this technique
unless the distortion is especially noticeable.
- Shadows can be computationally
intensive if they are high quality. If shadows cause performance problems, try
simple shadows or switch them off. If shadows are important in your game,
consider using simple dynamic shadowing techniques such as projected
- Real-time reflection probes
The Real-time reflection probes option can have a
significant negative impact on the runtime performance.
When a reflection probe is rendered, every face of the cubemap is rendered
separately by a camera at the origin of the probe. If inter-reflections are
considered, this process takes place for every reflection bounce level. In
the case of glossy reflections, the cubemap mipmaps are also used to apply a
The following factors influence the rendering of the cubemap:
- Cubemap resolution
- Higher resolution cubemaps increase rendering time.
Use the lowest resolution cubemap possible for the quality you
- Culling Mask
- Use the culling mask when rendering the cubemap to
avoid rendering any geometry not relevant in the reflections.
- Cubemap Updating
- the Refresh Mode option defines
the update frequency for a cubemap:
- The Every Frame option renders
the cubemap every frame. This is the most computationally
expensive option, so avoid using it unless you require it.
- The On Awake option renders
the cubemap at runtime one time, when the scene starts.
- The Via Scripting option
provides you with control over when the cubemap is updated.
With this option, you can limit the use of runtime resources
by specifying the conditions when an update takes