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
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