Graphics hardware capabilities and emulation
The graphics hardware that ultimately renders a 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 is controlled by specialised programs called ShadersA small script that contains the mathematical calculations and algorithms for calculating the Color of each pixel rendered, based on the lighting input and the Material configuration. More info
See in Glossary. The capabilities of the hardware have improved over time, and the general set of features that were introduced with each phase is known as a Shader Model. Successive Shader Models have added support for longer programs, more powerful branching instructions and other features, and these have enabled improvements in the graphics of games.
The Unity Editor supports emulation of several sets of Shader Models and graphics API restrictions, for getting a quick overview of how the game might look like when running on a particular GPU or graphics API. Note that the in-editor emulation is very approximate, and it is always advisable to actually run the game build on the hardware you are targeting.
To choose the graphics emulation level, go to the Edit > Graphics Emulation menu. Note that the available options change depending on the platform you are currently targeting in the Build Settings. You can restore the full capabilities of your hardware by choosing No Emulation. If your development computer doesn’t support a particular Shader Model then the menu entry will be disabled.
Shader Model 4 (Standalone & Universal Windows Platform)
- Emulates DirectX 10 feature set (PC GPUs made during 2007–2009).
- Turns off support for compute Shaders and related features (compute buffers, random-write Textures), sparse Textures, and tessellation Shaders.
Shader Model 3 (Standalone platform)
- Emulates DirectX 9 SM3.0 feature set (PC GPUs made during 2004–2006).
- In addition to features turned off by Shader Model 4 emulation, this also turns off support for draw call instancing, Texture Arrays, and geometry Shaders. It enforces a maximum of 4 simultaneous render targets, and a maximum of 16 Textures used in a single Shader.
Shader Model 2 (Standalone platform)
OpenGL ES 3.0 (Android platform)
- Emulates mobile OpenGL ES 3.0 feature set.
- Turns off support for compute Shaders and related features (compute buffers, random-write Textures), sparse Textures, tessellation Shaders and geometry Shaders. Enforces maximum of 4 simultaneous render targets, and maximum of 16 Textures used in a single Shader. Maximum allowed Texture size is set to 4096, and maximum cubemapA collection of six square textures that can represent the reflections in an environment or the skybox drawn behind your geometry. The six squares form the faces of an imaginary cube that surrounds an object; each face represents the view along the directions of the world axes (up, down, left, right, forward and back). More info
See in Glossary size to 2048. Realtime soft shadows are disabled.
Metal (iOS, tvOS platforms)
- Emulates mobile Metal feature set.
- Same restrictions applied as GLES3.0 emulation, except that the maximum cubemap size is set to 4096.
OpenGL ES 2.0 (Android, iOS, tvOS platforms)
- Emulates mobile OpenGL ES 2.0 feature set.
- In addition to features turned off by GLES3.0 emulation, this also turns off support for draw call instancing, Texture arrays, 3D Textures and multiple render targets. Enforces a maximum of 8 Textures used in a single Shader. Maximum allowed cubemap size is set to 1024.
WebGL 1 and WebGL 2 (WebGL platform)
- Emulates typical WebGLA JavaScript API that renders 2D and 3D graphics in a web browser. The Unity WebGL build option allows Unity to publish content as JavaScript programs which use HTML5 technologies and the WebGL rendering API to run Unity content in a web browser. More info
See in Glossary graphics restrictions.
- Very similar to GLES2.0 and GLES3.0 emulation levels above, except that supported Texture sizes are higher (8192 for regular Textures, 4096 for cubemaps), and 16 Textures are allowed in a single Shader.
Shader Model 2 - DX11 FL9.3 (Universal Windows Platform)
- Emulates typical Windows Phone graphics feature set.
- Very similar to Shader Model 2 emulation, but also disables multiple render targets and separate alpha blending.
• 2017–05–16 Page amended