遇到很多时候,需要把透视矩阵最小化,以达到性能最优。比如要求Camera只能看到一个洞口里的内容这样其它的区域是不需要进行渲染的。

这里自己写了一个求最小透视矩阵的方法。

最小透视矩阵的求法

 

第一步是先求出CameraBox中心的向量vecCB,定义从Box中心到四个顶点的向量,再求出其各自到vecCB的投影向量,晕,也就是Box四个顶点到在向量上的投影点。可以通过以下方法获取到。

最小透视矩阵的求法

 

第二步求出四个投影点离Camera最近的点,求出以vecCBNormal并经过这个最近点的平面P(也就是后面Camera的近平面)

 

第三步求出Box四个顶点到平面A上的投影点,通过以下方法获取。

最小透视矩阵的求法

 

目前已经把以上方法做为BoxCollider的扩展进行了封装,参考代码:

https://github.com/bennychao/commonlib

 

 

第四步求出最小可视面积,即是一个菱形最小包含正方形的方法

以一个最大边为基准做边应该是最小正方形(未证明)

最小透视矩阵的求法

 


相关文章:

  • 2022-01-09
  • 2021-06-03
  • 2021-08-11
  • 2022-01-12
  • 2021-06-15
  • 2021-12-27
  • 2021-05-21
猜你喜欢
  • 2021-05-18
  • 2021-10-18
  • 2021-11-11
  • 2021-06-30
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案