Home Forums GAMES在线课程(现代计算机图形学入门)讨论区 作业一的投影矩阵推导问题

Tagged: 

Viewing 2 reply threads
  • Author
    Posts
    • #12780 Score: 0
      竹名茂
      Participant

      目前用webgl写作业。
      作业中near和far的值都为正数,和课程里的不一样。
      推出的矩阵怎么都有问题,百度了一大堆也没啥用。
      推了一下午终于解决了。
      首先把n和f都置反,和课程里的一样。
      但在推导persp->ortho矩阵的时候,因为n和f都是负数,需要n平面的点乘以-n,f平面的中心点乘以-f。
      结果正确了!!!

    • #14700 Score: 0
      DSX
      Participant

      projection << (1 / tan(eye_fov/2 * MY_PI / 180) / aspect_ratio), 0, 0, 0, 0, (1 / tan(eye_fov/2 * MY_PI / 180)), 0, 0, 0, 0, -(zFar + zNear) / (zFar – zNear), (-2 * zFar * zNear) / (zFar – zNear), 0, 0, -1, 0;

      • This reply was modified 2 years ago by DSX.
    • #16019 Score: 1
      fluentcg
      Participant
      1 pt

      我推了下根上面不太一样呢
      假设n,f 还是课中那样定义,都是负数,那么:

      t = -n*tan(theta/2)
      r = -aspect*n*tan(theta/2)
      b = -t
      l = -r

      (theta是eye_fov, aspect是aspect_ratio)

      那么最终投影矩阵应该是:
      (
      -1/(aspect*tan(theta/2)), 0, 0, 0,
      0, -1/(tan(theta/2), 0, 0,
      0, 0, (n+f)/(n-f), 2*n*f/(f-n),
      0, 0, 1, 0
      )

      This post has received 1 vote up.
      • #17672 Score: 0
        xiaofengzi
        Participant

        +1,和我推导的结果一致。

      • #22774 Score: 0
        Recuit
        Participant

        你好,可以请教一下这个矩阵的推导思路嘛,看了课程也不知道怎么从哪儿下手,我用了lecture04中的透视矩阵,绘制出来的三角形很小,所以不知道这个最终的透视矩阵应该推导

Viewing 2 reply threads
  • You must be logged in to reply to this topic.