Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
直觉上我会说是的,因为否则这整个“遵循 GLSL 规范”的事情并没有那么大的意义。不过,我没有在任何地方明确提到这一点。在代码中,我问是否
glm::someType something{...}; (float*)&something === glm::value_ptr(something)
(当然不是 float* 使用 double 或 half 变体时,但你明白了)。
“遵循 GLSL 规范”的事情并没有那么大的意义。
GLSL 没有指定内存布局。它仅仅定义了各种类型的词汇结构,比如它们有哪些元素。GLM 遵循相同的词法结构,但它可能遵循最适合它的内存布局。
请注意,GLM 和 GLSL 之间的唯一接口是 glUniform 和 glVertexAttrib[Pointer] 调用,它们的内存布局是众所周知的。只要 GLM 与这些合作,一切都很好。