2010-10-17 77 views
6

我正在尝试使用OpenGL创建一个3D游戏。我有一个非常基础的世界,现在正在研究角色。我想将纹理映射到椭圆形的头部。我如何进行映射?我知道如何映射到平坦的表面。我想知道法线是否可以用来帮助,但我从来没有这样做过,当我搜索谷歌我没有任何运气。如何纹理贴图到曲面上?

我打算以编程方式完成此操作,并且如果这样做有任何区别,则不使用Blender或Maya。

回答

1

我从你的帖子中猜测你对几何体很好?

对于一般情况下的自动映射,您的猜测是一个好主意 - 从每个顶点开始,然后按照正常向外的方向操作,直到打到明确定义的外部基元,然后从中向内复制纹理位置。

在这种情况下,我认为关键在于如何生成几何图形。如果您正在创建8个16点的环,有效地在外部循环中循环一个循环,并在内部循环中循环一个循环,则可以同时迭代u和v以获得映射。你会得到一些不规则大小的多边形,并且地图在两极处变得很麻烦,但是脸部周围的区域工作得很好。

如果您想在所有区域中使用更多相同大小的多边形和可靠的映射,请使用超级镶嵌立方体(例如,每个曲面的8x8四边形网格而不是一个网格),并将纹理坐标映射到任何有意义的方式按照立方体的网络来思考。然后通过计算从中心到每个点的矢量并将点移动到距中心的球的半径,将立方体变形为球体。最后,通过不同的方式缩放不同的坐标轴,将球体变形为椭圆形。