GL_OES_texture_cube_map_array

Supported Hardware

Series6, Series6XE, Series6XT

Valid APIs

OpenGL ES 3.1

Description

OpenGL ES 3.1 supports two-dimensional array textures. An array texture is an ordered set of images with the same size and format. Each image in an array texture has a unique level. This extension expands texture array support to include cube map textures.

A cube map array texture is a two-dimensional array texture that may contain many cube map layers. Each cube map layer is a unique cube map image set. Images in a cube map array have the same size and format limitations as two-dimensional array textures. A cube map array texture is specified using TexImage3D or TexStorage3D in a similar manner to two-dimensional arrays. Cube map array textures can be bound to a render targets of a frame buffer object just as two-dimensional arrays are, using FramebufferTextureLayer.

When accessed by a shader, a cube map array texture acts as a single unit. The "s", "t", "r" texture coordinates are treated as a regular cube map texture fetch. The "q" texture is treated as an unnormalized floating-point value identifying the layer of the cube map array texture. Cube map array texture lookups do not filter between layers.

Note

OpenGL ES 3.1 and OpenGL ES Shading Language 3.10 are required.

This specification is written against the OpenGL ES 3.1 (March 17, 2014) and OpenGL ES 3.10 Shading Language (March 17, 2014) Specifications.

OES_geometry_shader or EXT_geometry_shader is required.

OES_texture_border_clamp or EXT_texture_border_clamp affect the definition of this extension.

This extension interacts with OES_shader_image_atomic.

Registry Link

https://www.khronos.org/registry/gles/extensions/OES/OES_texture_cube_map_array.txt

Example

glGenTextures(1, &texid); 
glBindTexture(TEXTURE_CUBE_MAP_ARRAY_OES, texid); 
... 
// In the shader the texture value is determined by (s, t, r, q) coordinates 
// where "s", "t", "r" is defined to be the same as for TEXTURE_CUBE_MAP 
// and "q" is defined as the index of a specific cube map in the cube map array 
vec4 sampler_coord; 
vec4 color = texture(samplerCubeArray, sampler_coord)