正交投影矩陣


正交投影

正交投影是將世界空間的物體,映射到一個單位立方體上,然后縮放為單位立方體

// 平移
(left + right)/2 得到平移后的中心點位置,其他面類似
A = 
  1 0 0 -(left + right)/2
  0 1 0 -(top + bottom)/2
  0 0 1 -(far + near)/2
  0 0 0 1

// 縮放
將平移后的立方體縮放為單位立方體(-1,1),2/r-l,使用右手坐標系,z方向為負,-2(f-n)

B = 
  2/(right - left) 0 0 0
  0 2/(top - bottom) 0 0
  0 0 -2(far - near) 0 0
  0 0 0 1

// 相乘
C = B * A

// 最后結果
C = 
 2/(right - left) 0 0 0
 0 2/(top - bottom) 0  0 
 0 0 2/(near-far)   0
 (left+right)/(left-right)  (bottom+top)/(bottom-top)   (near+far)/(near-far)    1   

var m4 = {
  orthographic: function(left, right, bottom, top, near, far) {
    return [
      2 / (right - left), 0, 0, 0,
      0, 2 / (top - bottom), 0, 0,
      0, 0, 2 / (near - far), 0,
 
      (left + right) / (left - right),
      (bottom + top) / (bottom - top),
      (near + far) / (near - far),
      1,
    ];
  }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM