【问题标题】:OpenGL selection areaOpenGL选择区域
【发布时间】:2018-05-08 07:12:57
【问题描述】:

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

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

  1. 实现选择区域的最佳方式是什么?
  2. 替代选项,优点和缺点。

编辑:如果有影响,这将移动到另一个纹理上。

【问题讨论】:

  • 您好,欢迎来到 SO。看来您的第 2 点是题外话,因为它要求提供场外资源。对于问题:如果您在世界空间中有与平面的交点,则可以在片段着色器中绘制圆而无需任何纹理投影。只需计算从当前片段到交点的距离。如果它比圆圈大小更接近,则对其着色,否则仅显示平面。
  • 这对我来说很有意义。解释得很好。

标签: opengl textures lwjgl projection


【解决方案1】:

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

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

float dist = length(current_ws - intersection_ws);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 2013-01-10
    • 1970-01-01
    • 2014-05-23
    • 2011-11-09
    • 1970-01-01
    相关资源
    最近更新 更多