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