首页 > 解决方案 > 在给定相机位置和向前、向上和向右单位向量的情况下计算地平线的显示坐标

问题描述

我在Scratch中编写了一个简单的过山车模拟器,使用 3d catmull-rom 样条线来创建轨道布局。计算旋转最小化框架,以便表面法线在整个样条曲线中平滑流动。使用每个位置的查看旋转矩阵预先计算相机路径(使用行进方向的单位法线,轨道的表面法线和两者的叉积。这一切都很好,可以在这里查看.

我想添加一个简单的背景,其中地平线以上的任何东西都是蓝色的天空,下面的任何东西都是绿色的陆地,但我在如何计算这个问题上遇到了一个完整的心理障碍。我怀疑我应该将地平线视为一个简单的 3D 平面,其表面法线为 (0,1,0),使用查看矩阵旋转它,然后从结果中创建可见的地平线坐标,但需要一些帮助来了解如何做这个。

任何建议都将非常受欢迎!

标签: mathvector3dplanerotational-matrices

解决方案


我通过使用观察矩阵旋转地平线(0,0,0)相对于相机和平面法线的位置来实现它。这只是将地平线上的一个遥远点投射到屏幕上的情况。


推荐阅读