在某些情況下需要做網(wǎng)格的輪廓檢測,例如ShadowVolume,勾邊渲染等,具體算法如下:
假設參考邊為uv,u和v是兩個端點所有共享邊uv的面集合記為sides,則:
1.遍歷網(wǎng)格的索引緩存,對每條邊構(gòu)建sides;
2.對每個sides集合,檢查dot(normal(side[i]),view),view是視線方向,如果結(jié)果中有正有負,則該邊為輪廓邊,將輪廓邊加入一個圖結(jié)構(gòu)graph;
3.在graph中使用深度優(yōu)先算法檢測回環(huán),如果有回環(huán)就是輪廓.