c++ - 没有 GLkit 的 OpenGL ES。 GLKMatrix 的类似物和纯 OpenGL ES 中的函数

标签 c++ ios opengl-es

我通过互联网上的书籍和指南学习 opengl es 2.0。但!所有示例(如 XCODE 中的标准示例)都有 GLkit。

例如:GLKMatrix4、GLKMatrix3、GLKView类型和函数。

但我必须使用没有 GLKIT 的纯 OpenGL。 OpenGL ES 本身是否有这种类型和功能的类似物,或者我必须自己实现它?

感谢 Andon 的回答。我可以自己为这种类型和函数编写代码,还是这是一项艰苦的工作,也是唯一的选择——使用 GLKIT?

最佳答案

正如@Andon 指出的那样,OpenGL ES 2.0 及更高版本中没有 vector/矩阵数学功能。 (此时你真的不应该再编写 ES 1.1 代码了。)有很多方法可以填补缺失的部分,Apple 的 GLKit 数学库就是其中之一。

您可以为这些函数编写您自己的数学库——这是一个很好的教育练习。 Here's a university course它很好地涵盖了必要的数学知识并显示了等效的 C 代码。

但是,在图形编程世界中,易于理解的代码与在目标设备上快速运行的代码之间通常存在很大差异。因此,虽然教育练习非常适合教育目的,但对于实际工作,您最好还是使用其他人的数学库。 GLM如果您正在使用 C++ 进行跨平台工作,那么它很受欢迎。如果您的目标是 iOS,GLKit 是一个不错的选择——Apple 已经完成了确保它在 iOS 设备上快速运行的工作。 (如果您查看 header ,您会发现许多函数是内联的并使用 ARM NEON vector 指令。)

关于c++ - 没有 GLkit 的 OpenGL ES。 GLKMatrix 的类似物和纯 OpenGL ES 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21201588/

相关文章:

c++ - Qt 包含文件

ios - "No provisioned iOS devices are available with a compatible iOS version"升级后

ios - 我应该如何将多个 BLE 外围设备连接到 iOS 设备?

ios - 是否应该限制允许用户查看激励广告的频率?

iphone - 学习 OpenGL ES 1.x

image-processing - OpenGL ES 着色器将彩色图像转换为黑白红外图像?

android - 使用 opengl 绘制 3D Sprite

c++ - 有效组合算法过时限

c++ - C 和 C++ 编译器如何实现 float 的相等性判定?

c++ hash<string> 有没有办法在 linux 和 windows 中获得相同的值