我正在用 WebGL 构建一个棋盘游戏。该板可以旋转/缩放。我需要一种将画布元素 (x,y) 上的单击转换为 3D 空间中的相关点 (x, y, z) 的方法。最终的结果是我想知道 (x, y, z) 坐标,其中包含接触到最接近用户的对象的点。例如,用户点击一个棋子,你想象一条穿过 3D 空间的射线穿过棋子和游戏板,但我想要棋子的 (x, y, z) 坐标在它所在的点感动。
我觉得这一定是一个非常普遍的问题,但我似乎无法在我的谷歌中找到解决方案。必须有某种方法可以将 3D 空间的当前视图投影到 2D 中,以便您可以将 2D 空间中的每个点映射到 3D 空间中的相关点。我希望用户能够将鼠标悬停在板上的空间上,并让斑点改变颜色。