
Floating-point textures-OpenGL ES 3.0 greatly expands on the texture formats supported. In OpenGL ES 3.0, cubemaps can be sampled such that filtering uses data from adjacent faces and removes the seaming artifact. Seamless cubemaps-In OpenGL ES 2.0, rendering with cubemaps could produce artifacts at the boundaries between cubemap faces. In addition to depth textures, OpenGL ES 3.0 allows the comparison against the depth texture to be done at the time of fetch, thereby allowing bilinear filtering to be done on depth textures (also known as percentage closest filtering ). The most common use for depth textures is in rendering shadows, where a depth buffer is rendered from the viewpoint of the light source and then used for comparison when rendering the scene to determine whether a fragment is in shadow. Depth textures and shadow comparison-Enable the depth buffer to be stored in a texture. 3D textures are essential in many medical imaging applications, such as those that perform direct volume rendering of 3D voxel data (e.g., CT, MRI, or PET data). 3D textures-While some OpenGL ES 2.0 implementations supported 3D textures through an extension, OpenGL ES 3.0 has made this a mandatory feature. With 2D texture arrays, each frame of the animation can be specified in a 2D slice of the array. Prior to 2D texture arrays, such animation was typically done by tiling the frames of an animation in a single 2D texture and modifying the texture coordinates to change animation frames. Such arrays might, for example, be used to perform texture animation. 2D texture arrays-A texture target that stores an array of 2D textures. This enables potentially higher visual fidelity by properly computing lighting and other calculations in linear space. Textures can be stored in gamma-corrected sRGB space, uncorrected to linear space upon being fetched in the shader, and then converted back to sRGB gamma-corrected space on output to the framebuffer. sRGB textures and framebuffers-Allow the application to perform gamma-correct rendering.
OpenGL ES 3.0 introduces many new features related to texturing: Each of these features will be described in detail later in the book. The following sections provide a categorized overview of the major new features that have been added to OpenGL ES 3.0. OpenGL ES 3.0 extends OpenGL ES 2.0 to support many new rendering techniques, optimizations, and visual quality enhancements.
OpenGL ES 2.0 ushered in the era of programmable shaders for handheld devices and has been wildly successful in powering games, applications, and user interfaces across a wide range of devices. Learn More Buy What’s New in OpenGL ES 3.0
OpenGL ES 3.0 Programming Guide, 2nd Edition