1

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

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

4

1 回答 1

3

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

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

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

可以自动完成什么?

  • 对于几乎任何类型的网格,可以使用简单的算法从三角形数据和位置生成法线。(有不同的结果)
  • 切线可以从三角形数据、法线和纹理坐标中计算出来。(结果很好)
  • 双切线(就像切线一样)

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

于 2013-01-21T15:17:18.363 回答