【问题标题】:What are glm's vec1, vec2, vec3, and how/when should I use them?glm 的 vec1、vec2、vec3 是什么,我应该如何/何时使用它们?
【发布时间】:2014-08-29 08:00:31
【问题描述】:

什么是glm::vec2 它的应用是什么?我在 glm 参考资料中找不到它。但是,我可以找到 vec1。这让我认为vec2 是2D,vec3 是3D,等等,但我可能错了。

【问题讨论】:

  • 您在 glm 参考中找不到它?伤心,因为它在那里 :) glm::vec3 : "浮点数的 3 个分量向量。"
  • Drop 和 JBL:我确实知道向量和矩阵是什么——我特意询问 glm 的 vec 类,以及 vec2、vec3 等之间的区别,因为我找不到参考。跨度>
  • 我刚刚在评论中给了你参考链接...

标签: c++ opengl glm-math


【解决方案1】:

GLM 的 vec2 是一个表示 2D 矢量的实用程序类,还有 vec3vec4 类分别可用于 3D 和 4D。

GLM 还提供遵循相同命名条件mat2mat3mat4 的矩阵类。

您可以使用重载的* 运算符将矩阵与矩阵相乘或将矩阵与向量相乘。

有关 OpenGL 中的矩阵和向量的更多信息,您可以参考本教程:opengl-tutorial.org

【讨论】:

  • 通常vec4 中的w 组件是一个标识符(法线或位置),而不是第四维。
  • 是的,但是当您使用 vec4 时,您通常需要精确的“w”,而不是 4 坐标。教程包含更多细节。
【解决方案2】:

您可以在 GLM 的 type_vec.hpp 中看到 vec2/vec3/vec4 类型定义。看看 github repo heretypedef 的别名类型取决于激活的GLM_PRECISION_XXXXXX 宏。 vec2 将是 tvec2 专业化的别名;例如:tvec2<float, highp>tvec2 定义为 herehere

【讨论】:

    猜你喜欢
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 2010-11-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多