Home Forums GAMES在线课程(现代计算机图形学入门)讨论区 作业1中的get_view_matrix得到的矩阵要应用到model一次吗

Viewing 1 reply thread
  • Author
    Posts
    • #7523 Score: 0
      xx
      Participant
      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));

    • #7537 Score: 0
      YangPeixin
      Participant

      作业框架里的投影函数给定了一组实参
      r.set_projection(get_projection_matrix(45, 1, 0.1, 50));
      就是默认model已经应用了view变换到正确的观测位置,所以不用多此一举了。

      • #7538 Score: 0
        YangPeixin
        Participant

        更正一下,模型的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()的作用只是为光栅化器类传入变换矩阵参数,不执行具体的变换操作

Viewing 1 reply thread
  • You must be logged in to reply to this topic.