【问题标题】:How do you render and image with a camera perspective in OpenGL?如何在 OpenGL 中使用相机透视图进行渲染和图像处理?
【发布时间】:2014-04-17 23:13:43
【问题描述】:

好的,几天前我在 cocos2d 中使用 CCCamera 完成了此操作,这是一个链接: How do you make a CCSprite appear as slanting like the star wars intro?

即将推出的 cocos2d 版本不再有 CCCamera,所以我只剩下通过 OPENGL 以硬核方式完成它。

那么我将如何使用 OPENGL 来做这件事呢?这仅在渲染时适用于每个图像或精灵。

【问题讨论】:

  • 在不了解 opengl 的情况下,要包含所有内容的回复将花费太多时间来编写。我建议看这个教程:open.gl/transformations
  • 感谢您的教程。

标签: opengl-es cocos2d-iphone


【解决方案1】:

这种相机设置在 OpenGL 中称为透视投影。精灵中的“倾斜外观”是由于几何体的透视划分。

在固定功能的情况下,您可以使用该功能 gluPerspective(45.0, float(Width)/float(Height), 0.1, 100.0)

查看this Python example 了解更多详情,将立方体替换为矩形。

建议使用可编程流水线。 可以找介绍here

关于how to implement perspective projection in shader的非常好的教程

【讨论】:

    【解决方案2】:

    来自 Cocos2d 的人向我指出了一个简单的解决方案。这是为了覆盖 draw/visit 方法并放入 OpenGL 代码来解决问题。

    -(void)visit
    {
      kmGLPushMatrix();
      kmGLRotatef( 45.0f, 1.0f, 0.0f, 0.0f );
      [super visit];
      kmGLPopMatrix();
    }
    

    我对一个特定的节点(Sprites)进行了子类化,现在一切都按计划进行。 但我很欣赏并完全同意@Raxvan 和@Bansal 的回答。

    我现在正在深入研究必不可少的 OPENGL 编程。所以我不会过多依赖游戏引擎。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-13
      • 2011-10-19
      • 2018-05-28
      • 1970-01-01
      相关资源
      最近更新 更多