最小透视矩阵的求法

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

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

最小透视矩阵的求法

 

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

最小透视矩阵的求法

 

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

 

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

最小透视矩阵的求法

 

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

https://github.com/bennychao/commonlib

 

 

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

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

最小透视矩阵的求法