0

所以我在让openGL相机做我想做的事情时遇到了一点麻烦。基本上我希望它根据我的键盘输入移动到某个位置,将场景渲染为纹理,然后移回其先前的位置,然后将纹理渲染为四边形。我想要的效果是场景在我的四边形上移动,而四边形保持静止。然而,无论我做什么,四边形本身总是会随着纹理一起移动。

我基本上在做以下事情:

SetMatrices;
gluLookAt(randomposition);
renderSceneToTexture;
gluLookAt(originalPosition)
texturemap my quad/render to screen.

我在这里想念什么?我的渲染代码很好,因为当我不乱用相机时,一切都会正确渲染。

4

1 回答 1

0

您需要在使用之前加载单位矩阵(或您在 中设置的其他规范矩阵SetMatricesgluLookAtgluLookAt将新矩阵与现有模型视图矩阵相乘。

或者,您可以使用推送和弹出矩阵的工作方式:

  • 设置你的矩阵
  • 推模型视图矩阵
  • 看随机位置
  • 将场景渲染到纹理
  • 弹出模型视图矩阵
  • 查看原始位置(可能没有必要)
  • 渲染你的四边形
于 2013-02-15T02:18:47.910 回答