计算任意网格的平面 UV 坐标

发布于 2024-12-28 08:12:24 字数 122 浏览 3 评论 0原文

我有从二维形状生成三角形网格的代码。因为在大多数情况下,这些形状在表面上的顶点分布不均匀,所以我在生成 UV 时遇到了问题,这样就不会导致纹理扭曲。任何人都可以推荐一些讨论平面网格上 UV 计算技术的文章、书籍、代码示例吗? 谢谢

I have code that generates triangle mesh from 2d shapes. Because those shapes in most cases have uneven vertex distribution on the surface I have an issue with generation of UVs so that it wouldn't cause texture distortion. Anybody can suggest some articles, books, code samples that talk about techniques of UV calculation on planar meshes?
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吃→可爱长大的 2025-01-04 08:12:24

好的,让我们看看我是否理解你的问题。

  • 你有一个带有顶点 (x_i,y_i,z_i) 的平面网格,因为网格是平面的,你可以找到一个旋转,导致坐标 z_i = 0
  • 所以我假设你的网格也是带有顶点 (x_i,y_i )
  • 其次,您有两个 uv 坐标到网格嵌入平面中的点的映射。
  • 假设您有 uv 坐标 (0,0) 和 (1,1) 的映射
    即(0,0)-> (x_0,y_0)和(1,1)→ (x_1, y_1)
  • 然后您可以将所有顶点平移 -1*(x_0, y_0),然后 (0,0) 映射到网格坐标系上的 (0,0) 并映射到 (1,1)到新坐标 (x_1', y_1')

  • 因此,对于网格中具有新坐标 (x_i', y_i') 的任何顶点,相应的 uv 坐标为: (x_i' / x_1', y_i' / y_1')

希望有所帮助。

ok lets see if I understood your question.

  • You have a planar mesh with vertices (x_i,y_i,z_i), since the mesh is planar you can find a rotation which leads to coordinates with z_i = 0
  • So I'll assume that your mesh is also 2D with vertices (x_i,y_i)
  • Second, you have a mapping of two uv-coordinates to points in the plane into which you mesh is embedded.
  • Lets assume you have a mapping for uv-coords (0,0) and (1,1)
    i.e. (0,0) -> (x_0, y_0) and (1,1) -> (x_1, y_1)
  • you can then translate all your vertices by -1*(x_0, y_0), then (0,0) maps to (0,0) on the meshes coord system and (1,1) maps to a new coord (x_1', y_1')

  • So for any vertex in your mesh with new coords (x_i', y_i') the corresponding uv-coordinate is: (x_i' / x_1', y_i' / y_1')

Hope that helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文