我想创建一个着色器概述2D几何体。我正在使用OpenGL ES2.0。我不想使用卷积滤镜,因为轮廓不依赖于纹理,而且速度太慢(我尝试将纹理几何图形渲染为其他纹理,然后使用卷积着色器进行绘制)。我也尝试过2次传球,第一次是单一着色的超尺度几何体来代表一个oultine,然后正常的在上面画,但是这会导致不同的厚度或未对齐的轮廓。我正在研究如何使用cel-shading中的侧影完成,但它们都是使用法线和灯光进行计算的,我根本不使用它们。2D几何轮廓着色器
我使用Box2D的物理学,并与多个灯具“destructable”对象。在任何时候,一个对象可以被分解(夹具被删除),并且我想要轮廓跟随新的外部计数器。 我正在绘制一个顶点缓冲区,该顶点缓冲区与灯具的顶点,预设纹理坐标和绘制三角形的索引相匹配。当一个夹具被移除时,它在索引缓冲区中的相关索引被设置为0,所以没有再绘制三角形了。 下图显示了一个对象完全完好无损时的外观。 红色点是顶点位置(纹理未显示),黑色线条是灯具,蓝色线条表示三角形的绘制方式。灰色轮廓是我希望大纲在任何情况下看起来像。
该图像示出了具有除去几个夹具相同的对象。
这是可能的顶点着色器要做到这一点(或与其他简单的方法组合)?任何帮助,将不胜感激。
谢谢:)
您是否试过这种方法? http://www.codeproject.com/Articles/8499/Generating-Outlines-in-OpenGL –
@MichaelIV我把它当作原始的海报所指的“我正在研究cel阴影中的轮廓是如何完成但他们都是使用法线和灯光计算出来的,我根本不使用它们。“ - 他有2D而不是3D。 – Tommy