将 glm::vec4 转换为 glm::vec3

22
2个回答

38

只需使用vec3构造函数。在此处,版本为0.9.5分支:

glm::vec4 v4(1, 2, 3, 4);
glm::vec3 v(v4);
printf("%s\n", glm::to_string(v).c_str());

并且会输出以下结果:

fvec3(1.000000, 2.000000, 3.000000)


28

在glm中,默认情况下未启用Swizzling,因为它使用的宏可能会导致命名冲突。要启用它:

#define GLM_SWIZZLE
#include <glm/glm.hpp>

在glm中,使用函数进行成分交换:

vec3 v3 = v4.xyz();

参见:http://glm.g-truc.net/0.9.2/api/a00002.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接