Optimizing your runtime performance
There are various interesting low-level optimizations you can do to improve your shaders and keep your code fast.
In the following sections, we will see why the precision of your computations matters, which mathematical operations are considered “complex” and can slow down your shaders, and how some particular cases such as alpha testing may benefit from platform-specific implementations. Finally, we’ll discuss how picking the right esthetics for your project can sometimes help with technical limitations.
Float, half, or fixed?
If you’re a bit familiar with Unity shaders, then you’ve probably already seen that, depending on the tutorial you look at, fragment shader functions may return either float4
or half4
. This might be surprising at first: how come the same function can use different types like this, and why choose one over the other?
Well, a key idea to keep in mind when doing intensive calculations...