所以,我想我已经开始了解这个3D东西了,我现在已经达到了需要做一些纹理映射的地步。我的问题是如何创建/获取我的纹理坐标。我对[u,v]坐标有所了解,但现在问题是“我如何制作它们”?看看我的.obj文件,我发现它们有vt坐标,我不完全确定它们是如何生成的,但我怎么能按照自己的喜好操作呢?
我需要以编程方式进行映射,因为纹理将在整个程序中发生变化。 我目前正在与MayaVI合作,但我觉得使用这些东西有点普遍。谢谢你的帮助!
答案 0 :(得分:3)
通常不会生成纹理坐标,而是手动分配。这种情况发生在您选择的3D建模应用程序中,使用GUI(而不是将它们写入3D文件)。导出网格时,将使用其余网格数据导出UV坐标。
几何体的自动纹理贴图很复杂。它并不像简单地展平所有三角形那么简单。毕竟你想要在未展开的面上绘制纹理,因此拥有更大的连接面(不是数千个单独的三角形)是必不可少的。您还希望避免接缝/隐藏接缝。 有各种各样的工具可以在某些方面做得不错,但我个人更喜欢用高质量的3D建模软件手工打包。更多的控制,更好的结果(以一些设计时间为代价)。
对于简单网格(四边形,立方体,2D网格地形),您可以在OBJ文件或算法中手动完成。
也可以在顶点着色器中轻松完成纹理坐标的基本变换(移动,旋转和缩放)。