OES_extended_matrix_palette

Name

OES_extended_matrix_palette

Name Strings

GL_OES_extended_matrix_palette

Contact

Aaftab Munshi (amunshi@ati.com)

Notice

Copyright (c) 2005-2013 The Khronos Group Inc. Copyright terms at
    http://www.khronos.org/registry/speccopyright.html

Specification Update Policy

Khronos-approved extension specifications are updated in response to
issues and bugs prioritized by the Khronos OpenGL ES Working Group. For
extensions which have been promoted to a core Specification, fixes will
first appear in the latest version of that core Specification, and will
eventually be backported to the extension document. This policy is
described in more detail at
    https://www.khronos.org/registry/OpenGL/docs/update_policy.php

Status

Ratified by the Khronos BOP, July 22, 2005.

Version

Last Modified Date: February 3, 2005

Number

OpenGL ES Extension #8

Dependencies

OES_matrix_palette is required
OpenGL ES 1.1 is required.

Overview

The OES_matrix_palette extension added the ability to support vertex skinning 
in OpenGL ES.  One issue with OES_matrix_palette is that the minimum size of 
the matrix palette is very small.  This leads to applications having to break 
geometry into smaller primitive sets called via. glDrawElements.  This has an 
impact on the overall performance of the OpenGL ES implementation.  In general, 
hardware implementations prefer primitive packets with as many triangles as 
possible.  The default minimum size defined in OES_matrix_palette is not 
sufficient to allow this.  The OES_extended_matrix_palette extension increases 
this minimum from 9 to 32.  

    Another issue is that it is very difficult for ISVs to handle different 
    size matrix palettes as it affects how they store their geometry 
    in the database - may require multiple representations which is
    not really feasible.  So the minimum size is going to be what most ISVs
    will use.

    By extending the minimum size of the matrix palette, we remove this
    fragmentation and allow applications to render geometry with minimal
    number of calls to glDrawElements or glDrawArrays.  The OpenGL ES
    implementation can support this without requiring any additional hardware
    by breaking the primitive, plus it gives implementations the flexibility
    to accelerate with a bigger matrix palette if they choose to do so.

    Additionally, feedback has also been received to increase the number of
    matrices that are blend per vertex from 3 to 4.  The OES_extended_matrix_palette
    extension increases the minium number of matrices / vertex to 4.

IP Status

None. 

Issues

None

New Procedures and Functions

None

New Tokens

No new tokens added except that the default values for
MAX_PALETTE_MATRICES_OES and MAX_VERTEX_UNITS_OES are 32 and 4 respectively.

Additions to Chapter 2 of the OpenGL ES 1.0 Specification

None

Errors

None

New State

Get Value Type Command Value Description ——— —- ——- ——- ———–

MAX_PALETTE_MATRICES_OES Z+ GetIntegerv 32 size of matrix palette MAX_VERTEX_UNITS_OES Z+ GetIntegerv 4 number of matrices per vertex

Revision History

Feb 03, 2005   Aaftab Munshi    First draft of extension