A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://docs.unity3d.com/Manual/sprite/../SL-Use16BitPrecisionInShaders.html below:

Manual: Use 16-bit precision in shaders

Input vertex data into a shader

Use 16-bit precision in shaders

By default, GPUs use 32-bit precision. You can use 16-bit precision instead in GPU calculations, which has the following benefits on mobile platforms:

Create a 16-bit variable

To use 16-bit precision in a shader, use half when you declare a scalar, a vector, or a matrix. For example:

half _Glossiness;
half4 _Color;
half4x4 _Matrix;

To use 16-bit precision in a texture sampler, add half4 when you declare it. For example:

Texture2D<half4> _MainTex;

16-bit precision might not be enough for some shader calculations. This might cause visible errors such as color banding or stuttering geometry. To check for errors, run your project on a platform that supports half. If there are errors, use float instead.

A half variable is stored in buffers with a size and alignment of 32 bits.

Use 16-bit values on more platforms

By default, half has no effect on higher performance platforms in Unity, for example platforms that use MacOS. A half variable becomes a float, and the GPU uses 32-bit values for calculations.

To use 16-bit precision on more platforms, go to Edit > Project Settings > Player and set Shader Precision Model to Uniform. Unity then treats half in your HLSL code as the following:

When Unity compiles shaders, min16float becomes a platform data type that allows the GPU to use 16-bit precision for calculations if it supports them. For example:

To override the Shader Precision Model setting for textures, add _half when you declare a texture sampler. For example Texture2D<half4> _MainTex.

Additional resources

Input vertex data into a shader


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4