GLM - 向量和矩阵是否保证与GLSL对应的内存等效?

时间:2013-02-03 19:19:43

标签: c++ opengl glm-math

直觉上我会说是的,因为否则这整个“遵循GLSL规范”的事情并不会真正有意义。虽然我没有在任何地方明确提到这一点。在代码中,我问是否

glm::someType something{...};
(float*)&something === glm::value_ptr(something)

(当使用双变量或半变量时,当然不会浮动*,但是你明白了。)

1 个答案:

答案 0 :(得分:2)

  

“遵循GLSL规范”事情真的没有那么大意义。

GLSL未指定内存布局。它只是定义了各种类型的词汇结构,比如它们所具有的元素。 GLM遵循相同的词法结构,但它可以遵循任何最适合它的内存布局。

请注意,GLM和GLSL之间唯一的接口是glUniform和glVertexAttrib [Pointer]调用,这些接口的内存布局是众所周知的。只要GLM与那些合作,一切都很好。