OpenGL 选择区域

OpenGL selection area

我目前正在使用 LWJGL,但如果您有 OpenGL 的解决方案,我也可以使用它。

现在,我正在尝试将一个选择区域应用到一个平面上,我可以用鼠标四处移动(就像我上面糟糕的绘图)。我试图让它与平面平齐,这样它就可以越过任何障碍物。我考虑过投影纹理,但我不知道如何实现它。这是解决问题的好方法还是有更好的选择?

  1. 实施选择区域的最佳方式是什么?
  2. 备选方案,优缺点。

编辑:如果有所不同,这将移动到另一个纹理上。

当你已经知道世界中的交点 space 时,有一个相对简单的解决方案不需要投影纹理:

在片段着色器中计算交点和当前片段之间的world-space距离。当两者之间的距离小于所需的圆半径时,则应绘制选择颜色。否则只会绘制法线平面。

float dist = length(current_ws - intersection_ws);

if (dist < circle_radius)
    //Draw overlay
else
    //Draw plane normal