【问题标题】:OpenGL texture mapping to already projected shape?OpenGL纹理映射到已经投影的形状?
【发布时间】:2011-01-02 21:32:58
【问题描述】:

OpenGL 新手...

我有一些非常简单的代码(非 OpenGL)用于围绕单个轴旋转矩形,并将结果向下投影到屏幕坐标。我现在正在尝试使用 OpenGL 将位图映射到生成的形状。为旋转设置动画时,位图的视角会严重扭曲。这是可以预料的吗?有什么我可以做的吗?

我知道我可以使用 OpenGL 来代替整个事情(而且效果很好),但是对于我当前的项目,如果我能解决这个透视问题,上面的方法会更适合我......我是在我将旋转的矩形向下投影到 2D 空间以供 OpenGL 正确映射具有正确透视图的位图之后,我想可能没有足够的信息..?

任何意见将不胜感激。

谢谢, 丹尼尔

澄清: 我正在使用正交投影,并自己进行 3D 计算和投影到 2D。然后我只使用 OpenGL 来渲染带有纹理的结果形状。

【问题讨论】:

  • 使用 glRotatef() 来旋转你的矩形。还要检查您的纹理坐标,它们与顶点坐标无关。我认为您在纹理坐标中使用顶点坐标。没有任何关于它如何寻找你的形象,很难说。 (预计不会失真)。

标签: opengl


【解决方案1】:

如果您自己投影坐标并在 2D 屏幕坐标中进行纹理映射,您将丢失所有投影信息并且纹理会严重扭曲。

您可以通过使用透视纹理映射来解决此问题。存在很多不同的方法来做到这一点。要么编写一个真实的透视纹理映射器,要么伪造并使用一个普通的纹理映射器。

解释其工作原理有点超出了单个问题的范围。我假设您首先阅读了有关透视纹理映射的 wiki 页面并尝试了细分方法:

http://en.wikipedia.org/wiki/Texture_mapping

然后回来询问详细问题..

【讨论】:

  • 非常感谢,会调查并回复。
【解决方案2】:

我找到了以下页面,详细解释了细分方法: http://freespace.virgin.net/hugo.elias/graphics/x_persp.htm

效果很好!感谢 Nils 为我指明了正确的方向。

【讨论】:

    猜你喜欢
    • 2014-12-19
    • 2014-05-09
    • 2014-07-08
    • 2017-12-21
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    • 2013-08-14
    • 2011-05-04
    相关资源
    最近更新 更多