【问题标题】:OpenGL 2d drawing facing the user面向用户的 OpenGL 2d 绘图
【发布时间】:2011-04-13 23:00:11
【问题描述】:

我有一个 OpenGL 场景,用户可以在其中旋转相机。我有一些我想始终面对用户的二维形状。我确实有前向矢量,并且确实有应该绘制组件的屏幕点。我不确定解决这个问题的最佳方法 - 我是否应该将形状旋转到前向矢量(我不完全确定如何正确执行)?还是有另一种方法我可以只绘制二维并忽略相机的旋转(也许通过使用正交投影)?任何有助于解决此问题的示例代码将不胜感激。

PS - 我在 Java 中执行此操作,但这里的语言无关紧要(它只是 OpenGL 特定的)。

【问题讨论】:

    标签: opengl


    【解决方案1】:

    【讨论】:

    • 谢谢。您能解释一下示例 d = sqrt( xx² + yx² + zx² ) 的部分吗?我理解的其他一切......
    • 旋转部分还包含任何缩放。如果您将其设置为仅身份,则任何缩放都会丢失。因此,我们正在确定其中一个旋转基向量的长度(任何旋转基向量都可以),并使用它来将标识缩放为之前应用的标识。
    • 这是有道理的。尽管在我的示例中奇怪的是,我只是打印了模型视图矩阵,并且无论我如何旋转场景,它都是 0。我没想到……不过,我在大部分渲染中都使用了 3rd 方库。我想知道它是否正在做一些我不知道的其他翻译/旋转。
    【解决方案2】:

    我的第一个方法是使用“gluLookAt”矩阵。

    http://www.opengl.org/resources/faq/technical/viewing.htm

    我会说,你保持二维对象的位置,然后取“眼睛”或相机位置并将其设置为二维对象的目标值。它应该让他们面对镜头。

    【讨论】:

    • 你是在建议我移动相机以面对二维物体吗?如果是这种情况,我不能这样做,因为这会影响场景中的其他对象。基本上,二维对象应始终面向前方,无论相机如何面向场景中的其他对象。
    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多