我有一個由右,上,前向和位置矢量組成的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)
?