我在模板缓冲区的帮助下找到了很多关于如何绘制轮廓的材料,比如https://www.opengl.org/archives/resources/code/samples/mjktips/StenciledHaloEffect.html
然而,这次我需要在轮廓上找到顶点,以获得它们的坐标,但是没有找到一种优雅的方法。
我曾经遇到过一种方法,可以解决我对像立方体或球体这样的简单模型的问题。它建议检查共享边缘的两个三角形,如果两个三角形的法线指向相对于摄像机方向的相反方向,则它们共享的边缘位于轮廓上。
上述方法适用于简单模型,如球体或立方体,但不适用于复杂模型,因为它也可能从相机视图中拾取轮廓内部的那些边缘。
总之,我的目标是找到轮廓上顶点的坐标,例如,图像中红线上的顶点,您可以在https://gamedev.stackexchange.com/questions/59361/opengl-get-the-outline-of-multiple-overlapping-objects找到它。
BTW,我是在使用Ogre做的。