1Name 2 3 NV_light_max_exponent 4 5Name Strings 6 7 GL_NV_light_max_exponent 8 9Contact 10 11 Mark J. Kilgard, NVIDIA Corporation (mjk 'at' nvidia.com) 12 13Notice 14 15 Copyright NVIDIA Corporation, 1999, 2000. 16 17Status 18 19 Shipping (version 1.0) 20 21Version 22 23 May 20, 2000 24 $Date$ $Revision$ 25 26Number 27 28 189 29 30Dependencies 31 32 None 33 34Overview 35 36 Default OpenGL does not permit a shininess or spot exponent over 37 128.0. This extension permits implementations to support and 38 advertise a maximum shininess and spot exponent beyond 128.0. 39 40 Note that extremely high exponents for shininess and/or spot light 41 cutoff will require sufficiently high tessellation for acceptable 42 lighting results. 43 44 Paul Deifenbach's thesis suggests that higher exponents are 45 necessary to approximate BRDFs with per-vertex ligthing and 46 multiple passes. 47 48New Procedures and Functions 49 50 None 51 52New Tokens 53 54 Accepted by the <pname> parameters of GetBooleanv, GetIntegerv, 55 GetFloatv, and GetDoublev: 56 57 MAX_SHININESS_NV 0x8504 58 MAX_SPOT_EXPONENT_NV 0x8505 59 60Additions to Chapter 2 of the GL Specification (OpenGL Operation) 61 62 In Table 2.7, change the srm range entry to read: 63 64 "(range: [0.0, value of MAX_SHININESS_NV])" 65 66 In Table 2.7, change the srli range entry to read: 67 68 "(range: [0.0, value of MAX_SPOT_EXPONENT_NV])" 69 70 Add to the end of the second paragraph in Section 2.13.2: 71 72 "The values of MAX_SHININESS_NV and MAX_SPOT_EXPONENT_NV are 73 implementation dependent, but must be equal or greater than 128." 74 75Additions to Chapter 3 of the GL Specification (Rasterization) 76 77 None 78 79Additions to Chapter 4 of the GL Specification (Per-Fragment Operations 80and the Framebuffer) 81 82 None. 83 84Additions to Chapter 5 of the GL Specification (Special Functions) 85 86 None 87 88Additions to Chapter 6 of the GL Specification (State and State Requests) 89 90 None 91 92Additions to the GLX Specification 93 94 None 95 96GLX Protocol 97 98 None 99 100Errors 101 102 INVALID_VALUE is generated by Material if enum is SHININESS and the 103 shininess param is greater than the MAX_SHININESS_NV. 104 105 INVALID_VALUE is generated by Material if enum is SPOT_EXPONENT and 106 the shininess param is greater than the MAX_SPOT_EXPONENT_NV. 107 108New State 109 110 None. 111 112New Implementation Dependent State 113 114(table 6.24, p214) add the following entries: 115 116 Get Value Type Get Command Minimum Value Description Sec Attribute 117 --------------------------- ---- ----------- ------------- ----------------- ------ -------------- 118 MAX_SHININESS_NV Z+ GetIntegerv 128 Maximum 2.13.2 - 119 shininess for 120 specular lighting 121 MAX_SPOT_EXPONENT_NV Z+ GetIntegerv 128 Maximum 2.13.2 - 122 exponent for 123 spot lights 124 125NVIDIA Implementation Details 126 127 NVIDIA's Release 4 drivers incorrectly and accidently advertised this 128 extension with an "EXT" prefix instead of an "NV" prefix. Release 5 129 and later drivers correctly advertise this extension with an "NV" 130 extension. 131 132Revision History 133 134 5/20/00 - earlier versions of this specification had the incorrect 135 enumerant values which did not match NVIDIA's driver implementation. 136