Fixes:
* Values exceeding the encoded range.
Future may account for a certain range
above and below current values.
* Minor calculation problem that prevented
the above fix from working properly.
* Streamlined the shader code.
* Add a vertex shader to handle the scaling.
* Use the viewport resolution as the scaled
version to save performance.