我是否需要这些 OpenGL 函数末尾的"3f"?



好的,所以我正在尝试用C++编写一些代码,并尝试像一些疯狂的幼儿一样尝试和修补OpenGL。但问题是,每次你尝试调用顶点或设置颜色时,我都会绊倒3f你必须写glColor3fglVertex3f

例如在这个三角形中,

glBegin(GL_TRIANGLES);
glColor3f(0.4,0.4,0.4,0.4)
glVertex3f(x,y,z)
glVertex3f(x,y,z)
glVertex3f(x,y,z)

现在我本可以不去努力并写道:

glBegin(GL_TRIANGLES);
glColor(0.4,0.4,0.4,0.4)
glVertex(x,y,z)
glVertex(x,y,z)
glVertex(x,y,z)

你看没有3f没有人向我解释为什么在那里。

请有人告诉我这个3f是什么意思。我认为这就像一些十六进制或使 63 仍然没有任何意义的东西

由于 OpenGL 是一个 C API,并且在 C 中没有函数重载,但 OpenGL 希望提供直接以特定格式提供数据的能力,因此这些函数具有不同的参数类型,具有不同的命名版本。

例如 glVertex

如果你真的可以编译一个裸glVertex,它是其他版本之一的快捷方式,但我不相信这是每个规范,所以你可能不应该使用它。

最新更新