每周算法:网格勾边之轮廓检测算法

每周算法:网格勾边之轮廓检测算法

在某些情况下需要做网格的轮廓检测,例如ShadowVolume,勾边渲染等,具体算法如下:

假设参考边为uv,u和v是两个端点所有共享边uv的面集合记为sides,则:
1.遍历网格的索引缓存,对每条边构建sides;
2.对每个sides集合,检查dot(normal(side[i]),view),view是视线方向,如果结果中有正有负,则该边为轮廓边,将轮廓边加入一个图结构graph;
3.在graph中使用深度优先算法检测回环,如果有回环就是轮廓.

你可能感兴趣的:(每周算法:网格勾边之轮廓检测算法)