【问题标题】:How can I calculate uv coordinates for vertices if I know the vertex coordinate of my texture on a plane如果我知道平面上纹理的顶点坐标,如何计算顶点的 uv 坐标
【发布时间】:2015-07-04 00:52:14
【问题描述】:

我正在尝试在平面上映射纹理,我知道纹理的顶点坐标以及 4 个顶点的坐标。那么如何计算 4 个顶点的 uv 纹理坐标呢?

这是一张图片,向您展示我正在尝试做的事情,

带有网格区域的黄色是我的纹理,它是一个倾斜成该形状的方形纹理。绿色区域是我想要将纹理映射到的平面。我知道点abcd 和点1234 的顶点坐标。

例如,如果我的纹理是这样放置的

这些是所有点的顶点坐标。那么点abcd的uv坐标应该是(-0.5f, -0.5f), (1.5f, -0.5f), (1.5f, 1.5f), (-0.5f, 1.5f)

但是如果纹理像第一张图片一样倾斜,我该如何计算点abcd的uv坐标?

【问题讨论】:

    标签: opengl-es coordinates texture-mapping vertex uv-mapping


    【解决方案1】:

    你想在哪里做这个 CPU 或 GPU?假设 CPU 可以做的是将倾斜平面的顶点投影到绿色平面上。如果您将绿色平面视为具有相机的屏幕,因此具有相关的视图和投影矩阵,您可以将每个点投影到其表面上,然后找到与原点的距离,在您的情况下,该原点位于绿色平面的中间。

    从您的标签看来,您使用的是 OpenGL ES,您使用的是固定函数还是着色器?你用什么数学库? GLM 有 glm::project 和 glm::unproject 基本上是你想要的 here's 一个指向相关信息的链接。

    Here's 一些关于你想要做什么的一般信息,你基本上是想从 3D 投影到 2D,然后在你的飞机上找到相对距离。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-23
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      相关资源
      最近更新 更多