我正在开发一个 3d 应用程序,目前正在寻找一种将由屏幕空间中的两个点定义的线段投影到三维多边形网格(在我的例子中是三角形网格)上的方法。目标是找到线段与网格边缘的世界空间中的交点。
我只能想到两种方法来做到这一点,但都不是理想的。第一个是以小间隔对线段(在屏幕空间中)进行采样,并在这些间隔处进行光线追踪,以找到光线击中网格的世界空间坐标,但这并不容易给我线的交点用网格边缘分割。
我能想到的另一种方法是以某种方式将网格反向投影到屏幕空间中,找到那里的交叉点(在 2d 中),然后将这些交叉点投影回 3d。这样做的问题是屏幕空间坐标系可能会在线段的第一和第二端点的选择之间发生变化(由于移动相机)。
如果其中任何一个令人困惑,那么这里有一张图片,大致显示了我正在尝试做的事情(白点表示我想要找到的点)。但是,在我的情况下,黄色曲线只是一条线段。
[李云金,等。“使用最小规则和部分显着性进行网格剪裁。” 2005]
很感谢任何形式的帮助。