Postprocessing with OpenGL ES 3.
Camera can be moved around in the scene and the orientation of the cube object in the scene can be adjusted based on the camera’s position and orientation.
Multisample Anti-Aliasing(MSAA) is utilized and can be turned on and off.
Texturing on the cube object is done using a static cube map texture created by using six images.
This technique also utilizes render to texture technique.
Cube map texture and texture generated via render to texture are filtered using trilinear filtering(mipmaps are generated for textures.) and anisotropic filtering.
A light bloom effect is created by combining blur and blending techniques together.
In the first pass, the scene is rendered into texture then render a full-screen quad and use the texture generated from the first pass on the full-screen quad with blur shader and blending implemented in the second pass.
Bloom effect in this app has been implemented as two types which give the bloom quality differently.
The amount of bloom can be adjusted via slider. More bloom will result in more render to texture pass using blur shader in one frame.
Bloom effect is an expensive technique, especially on mobile devices.
In the video, increasing the amount of bloom has a lot of impact on performance.
Multisample Anti-Aliasing(MSAA), mipmaps generation for trilinear filtering, and anisotropic filtering are all implemented in this app.
These are all expensive techniques.
With all of these techniques in every frame of rendering the scene and considering that the app is running on a mobile device, the impact on performance can be severe at high amount of bloom.
Even though the scene appears to be a simple scene with only one object but the bloom technique implemented is actually full-screen bloom.
Platform: iOS
Programming Language: Objective-C, C/C++, GLSL
Device: iPad Air
Sonic the hedgehog and its characters are properties of Sega Corp.