unity3d中的Viewport

时间:2021-10-08 15:17:34

Camera属性中有个Viewport Rect,如下图:

unity3d中的Viewport

X、Y为(0, 0)代表左下角,(1, 1)代表右上角;W和H分别是Viewport的宽(Width)和高(Height),摄像机的Aspect参数(下一段提到)由W、H以及窗口的长宽比共同决定。通过设置这4个参数以及深度(Depth),可以实现画中画的效果。

unity3d对摄像机进行了很好的封装,在DirectX的绘制流水线中,有两个很重要的步骤:投影变换和视口变换。这两个步骤中相关参数如下:

unity3d中的Viewport

unity3d中的Viewport

unity3d中的Camera的参数Field of View 对应FovY;两个Clipping Planes的数值对应zn和zf;Aspect由W、H和实际窗口的宽度、高度计算得出:W和H在0-1范围内时,(W * 窗口宽度) / (H * 窗口高度)。