2024年3月17日发(作者:)
附录A OpenGL函数简介
OpenGL是国际公认的在计算机中使用广泛、易学易用的三维图形标准,附录A给出了
本教材所用OpenGL函数的简单说明(/documentation/manual/),
供读者查询使用。
m
void glAccum ( GLenum op , GLfloat value );
参数说明:
op 取符号:GL_ACCUM,GL_LOAD,GL_ADD,GL_MULT,GL_RETURN。
value 取一个浮点数,op决定怎样使用value。
功能描述:
按参数op指定的方式,在累积缓冲区中进行如下操作
GL_ACCUM 从当前选定的缓冲区(缺省值为当前的颜色缓冲区)中逐点读取其R、G、
B、A值,该RGBA乘以value加上累积缓冲区中的当前值后,再存入累
积缓冲区中保存。
GL_LOAD 从当前选定的缓冲区中逐点读取其R、G、B、A值,该RGBA乘以value
后,再存入累积缓冲区中保存。
GL_ADD 将value直接加到累积缓冲区中每点的RGBA上。
GL_MULT 略。
GL_RETURN 将累积缓冲区中的RGBA乘以value后,送当前颜色缓冲区中显示。
n, glEnd
void glBegin ( GLenum mode );
参数说明:
mode 取符号:GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP,
GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS,
GL_QUAD_STRIP和 GL_POLYGON。
void glEnd (void );
功能描述:
函数glBegin, glEnd成对出现,用来界定一个或一组类似图形元素顶点数据的开始与
结束,图形元素的类型由mode确定。
GL_POINTS 每个顶点函数glVertex()描述了一个个孤立的顶点数据。
GL_LINES 每对顶点函数glVertex()描述了一直线段的两个顶点数据。
GL_LINE_STRIP 把n个glVertex()描述的顶点连接成一条连续的多笔折线。
GL_LINE_LOOP 把n个glVertex()描述的顶点连接成一封闭的多笔折线。
GL_TRIANGLES 相邻的三个顶点构成一个三角形,多个三角形则两两独立。
GL_TRIANGLE_STRIP 多个顶点定义一三角形带,见图9-8。
GL_TRIANGLE_FAN 多个顶点定义一三角扇形,见图9-8。
GL_QUADS 相邻的四个顶点构成一个四边形,多个四边形则两两独立。
GL_QUAD_STRIP 一组顶点定义一个四边形网格,见图9-9。
GL_POLYGON 一组顶点定义一个凸多边形。
Texture
1
void glBindTexture ( GLenum target , GLuint texture );
参数说明:
target 指定纹理绑定的目标,它只能是GL_TEXTURE_1D, GL_TEXTURE_2D 或
GL_TEXTURE_3D。
texture 一个指定的纹理名称。
功能描述:
该函数把名为texture的新纹理绑定到纹理目标上,该目标以前绑定的纹理自动断开。
4.glBlendFunc
void glBlendFunc ( GLenum sfactor , GLenum dfactor );
参数说明:
sfactor 指定如何计算RGBA的源融合因子,它的9个可取符号为GL_ZERO, GL_ONE,
GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA,
GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA 和
GL_SRC_ALPHA_SATURATE,其缺省值为GL_ONE。其余略。
dfactor 指定如何计算RGBA的目标融合因子,它的8个可取符号为 GL_ZERO,
GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA,
GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA和 GL_ONE_MINUS_DST_ALPHA,
其缺省值为GL_ZERO。其余略。
功能描述:
在RGBA模式下,该函数把源RGBA(新输入的像素值)与目标RGBA(原已存在于颜色缓冲
区中的像素值)融合在一起,并填充在颜色缓冲区中。初始条件下,该融合操作关闭,用
glEnable(GL_BLEND) 和 glDisable(GL_BLEND)分别启动和关闭融合操作。
具体的融合方式约定如下
源颜色与目标颜色、最后的融合颜色分别用(R
s
,G
s
,B
s
,A
s
) 、(R
d
,G
d
,B
d
,A
d
) 、(R
c
,G
c
,B
c
,A
c
) 表
示,这些数据都在0 与 (k
R
,k
G
,k
B
,k
A
) 之间。k
R
,k
G
,k
B
,k
A
的最大值是由显示卡存储器结构决定
的一个数据。
此时的融合操作是源颜色与目标颜色都先进行一个指定的缩放运算(源缩放因子和目标
缩放因子分别用(s
R
,s
G
,s
B
,s
A
) 和 (d
R
,d
G
,d
B
,d
A
)表示,但它们在表A-1中用(f
R
,f
G
,f
B
,f
A
)统一表示),
具体的缩放操作见表A-1;之后两者按照(A-1)式进行融合。
表A-1 源颜色与目标颜色选定的缩放运算
Parameter
GL_ZERO
GL_ONE
GL_SRC_COLOR
GL_ONE_MINUS_SRC_COLOR
GL_DST_COLOR
GL_ONE_MINUS_DST_COLOR
GL_SRC_ALPHA
GL_ONE_MINUS_SRC_ALPHA
(
f
R
,
f
G
,
f
B
,
f
A
)
(0,0,0,0)
(1,1,1,1)
(
R
s
/
k
R
,
G
s
/
k
G
,
B
s
/
k
B
,
A
s
/
k
A
)
(1,1,1,1) −(
R
s
/
k
R
,
G
s
/
k
G
,
B
s
/
k
B
,
A
s
/
k
A
)
(
R
d
/
k
R
,
G
d
/
k
G
,
B
d
/
k
B
,
A
d
/
k
A
)
(1,1,1,1) −(
R
d
/
k
R
,
G
d
/
k
G
,
B
d
/
k
B
,
A
d
/
k
A
)
(
A
s
/
k
A
,
A
s
/
k
A
,
A
s
/
k
A
,
A
s
/
k
A
)
(1,1,1,1) −(
A
s
/
k
A
,
A
s
/
k
A
,
A
s
/
k
A
,
A
s
/
k
A
)
2


发布评论