所以我在 Ogre3D 中创建了一个模型,这个模型由许多任意旋转和位置的三角形组成。我想像许多建模程序一样“展开”模型,以便所有三角形都映射到 2d (x,y) 但三角形大小保持不变。这是用于应用贴花。必须保持三角形大小的原因,以便在应用纹理时不会有任何拉伸。
这是我正在考虑的方向,但我无法将其可视化并实现正确的算法:
//Verticies will have a converted bool;
func( triangle x):
for each of x's vertices:
map to x,y coordinates if not converted;
check other triangles for common vertex if so call func(common_tri);
一旦返回,将有所有三角形的转换版本,以便它们全部展开并放置在纹理上,我遇到的问题是映射到 x,y 空间。我不确定如何将 3d 空间中的三角形转换为 2d 空间,以便它保持其所有属性(例如从倾斜视图到表面的垂直视图)任何帮助将不胜感激。