在OpenGL中绘制3D长方体并旋转它



我试图通过点击其中一个角点来绘制一个3D长方体,然后根据用户提供的尺寸扩展它,然后围绕任何轴旋转它。但是,我不确定如何在鼠标单击后指定(x, y, z)元组,因为输出窗口是2D的。而且,我不明白如何把这个点延伸成一个长方体。

你想要的叫做3D拾取。通常,这是使用Raycasting来完成的。

然而,有一个简单的解决方案(具有可接受的性能),涉及将场景渲染到具有32位浮点数的帧缓冲区上,用于R/G/B值。

在着色器中,您使用该像素的x, y和z坐标作为颜色值。

然后,当用户单击某个位置时,您只需读出像素颜色以获得其位置。

最新更新