glm을 사용하면서 (VS2010에서) 아주 간단한 오류가 발생했습니다. 나는이 짧은 코드를 가지고 :glm translate matrix가 벡터를 번역하지 않습니다
glm::mat4 translate = glm::translate(glm::mat4(1.f), glm::vec3(2.f, 0.f, 0.f));
glm::vec4 vector(1.f,1.f,1.f,0.f);
glm::vec4 transformedVector = translate * vector;
transformedVector의 결과는 원래 값 (1.F, 1.F, 1.F, 0.f)과 동일합니다. 내가 여기서 무엇을 놓치고 있는지 모른다. 회전 행렬을 시도했는데 정상적으로 작동하고 있습니다. 점이 올바르게 변형되었습니다.
glm::mat4 rotate = glm::rotate(glm::mat4(1.f), 90.f, glm::vec3(0.f, 0.f, 1.f));
glm::vec4 vector(1.f, 1.f, 1.f, 0.f);
glm::vec4 transformedVector = rotate * vector;
좋아, 나는 문제를 발견했다. 벡터가 아닌 꼭지점을 변환하고 싶습니다.이 경우 w 값을 1로 설정해야했습니다.