PBRT里的相机系统
PBRT中,他定义的NDC坐标系和我们图形学里的不一样。
图形学中NDC是[-1, 1]³;
而PBRT中的NDC如下图:
正交投影
摄像机当前的坐标是原点坐标,正交投影的width和height暂时未知。
这里可以平移-n把n移到原点。
缩放矩阵:
因此正交投影矩阵是:
由于在pbrt中的NDC,左上角是(0, 0, 0),右下角是(1, 1, 0)。
所以y的缩放要取负数。
而且pbrt把正交投影的l r t b的操作放到了ScreenToRaster的矩阵里。
他定义了一个ScreenWindow来代替l r t b。
既然我们要把ScreenWindow的左下角作为原点
那么把左上角平移到原点,再经过scale变换后得到最后的NDC:
那么定义如下矩阵:
最后的再把矩阵放大到Raster的大小:
那矩阵ScreenToRaster就是上面矩阵乘法结果: