UV Map的算法是怎样的?该如何解决

UV Map的算法是怎样的?
将一个三维曲面展开到平面上,以实现UV贴图映射的算法到底是怎样实现的?
比如UV   Maper和Dx的UVAtlas工具的实现算法是如何的?

------解决方案--------------------
从数学的角度上说,三维曲面上的点 z = f(x, y)
是关于x和y两个变量的函数
你也可以写成 z = f(u, v )
uv map不是一种固定的方式,有多种方式
z=f(u,v)的任何一种表达式都可以理解成为一种uv map的方式

从拓扑的角度上, 三维的曲面只要和平面具有同质的关系, 也就是他们之间存在一一映射的关系的话,每个映射关系都可以理解成为一种uv map


------解决方案--------------------
理解成 坐标对应坐标就可以了!比方说 正方体的一个面 的四个顶点可以对应 纹理的四个顶点!
------解决方案--------------------
最常用的一种解决方法是求平面的坐标基(Axis Base)
其实说简单点,就是将3维顶点数据投影到(纹理坐标)平面上

代码的话,可以参考quake3中的ComputeAxisBase