OpenGL选择区域

时间:2018-05-08 07:12:57

标签: opengl textures lwjgl projection

enter image description here

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

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

  1. 实施选区的最佳方法是什么?
  2. 替代选择,优点和缺点。
  3. 编辑:如果有所不同,这将移动到另一个纹理。

1 个答案:

答案 0 :(得分:3)

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

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

float dist = length(current_ws - intersection_ws);

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