代码改变世界

Flattened Octahedron 雏形实现

2010-05-28 16:20  六水  阅读(335)  评论(0编辑  收藏  举报
先看看做的效果图吧,哈哈
 images/oct-sphere.jpg


关键字:Flattened Octahedron,Spherical Parametrization,Spherical-domain stretch metric,Geometry image,DGP

这做的是把一个正方形贴到球表上面。如下图的左边小图所示,一个正方形可以折成一
个八面体。正方形细分为一个Grid,分辨率为(width*height)
计算每个顶点的uv的时,先把它拍扁了,于每个顶点,取其顶点坐标的x和z值得作为参
数坐标。

把正方形贴到球上的初始结果如上图所示。

为了让贴上去的正方形具有derivative continuity,我们使用flattened octahedron的方
式作为映射参考,使用Spherical-domain stretch metric optimization(一种形变量度优化)
方法,调整每个顶点的位置。最终得到的结果就是上图右边所示的球。结果只有四个顶
点不连续可微。可以看到了,这个贴图还保持了球形的拓扑特点。
 images/flattenoct.jpg


这个flattened octahedron方式, 看了我很长时间才看明白了,汗。参考了很多篇文章
了,文章说的又不够详细,大部分还得靠自己去揣摩。

至于做这个东西有什么用。这个原本是与Spherical Parametrization一起形成一个部分
DGP处理框架的。简单来说,在这个正方形与球的映射过程中,我们可以把保存在球
面的数据采样到一张image里去,也就是所谓的Geometry image。