Eigen::Matrix4f get_view_matrix(Eigen::Vector3f eye_pos)//把眼睛位置移到原点
{
Eigen::Matrix4f view = Eigen::Matrix4f::Identity();
Eigen::Matrix4f translate;
translate << 1, 0, 0, -eye_pos[0], 0, 1, 0, -eye_pos[1], 0, 0, 1,
-eye_pos[2], 0, 0, 0, 1;
view = translate * view;
return view;
}
函数中有两个Matrix4f:view和translate。其中view就是个单位矩阵,感觉自始至终没发挥什么作用,就是和translate乘了一下。那么为啥不能直接return translate呢?或者view<<1, 0, 0, -eye_pos[0], 0, 1, 0, -eye_pos[1], 0, 0, 1,-eye_pos[2], 0, 0, 0, 1;再直接return view(不设置translate)呢?
感觉view和translate好像其中之一是多余的,不知道它们是否还有相关的联系、或者预留的功能?这可能是我没有理解到位的地方,谢谢!