OpenGL 3.0 Texture Arrays

Click here to load reader

download OpenGL 3.0 Texture Arrays

of 27

  • date post

  • Category


  • view

  • download


Embed Size (px)


OpenGL 3.0 Texture Arrays. Presentation: Olivia Terrell, Dec. 4, 2008. OpenGL 3.0. History of OpenGL 3.0 How OpenGL 3.0 Differs OpenGL 3.0 Texture arrays. History of OpenGL 3.0. - PowerPoint PPT Presentation

Transcript of OpenGL 3.0 Texture Arrays

  • OpenGL 3.0Texture Arrays

    Presentation: Olivia Terrell, Dec. 4, 2008

  • OpenGL 3.0History of OpenGL 3.0

    How OpenGL 3.0 Differs

    OpenGL 3.0 Texture arrays

  • History of OpenGL 3.0

    When one door closes another door opens; but we so often look so long and so regretfully upon the closed door, that we do not see the ones which open for us.,

    Alexander Graham Bell

  • Evolved from IrisGL (Integrated Raster Imaging Systems Graphic Library)

    IrisGL was specific to IRIX Silicon stations

    OpenGL created by Mark Segal and Kurt Akeley

  • First release OpenGL1.0 lacked texture objects, thus glBindTexture was added to OpenGL1.1. Release versions:


  • Block Diagram of OpenGL

  • How OpenGL 3.0 Differs

    He who rejects change is the architect of decay...

    Harold Wilson

  • OpenGL 3.0 featuresVertex array objectsDirect access to vertex buffer objectsFramebuffer object variability for buffer size and format during rendering32-bit floating point texture and render buffersOcclusion renderingHalf-float vertex & pixel data

  • OpenGL 3.0 featuresTransform feedback to capture geometry data into a buffer for further computation4 new texture compressions for 1 and 2 channel textureRendering in sRGB framebuffers32-bit floating point depth buffer supportTexture arrays...

  • OpenGL 3.0 features API support for the new texture lookup capabilities of the OpenGL Shading Language 1.30 specification (GL EXT gpu shader4). Conditional rendering (GL NV conditional render). Fine control over mapping buffer subranges into client space and flushingmodified data. Floating-point color and depth internal formats for textures and renderbuffers (GL ARB color buffer float, GL NV depth buffer float, 455 GL ARB texture float, GL EXT packed float, and GL EXT texture shared exponent). Framebuffer objects (GL EXT framebuffer object). Half-float (16-bit) vertex array and pixel data formats (GL NV half float and GL ARB half float pixel). Multisample stretch blit functionality (GL EXT framebuffer multisample and GL EXT framebuffer blit). Non-normalized integer color internal formats for textures and renderbuffers (GL EXT texture integer).

  • OpenGL 3.0 featuresOne- and two-dimensional layered texture targets (GL EXT texture array). Packed depth/stencil internal formats for combined depth+stencil textures and renderbuffers (GL EXT packed depth stencil). Per-color-attachment blend enables and color writemasks (GL EXT draw buffers2). RGTC specific internal compressed formats (GL EXT texture compression rgtc). Single- and double-channel (R and RG) internal formats for textures and renderbuffers. Transform feedback (GL EXT transform feedback). Vertex array objects (GL APPLE vertex array object). sRGB framebuffer mode (GL EXT framebuffer sRGB)

  • Changed Token Names









  • Supported Shading Languages




  • OpenGL 3.0 Texture Arrays

    It is the eye of ignorance that assigns a fixed and unchangeable color to every object...

    Paul Gauguin

  • EXT_texture_arrayCreated August 7, 2008Enteracts with either

    NV_geometry_program4NV_gpu_program4OpenGL Shading Language (GLSL 3.0)

  • EXT_texture_arrayWhat it is:

    Array of textures equal in size and format, arranged in layersHeight (1D) or depth (2D) are the number of layers

  • EXT_texture_arraySpecifications:

    1D array: TexImage2D2D array: TexImage3D

  • TexImage2D(enum target, int level, int internalformat, sizei width, sizei height, int border, enum format, enum type, void *data)Target is a 2D textureLevel is level of detailInternalformat is storage of textureWidth, height and border are boundaries of the textureFormat is current format of texture*data is pointer to internal data type

  • EXT_texture_arrayHow it WorksTexture array is seen as a unit in the shaderAccess is through single coordinate vector1 layer of array is selected as 1D or 2D textureCoordinate of layer is in [0, n-1], where n is the total number of textures in the arrayArray textures are rendered by binding them to a framebuffer (EXT_framebuffer_object)Can bind whole array, or single layer

  • EXT_texture_array6 different textures are possible as input to the array. Each texture is itself a 1D, 2D, or 3D array of images.

    Each image element is called a texel.

    Each image is comprised of 1 to n layers

  • Vs. The Old way... Basic problem: Texture animationCreate separate image file per frame of animationLoad every frame as part of user array: texture[index]=LoadTextureRAW(text1.raw, 256, 256);Set the texture to the coordinate: glBindTexture(GL_TEXTURE_2D,texture[frame]); //where frame is some intGo to next frame of texture array and repeat

  • EXT_texture_arrayOne use of texture animation to a shape is the Beryl Desktop, a 3D cube where each side is a separate desktop, for example.

  • Application: Beryl Desktop

    *image compliments of Corporal J VanDyke, Auraria PD

  • Questions?

  • This Presentation Online