我有一个由右,上,前向和位置矢量组成的4x4相机矩阵。 RAYTRACE我用下面的代码,我在一个教程中的情景,但真的不完全理解它:什么是这个光线追踪公式的焦距和像面距离
for (int i = 0; i < m_imageSize.width; ++i)
{
for (int j = 0; j < m_imageSize.height; ++j)
{
u = (i + .5f)/(float)(m_imageSize.width - 1) - .5f;
v = (m_imageSize.height - 1 - j + .5f)/(float)(m_imageSize.height - 1) - .5f;
Ray ray(cameraPosition, normalize(u*cameraRight + v*cameraUp + 1/tanf(m_verticalFovAngleRadian) *cameraForward));
我有几个问题:
- 我如何才能找到焦点我的光线追踪摄像机的长度?
- 我的图像平面在哪里?
- 为什么
cameraForward
需要乘以这个1/tanf(m_verticalFovAngleRadian)
?