我刚刚开始研究光线追踪项目。这里有一个非常基本的问题:我在世界坐标中有摄像头位置。如何确定视图平面的位置? 为了说清楚:已经提供了摄像机信息:我的摄像机位于(0,1,10),指向(0,0,-1),向上方向为(0,1,0)。对于透视图:gluPerspective(45,1.0,0.1,100)。如果将摄像机位置用作视图平面或视点,我会感到困惑。感谢。
答案 0 :(得分:1)
你想要45 fov和1宽高比这意味着焦距f
是
f = (w/2) / tan(45/2) = (h/2) / tan(45/2)
其中w
和h
是电影平面的宽度和高度。
如果您的飞机已标准化(在[-1,1] ^ 2中)f
只是:
f = 1/tan(45/2)
在右手坐标系中,光线原点为(0,0,f)
。
相机独立于焦距。 您可以通过相机变换在世界空间中变换光线,或者使用相机的倒数在相机空间中变换您的世界。
答案 1 :(得分:0)
我建议你从scratchchapixel查看本课,这是一个CG编程技术的存储库:
http://scratchapixel.com/lessons/3d-basic-lessons/lesson-6-rays-cameras-and-images/
也:
http://scratchapixel.com/lessons/3d-advanced-lessons/cameras-advanced-techniques/