• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1XXX - Not complete yet!!!
2
3Name
4
5    SGIX_spotlight_cutoff
6
7Name Strings
8
9    GL_SGIX_spotlight_cutoff
10
11Version
12
13    $Date: 1997/09/29 21:22:36 $ $Revision: 1.5 $
14
15Number
16
17    131
18
19Dependencies
20
21    OpenGL 1.1 is required.
22    SGIX_fragment_light affects the definition of this extension.
23
24Overview
25
26    As specified, the transition to black at the edge of a spotlight cone
27    is abrupt and, therefore, can cause aliasing in fragment lighting.
28    This extension adds a new parameter to vertex and fragment lights that
29    defines an angular region just within the cutoff angle over which the
30    spotlight attenuation is transitioned smoothly to zero.  The extension
31    is modeled on that from the RenderMan Interface from Pixar.
32
33Issues
34
35    *   Should this single parameter be included in the fragment_light
36	spec (and thus removing the requirement of this spec)?
37
38    *	Do we want this to apply to per-vertex lights too?  I would say
39	yes at this point because this feature can be used for visual
40	effects like those of area light sources.  Vertex lights can
41	benefit almost as much as fragment lights in this situation.
42
43    *   Do we want to force a certain falloff function or leave it up to
44	the implementation?  I think we should leave it open, but force
45	it to be monotonic.
46
47New Procedures and Functions
48
49    None
50
51New Tokens
52
53    Accepted by the <pname> parameter of Lightf, Lighti, Lightfv, and
54    Lightiv and by the <pname> parameter of GetLightfv and GetLightiv:
55
56    SPOT_CUTOFF_DELTA_SGIX		0x8193
57
58Additions to Chapter 2 of the 1.1 Specification (OpenGL Operation)
59
60    Insert in Table 2.7 (need to replicate whole table...):
61
62    Param	Type	Default		Description
63    ----------------------------------------------------------------
64    d_rli	real	0.0		spotlight delta cutoff angle
65					(range:  [0.0,90.0])
66
67    Equation 2.5 becomes:
68
69    If d_rli<=c_rli:
70
71    spot_i = (P_pliV.s_dli)^s_rli   c_rli!=180.0 P_pliV.s_dli>=cos(c_rli-d_rli)
72             smooth falloff         c_rli!=180.0 cos(c_rli)>=P_pliV.s_dli>cos(c_rli-d_rli)
73             0.0                    c_rli!=180.0 P_pliV.s_dli<cos(c_rli)
74             1.0                    c_rli==180.0
75
76    If d_rli>c_rli:
77
78    spot_i = (P_pliV.s_dli)^s_rli   c_rli!=180.0 P_pliV.s_dli>=cos(c_rli)
79             0.0                    c_rli!=180.0 P_pliV.s_dli<cos(c_rli)
80             1.0                    c_rli==180.0
81
82
83    Before the paragraph beginning "The value of A produced..." insert:
84
85    When d_rli<=c_rli, the spotlight attenuation transitions smoothly to
86    0.0 at the cutoff angle over an angle d_rli.  The falloff is
87    implementation specific and may be, for instance, linear or cubic,
88    however it must monotonically decrease from (cos(c_rli-d_rli))^s_rli
89    to 0.0.
90
91    Insert in Table 2.8 (need to replicate whole table...):
92
93    Param	Name			Number of Values
94    ----------------------------------------------------
95    d_rli	SPOT_CUTOFF_DELTA_SGIX	1
96
97Additions to Chapter 3 of the 1.1 Specification (Rasterization)
98
99    In Section 3.9.2 Lighting Operation insert after lighting equation:
100
101    If d_rli<=c_rli:
102
103    spot_i = (P_pliV.s_dli)^s_rli   c_rli!=180.0 P_pliV.s_dli>=cos(c_rli-d_rli)
104             smooth falloff         c_rli!=180.0 cos(c_rli)>=P_pliV.s_dli>cos(c_rli-d_rli)
105             0.0                    c_rli!=180.0 P_pliV.s_dli<cos(c_rli)
106             1.0                    c_rli==180.0
107
108    If d_rli>c_rli:
109
110    spot_i = (P_pliV.s_dli)^s_rli   c_rli!=180.0 P_pliV.s_dli>=cos(c_rli)
111             0.0                    c_rli!=180.0 P_pliV.s_dli<cos(c_rli)
112             1.0                    c_rli==180.0
113
114    When d_rli<=c_rli, the spotlight attenuation transitions smoothly to
115    0.0 at the cutoff angle over an angle d_rli.  The falloff is
116    implementation specific and may be, for instance, linear or cubic,
117    however it must monotonically decrease from (cos(c_rli-d_rli))^s_rli
118    to 0.0.
119
120Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations
121and the Frame Buffer)
122
123    None
124
125Additions to Chapter 5 of the 1.1 Specification (Special Functions)
126
127    None
128
129Additions to Chapter 6 of the 1.1 Specification (State and State Requests)
130
131    TBD
132
133Additions to the GLX Specification
134
135    TBD
136
137Dependencies on SGIX_fragment_light
138
139    If SGIX_fragment_light is not implemented, references to fragment
140    lighting in this document are invalid and should be ignored.
141
142Errors
143
144    GL_INVALID_VALUE is generated if SPOT_CUTOFF_DELTA_SGIX is outside the
145    range [0,90].
146
147New State
148
149    Get Value			Get Command	Type		Initial Value		Attribute
150    ---------			-----------	----		-------------		---------
151    SPOT_CUTOFF_DELTA_SGIX	GetLightfv	1*xR+		0.0			lighting
152
153New Implementation Dependent State
154
155    None
156