【问题标题】:Map image to irregular polygon?将图像映射到不规则多边形?
【发布时间】:2011-06-13 22:43:45
【问题描述】:

假设用户在 iphone 上点击 4 个点,定义了一个不规则的 4 边多边形(在 2d 空间中)。有没有办法在不使用 OpenGL 的情况下将(可能高度扭曲的)图像映射/拟合到这个形状上?

类似:

是我唯一的选择以某种方式计算我的不规则 4 边形状所在的 3d 空间(基于点击的 2d 点所在的位置),在该空间中创建一个 OpenGL 平面,并将我的纹理平坦地映射到它吗?似乎应该有一个更简单的方法......

提前致谢。

更新:进入 OpenGL 之后,我就快到了……但我仍然无法让纹理正确扭曲。三角测量似乎弄乱了纹理映射:

【问题讨论】:

    标签: iphone ios opengl-es transform textures


    【解决方案1】:

    我无法完全回答您的问题,但我想说的是,您无需考虑任何转换/映射到 3D 的问题。使用 OpenGL,您可以轻松地绘制 2D 形状并根据需要映射纹理。不需要任何花哨的数学或转换。它并不比绘制一个矩形更复杂。 OpenGL 并不关心你的 4 面形状实际上不是矩形。

    【讨论】:

    • 啊,我没想到 OpenGL 可以作为 2D 绘图的解决方案 - 谢谢 Andrew。我试试看……
    • 经过一番搜索后,我能找到的都是关于将纹理映射到平面矩形或某种类型的图元的教程——任何我可以学习如何实现我所需要的转换类型的想法寻找? (除了阅读整本红皮书)?
    • 做你想做的事情的过程与矩形完全一样。设置四个顶点来表示您的形状,设置四个 UV 点来表示您的矩形纹理的每个角,然后瞧——OpenGL 将挤压和拉伸您的纹理以填充您的形状。 (抱歉含糊不清,但我不熟悉 iPhone 上的 OpenGL,所以我无法提供示例代码。OpenGL 的 iPhone 实现是否适用于 glBegin/glEnd 等或缓冲区?)
    • 再次感谢您的帮助,安德鲁。我花了一整天时间来熟悉openGL,我快要破解它了。现在,我的模型的三角剖分(显然在 opengl es 中是必需的)真的弄乱了我的纹理映射......twitpic.com/3t278p,但如果我能弄清楚这一点,我就明白了!另外,我在规范 khronos.org/opengles/sdk/1.1/docs/man 中没有看到 glBengin/glEnd
    猜你喜欢
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 2014-05-29
    相关资源
    最近更新 更多