• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    OES_extended_matrix_palette
4
5Name Strings
6
7    GL_OES_extended_matrix_palette
8
9Contact
10
11    Aaftab Munshi (amunshi@ati.com)
12
13Notice
14
15    Copyright (c) 2005-2013 The Khronos Group Inc. Copyright terms at
16        http://www.khronos.org/registry/speccopyright.html
17
18Specification Update Policy
19
20    Khronos-approved extension specifications are updated in response to
21    issues and bugs prioritized by the Khronos OpenGL ES Working Group. For
22    extensions which have been promoted to a core Specification, fixes will
23    first appear in the latest version of that core Specification, and will
24    eventually be backported to the extension document. This policy is
25    described in more detail at
26        https://www.khronos.org/registry/OpenGL/docs/update_policy.php
27
28Status
29
30    Ratified by the Khronos BOP, July 22, 2005.
31
32Version
33
34    Last Modified Date: February 3, 2005
35
36Number
37
38    OpenGL ES Extension #8
39
40Dependencies
41
42    OES_matrix_palette is required
43    OpenGL ES 1.1 is required.
44
45Overview
46
47    The OES_matrix_palette extension added the ability to support vertex skinning
48    in OpenGL ES.  One issue with OES_matrix_palette is that the minimum size of
49    the matrix palette is very small.  This leads to applications having to break
50    geometry into smaller primitive sets called via. glDrawElements.  This has an
51    impact on the overall performance of the OpenGL ES implementation.  In general,
52    hardware implementations prefer primitive packets with as many triangles as
53    possible.  The default minimum size defined in OES_matrix_palette is not
54    sufficient to allow this.  The OES_extended_matrix_palette extension increases
55    this minimum from 9 to 32.
56
57        Another issue is that it is very difficult for ISVs to handle different
58        size matrix palettes as it affects how they store their geometry
59        in the database - may require multiple representations which is
60        not really feasible.  So the minimum size is going to be what most ISVs
61        will use.
62
63        By extending the minimum size of the matrix palette, we remove this
64        fragmentation and allow applications to render geometry with minimal
65        number of calls to glDrawElements or glDrawArrays.  The OpenGL ES
66        implementation can support this without requiring any additional hardware
67        by breaking the primitive, plus it gives implementations the flexibility
68        to accelerate with a bigger matrix palette if they choose to do so.
69
70        Additionally, feedback has also been received to increase the number of
71        matrices that are blend per vertex from 3 to 4.  The OES_extended_matrix_palette
72        extension increases the minium number of matrices / vertex to 4.
73
74IP Status
75
76    None.
77
78Issues
79
80    None
81
82New Procedures and Functions
83
84    None
85
86New Tokens
87
88    No new tokens added except that the default values for
89    MAX_PALETTE_MATRICES_OES and MAX_VERTEX_UNITS_OES are 32 and 4 respectively.
90
91Additions to Chapter 2 of the OpenGL ES 1.0 Specification
92
93    None
94
95Errors
96
97    None
98
99New State
100
101Get Value                   Type  Command      Value    Description
102---------                   ----  -------      -------  -----------
103
104MAX_PALETTE_MATRICES_OES    Z+    GetIntegerv  32       size of matrix palette
105MAX_VERTEX_UNITS_OES        Z+    GetIntegerv  4        number of matrices per vertex
106
107Revision History
108
109    Feb 03, 2005   Aaftab Munshi    First draft of extension
110