在swift OpenGL中使用哪种类型的浮点数?

时间:2014-10-27 21:21:31

标签: ios opengl swift

我应该将哪种类型的浮点数用于顶点数据?有很多可供选择。 Glfloat,float,float32等

2 个答案:

答案 0 :(得分:1)

iOS GPU硬件最适合单精度浮点数据。此外,许多更高级别的库(例如GLKit,SceneKit)使用包含32位浮点数据的数据结构用于向量,矩阵等。

至于要使用的类型名称,请记住Swift不进行自动类型转换。因此,在C中你可以在代码中使用float值并将它们传递给OpenGL API,在Swift中你必须隐式地将它们转换为API使用的类型(使用{{ 1}})。最好只使用GLfloat(value)作为您自己的数据,这样您就不必插入转换。

即使您只为Apple平台开发(因为您使用的是Swift),使用GLfloat也可以确保您使用OpenGL规范所需的任何数据类型 - 如果您使用其他类型恰好在今天指定相同数据大小/格式的名称,您依赖于该名称将来发生的意思相同。 (当然,这些特定的Swift数据类型似乎不太可能发生变化,但一般来说最好依赖于显式API契约而不是隐式匹配。)

答案 1 :(得分:0)

对于OpenGL,在这种情况下应该使用OpenGL数据类型 - GLfloat,因为它们保证是每个平台上GL实现使用的正确类型。实际上,GLfloat几乎在所有情况下都是32位单精度浮点格式。