Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 作业1中的get_view_matrix得到的矩阵要应用到model一次吗 Tagged: 作业一,透视矩阵参数 This topic has 2 replies, 2 voices, and was last updated 3 years, 11 months ago by YangPeixin. Viewing 1 reply thread Author Posts 2020年12月28日 at 下午3:48 #7523 Score: 0 xxParticipant Karma: 1 pt r.set_model(get_model_matrix(angle)); r.set_view(get_view_matrix(eye_pos)); 这里要写成这样吗?或者在get_model_matrix里面左乘一个view矩阵 r.set_model(get_model_matrix(angle)); r.set_model(get_view_matrix(eye_pos)); r.set_view(get_view_matrix(eye_pos)); 2021年1月2日 at 下午7:05 #7537 Score: 0 YangPeixinParticipant 作业框架里的投影函数给定了一组实参 r.set_projection(get_projection_matrix(45, 1, 0.1, 50)); 就是默认model已经应用了view变换到正确的观测位置,所以不用多此一举了。 2021年1月2日 at 下午9:37 #7538 Score: 0 YangPeixinParticipant 更正一下,模型的view变换是在光栅化器类的rasterizer.cpp里的draw函数实现的 Eigen::Matrix4f mvp = projection * view * model; …… Eigen::Vector4f v[] = { mvp * to_vec4(buf[i[0]], 1.0f), mvp * to_vec4(buf[i[1]], 1.0f), mvp * to_vec4(buf[i[2]], 1.0f) }; set_model()、set_view()的作用只是为光栅化器类传入变换矩阵参数,不执行具体的变换操作 Author Posts Viewing 1 reply thread You must be logged in to reply to this topic. Log In Username: Password: Keep me signed in Log In