什么是';f';在OpenGL函数中的平均值(如glRotatef)?

什么是';f';在OpenGL函数中的平均值(如glRotatef)?,opengl,Opengl,实际上,OpenGL(至少是PyOpenGL)中的每个函数的末尾都有一个f,比如glRotatef和glColor3f等等,但我不知道它是什么意思。它是否像默认情况下使用单精度浮点数的1.0f一样工作 当我在这里时(如果允许我问两个问题),glColor3f和glColor3fv之间有什么区别?f告诉函数需要一个float。因此,如果有一个i,告诉函数将需要一个int。v表示一个向量,因此glColor3fv需要一个“浮点向量”,即一个浮点数组 这清楚地反映在的文档中 规范中更明确地解释了格式:

实际上,OpenGL(至少是PyOpenGL)中的每个函数的末尾都有一个
f
,比如
glRotatef
glColor3f
等等,但我不知道它是什么意思。它是否像默认情况下使用单精度浮点数的
1.0f
一样工作


当我在这里时(如果允许我问两个问题),
glColor3f
glColor3fv
之间有什么区别?

f
告诉函数需要一个
float
。因此,如果有一个
i
,告诉函数将需要一个
int
v
表示一个向量,因此
glColor3fv
需要一个“浮点向量”,即一个浮点数组

这清楚地反映在的文档中

规范中更明确地解释了格式:

最后一个
v
字符(如果存在)表示该命令使用指向值数组(向量)的指针,而不是一系列单独的参数

通常,命令声明的形式为

rtype Name{∈1234}{∈ b s i i64 f d ub us ui ui64}{∈v}
rtype
是函数的返回类型。大括号({})包含一系列类型描述符(见下表),其中一个被选中。∈ 表示没有类型描述符

如果没有字母,则显式给出参数的类型。如果最后一个字符不是
v
,则
N
由数字1、2、3或4给出(如果没有数字,则参数的数量是固定的)

如果最后一个字符是
v
,则只存在
arg1
,它是指示类型的
N
值数组

+------+----------------------------------+
| Type | Descriptor Corresponding GL Type |
+------+----------------------------------+
| b    | byte                             |
| s    | short                            |
| i    | int                              |
| i64  | int64                            |
| f    | float                            |
| d    | double                           |
| ub   | ubyte                            |
| us   | ushort                           |
| ui   | uint                             |
| ui64 | uint64                           |
+------+----------------------------------+

∈ 符号的意思是“是……的一个要素”


同样的原理也适用于各种情况,例如
GL\u RGBA32F
vs
GL\u RGBA8I
。这不是OpenGL特有的,各种库使用它期望或返回的类型的前缀。

你看了吗?我没有;我不知道它可以没有后缀,所以我没有那样看。谢谢你的指点!原来我的猜测是对的哈哈哈!这正是我要找的,而且链接页面非常棒useful@polarisfox64:如果您想知道为什么所有这些都是必需的,OpenGL是一个C API,C没有函数重载。。。
+------+----------------------------------+
| Type | Descriptor Corresponding GL Type |
+------+----------------------------------+
| b    | byte                             |
| s    | short                            |
| i    | int                              |
| i64  | int64                            |
| f    | float                            |
| d    | double                           |
| ub   | ubyte                            |
| us   | ushort                           |
| ui   | uint                             |
| ui64 | uint64                           |
+------+----------------------------------+