2011-04-13 54 views
0

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

PS - 我在Java中这样做,但语言在这里是不相关的(它只是OpenGL特定的)。

回答

1
+0

谢谢。你能解释例子d = sqrt(xx²+yx²+zx²)的一部分吗?我了解的其他一切... – 2011-04-13 14:09:34

+0

旋转部分也包含完成的任何缩放。如果您将其设置为只是身份,则任何缩放都会丢失。所以我们要确定一个旋转基矢量的长度(任何旋转基矢量都会这样做),并用它来缩放之前应用的标识。 – datenwolf 2011-04-13 14:28:13

+0

这很有道理。虽然在我的例子中奇怪的是,我只是打印出模型视图矩阵,它全部为0,无论我如何旋转场景。我不会期望......我使用第三方库进行大部分渲染。我不知道它是否正在做一些我不知道的翻译/旋转。 – 2011-04-13 14:32:56

0

我的第一个虽然是使用“gluLookAt”矩阵。

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

我会说,你保持了2D物体的位置,然后采取“眼”或摄像机位置,并设置为二维物体的目标值。它应该让他们面对相机。

+0

你是在暗示我将摄像机移动到所面临的2D对象?如果是这样的话,我不能那样做,因为这会影响场景中的其他物体。基本上,无论摄像机如何面对场景中的其他物体,2d物体都应始终面向前方。 – 2011-04-13 03:27:28