【问题标题】:Texture Coordinate Generation纹理坐标生成
【发布时间】:2013-01-21 23:30:08
【问题描述】:

所以,我想我已经开始掌握这种 3d 的东西了,我现在已经到了需要做一些纹理映射的地步。我的问题是如何创建/获取我的纹理坐标。我对 [u,v] 坐标有所了解,但现在的问题是,“我如何制作它们”?查看我的 .obj 文件,我发现它们有 vt 坐标,我不完全确定它们是如何产生的,但我怎样才能根据自己的喜好操纵它们?

我需要以编程方式进行映射,因为纹理会在整个程序中发生变化。 我目前正在使用 MayaVI,但我觉得使用这些东西有点普遍。感谢您的帮助!

【问题讨论】:

  • 您确定需要更改映射吗?更改纹理并不意味着更改 UV 坐标。事实上,虽然有些形状很容易自动映射,但有些形状却很难。
  • 是的,我必须更改映射,obj 附带的原始坐标完全没用。

标签: 3d coordinates texture-mapping


【解决方案1】:

纹理坐标通常不是生成而是手动分配的。这发生在您选择的使用 GUI 的 3D 建模应用程序中(而不是通过将它们写入 3D 文件)。导出网格时,UV 坐标与其余的网格数据一起导出。

几何体的自动纹理映射很复杂。这并不像将所有三角形展平那么简单。毕竟,您想在展开的面上绘制纹理,因此拥有更大块的连接面(而不是数千个单独的三角形)是必不可少的。您还想避免接缝/隐藏接缝。 有各种工具在某些方面可能做得不错,但我个人更喜欢使用高质量的 3D 建模软件手动打开包装。更多的控制,更好的结果(以一些设计时间为代价)。

对于简单的网格(四边形、立方体、2D 网格地形),您可以在 OBJ 文件或算法中手动完成。

什么可以自动完成?

  • 法线可以从三角形数据和位置生成,几乎所有类型的网格都可以使用简单的算法。 (结果各不相同)
  • 可以根据三角形数据、法线和纹理坐标计算切线。 (效果很好)
  • 双切线(就像切线一样)

纹理坐标的基本变换(移动、旋转和缩放)也可以在顶点着色器中轻松完成。

【讨论】:

  • 有什么程序可以推荐吗?目前我已经玩过免费软件“UVMapper Classic”。它的功能非常简单,因为它允许您以任何您想要的方式展开您的网格,然后保存该网格。从那里您可以获取该网格并将其覆盖在另一个图像上并调整图像以相应地适合网格。是否有程序可以让我获取网格并将顶点/面分配给图像的某些部分?
  • 大多数 3D 建模软件包都包含某种 UV 映射功能。仅举几例:Blender 是许多独立开发者使用的免费建模软件。 3ds MaxMaya 通常用于专业环境,但可能非常昂贵。但市面上有数百种质量和价格各异的工具。
  • 您能否建议一种方法来调整纹理坐标以适合我的图像,而不是让我的图像适合纹理坐标?我的程序将始终制作 2d 纹理,但我无法找到一种方法来重塑纹理以适合我的模型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-04
  • 2011-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多