Name
SGIS_point_line_texgen
Name Strings
GL_SGIS_point_line_texgen
Version
Last Modified Date: April 3, 1999
Author Revision: $Header: //depot/main/doc/registry/extensions/SGI/point_line_texgen.spec#4 $
Number
213
Dependencies
OpenGL 1.1 is required.
Overview
This extension adds two texture coordinate generation modes, both
which generate a texture coordinate based on the minimum distance
from a vertex to a specified line.
New Procedures and Functions
None
New Tokens
Accepted by the parameters of TexGeni, TexGenf, TexGend,
TexGeniv, TexGenfv, and TexGendv:
EYE_DISTANCE_TO_POINT_SGIS 0x81F0
OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1
EYE_DISTANCE_TO_LINE_SGIS 0x81F2
OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3
Accepted by the parameters of TexGeniv, TexGenfv, and TexGendv:
EYE_POINT_SGIS 0x81F4
OBJECT_POINT_SGIS 0x81F5
EYE_LINE_SGIS 0x81F6
OBJECT_LINE_SGIS 0x81F7
Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
If TEXTURE_GEN_MODE indicates OBJECT_DISTANCE_TO_POINT_SGIS, then the
generating function for the coordinate indicated by is
g = || V' - P ||
where
P is a point (px/pw, py/pw, pz/pw)
V' is (xo/wo, yo/wo, zo/wo)
In other words, g is the distance in object coordinates from the
vertex to P.
xo, yo, zo, and wo are the object coordinates of the vertex.
P is specified by calling TexGen with set to OBJECT_POINT and
pointing to an array containing px, py, pz, and pw, respectively.
If TEXTURE_GEN_MODE indicates EYE_DISTANCE_TO_POINT_SGIS, then the
generating function for the coordinate indicated by is the
same as above, but P, D, and V' are redefined as:
P is a point (px'/pw', py'/pw', pz'/pw') where
|px|
|py|
(px', py', pz', pw') = M |pz|
|pw|
V' is (xe/we, ye/we, ze/we)
In other words, g is the distance in eye coordinates from the
vertex to P.
xe, ye, ze, and we are the eye coordinates of the vertex.
P is specified by calling TexGen with set to EYE_POINT and
pointing to an array containing px, py, pz, and pw, respectively.
If TEXTURE_GEN_MODE indicates OBJECT_DISTANCE_TO_LINE_SGIS, then the
generating function for the coordinate indicated by is
g = || O - (O (dot) D') * D' ||
where
P is a point (px/pw, py/pw, pz/pw)
D is a vector (dx, dy, dz)
D' is the normalized form of D
V' is (xo/wo, yo/wo, zo/wo)
O = V' - P
In other words, g is the distance in object coordinates from the
vertex to the line defined by point P and direction D.
xo, yo, zo, and wo are the object coordinates of the vertex.
P and D are specified together by calling TexGen with set
to OBJECT_LINE and pointing to an array containing px, py,
pz, pw, dx, dy, and dz, respectively.
If TEXTURE_GEN_MODE indicates EYE_DISTANCE_TO_LINE_SGIS, then the
generating function for the coordinate indicated by is the
same as above, but P, D, and V' are redefined as:
P is a point (px'/pw', py'/pw', pz'/pw') where
|px|
|py|
(px', py', pz', pw') = M |pz|
|pw|
D is a direction vector (dx', dy', dz') where
-1
(dx', dy', dz') = (dx, dy, dz) M
u
and M is the upper leftmost 3x3 matrix taken from the
u
modelview matrix.
V' is (xe/we, ye/we, ze/we)
In other words, g is the distance in eye coordinates from the
vertex to the line defined by point P and direction D.
xe, ye, ze, and we are the eye coordinates of the vertex.
P and D are specified together by calling TexGen with set
to EYE_LINE and pointing to an array containing px, py,
pz, pw, dx, dy, and dz, respectively.
Additions to Chapter 3 of the 1.0 Specification (Rasterization)
None
Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
and the Frame Buffer)
None
Additions to Chapter 5 of the 1.0 Specification (Special Functions)
None
Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
None
New State
Initial
Get Value Get Command Type Value Attrib
--------- ----------- ---- ------- ------
EYE_POINT_SGIS GetTexGeniv 4 x R {0,0,0,1} texture
OBJECT_POINT_SGIS GetTexGeniv 4 x R {0,0,0,1} texture
EYE_LINE_SGIS GetTexGeniv 7 x R {0,0,0,1,0,0,1} texture
OBJECT_LINE_SGIS GetTexGeniv 7 x R {0,0,0,1,0,0,1} texture