【发布时间】:2014-04-24 04:00:37
【问题描述】:
作为一项学习努力,我正在尝试用 C 语言制作一个 OpenGL(3.3+) 程序,但我在模型加载器上遇到了障碍。 我在互联网上找到的关于加载 obj 文件的所有内容都恰好涉及用于存储顶点和法线的 C++ 向量和 GLM 矩阵,但正如您所知,这些抽象都不适用于 C,我宁愿不使用 C++,因为我不知道C++ 和 C++ 不再只是“带有类的 C”,所以我会误用它。
我知道可能有一些 C 库可以提供与向量和矩阵类似的功能,但我正在尝试具体了解模型加载是如何完成的,但我似乎无法理解所有 C++在互联网上四处游荡(再说一次,我对它不是很熟悉)。
所以我想知道的是,从 C 的角度将模型加载到 OpenGL 中的步骤是什么?
【问题讨论】:
-
所以您的问题不在于将向量更改为数组(这很简单),而是在 C 中使用
glm::vec3等? -
是的,完全正确,事实上,我确实有一个使用 malloc 等的简单动态数组结构,但我不知道如何重现 GLM 向量和矩阵。另外,如果有人能解释一下这些东西到底是什么东西,我会很感激的。
-
OpenGL 并不真正关心容器是什么,只要它是顺序的。 IIRC 实际上,您仅将指针与大小一起传递给 GL 服务器,以便将该数据复制到 GPU ram。
-
看起来 GLM 不能从 C 中使用,因为它是 C++“仅标头”库。