【发布时间】:2011-04-12 15:31:00
【问题描述】:
我想完善一个previous question:
如何将球体投影到屏幕上?
(2) 给出了一个简单的解决方案:
屏幕上的近似半径[CLIP SPACE] = 世界半径 * cot(fov / 2) / Z 和: fov = 视场角 Z = z 相机到球体的距离 结果在剪辑空间中,乘以视口大小得到大小(以像素为单位)现在我的问题是我没有 FOV。只有视图和投影矩阵是已知的。 (以及视口大小,如果有帮助的话)
有人知道如何从投影矩阵中提取 FOV 吗?
更新:
这种近似在我的情况下效果更好:
float radius = glm::atan(radius/distance);
radius *= glm::max(viewPort.width, viewPort.height) / glm::radians(fov);
【问题讨论】:
标签: math opengl geometry projection