blob: 9fb0f3e07895d75f181dc66e814c0ce5aada1b2a [file] [log] [blame]
Name
NV_light_max_exponent
Name Strings
GL_NV_light_max_exponent
Contact
Mark J. Kilgard, NVIDIA Corporation (mjk 'at' nvidia.com)
Notice
Copyright NVIDIA Corporation, 1999, 2000.
Status
Shipping (version 1.0)
Version
May 20, 2000
$Date$ $Revision$
Number
189
Dependencies
None
Overview
Default OpenGL does not permit a shininess or spot exponent over
128.0. This extension permits implementations to support and
advertise a maximum shininess and spot exponent beyond 128.0.
Note that extremely high exponents for shininess and/or spot light
cutoff will require sufficiently high tessellation for acceptable
lighting results.
Paul Deifenbach's thesis suggests that higher exponents are
necessary to approximate BRDFs with per-vertex ligthing and
multiple passes.
New Procedures and Functions
None
New Tokens
Accepted by the <pname> parameters of GetBooleanv, GetIntegerv,
GetFloatv, and GetDoublev:
MAX_SHININESS_NV 0x8504
MAX_SPOT_EXPONENT_NV 0x8505
Additions to Chapter 2 of the GL Specification (OpenGL Operation)
In Table 2.7, change the srm range entry to read:
"(range: [0.0, value of MAX_SHININESS_NV])"
In Table 2.7, change the srli range entry to read:
"(range: [0.0, value of MAX_SPOT_EXPONENT_NV])"
Add to the end of the second paragraph in Section 2.13.2:
"The values of MAX_SHININESS_NV and MAX_SPOT_EXPONENT_NV are
implementation dependent, but must be equal or greater than 128."
Additions to Chapter 3 of the GL Specification (Rasterization)
None
Additions to Chapter 4 of the GL Specification (Per-Fragment Operations
and the Framebuffer)
None.
Additions to Chapter 5 of the GL Specification (Special Functions)
None
Additions to Chapter 6 of the GL Specification (State and State Requests)
None
Additions to the GLX Specification
None
GLX Protocol
None
Errors
INVALID_VALUE is generated by Material if enum is SHININESS and the
shininess param is greater than the MAX_SHININESS_NV.
INVALID_VALUE is generated by Material if enum is SPOT_EXPONENT and
the shininess param is greater than the MAX_SPOT_EXPONENT_NV.
New State
None.
New Implementation Dependent State
(table 6.24, p214) add the following entries:
Get Value Type Get Command Minimum Value Description Sec Attribute
--------------------------- ---- ----------- ------------- ----------------- ------ --------------
MAX_SHININESS_NV Z+ GetIntegerv 128 Maximum 2.13.2 -
shininess for
specular lighting
MAX_SPOT_EXPONENT_NV Z+ GetIntegerv 128 Maximum 2.13.2 -
exponent for
spot lights
NVIDIA Implementation Details
NVIDIA's Release 4 drivers incorrectly and accidently advertised this
extension with an "EXT" prefix instead of an "NV" prefix. Release 5
and later drivers correctly advertise this extension with an "NV"
extension.
Revision History
5/20/00 - earlier versions of this specification had the incorrect
enumerant values which did not match NVIDIA's driver implementation.