我刚开始从事光线追踪项目。这是一个非常基本的问题:我有世界坐标中的相机位置。如何确定视图平面的位置?说清楚:已经提供了相机信息:我的相机在(0,1,10)指向(0,0,-1),向上方向为(0,1,0)。对于透视图:gluPerspective(45,1.0,0.1,100)。如果将相机位置用作视图平面或视点,我会感到困惑。谢谢。
问问题
1631 次
2 回答
1
您想要 45 fov 和 1 纵横比,这意味着焦距f
是
f = (w/2) / tan(45/2) = (h/2) / tan(45/2)
wherew
和h
是胶片平面的宽度和高度。
如果您的飞机已标准化(在 [-1,1]^2 中)f
,则很简单:
f = 1/tan(45/2)
在右手坐标系中,您的光线原点将是(0,0,f)
。
相机与焦距无关。您可以通过相机变换在世界空间中变换您的光线,或者在相机空间中使用相机的逆变换来变换您的世界。
于 2013-08-11T20:58:14.327 回答
0
我建议您从 Scratchapixel 中查看本课程,它是 CG 编程技术的存储库:
http://scratchapixel.com/lessons/3d-basic-lessons/lesson-6-rays-cameras-and-images/
还:
http://scratchapixel.com/lessons/3d-advanced-lessons/cameras-advanced-techniques/
于 2013-09-04T15:11:39.980 回答