我想创建一个着色器来勾勒 2D 几何图形。我正在使用 OpenGL ES2.0。我不想使用卷积过滤器,因为轮廓不依赖于纹理,而且速度太慢(我尝试将纹理几何体渲染到另一个纹理,然后使用卷积着色器绘制它)。我也尝试过 2 次通过,第一次是单色超比例几何体来表示一个 oultine,然后在顶部进行正常绘图,但这会导致不同的厚度或未对齐的轮廓。我正在研究 cel-shading 中的剪影是如何完成的,但它们都是使用法线和灯光计算的,我根本不使用。
我将 Box2D 用于物理,并且具有带有多个固定装置的“可破坏”对象。在任何时候都可以分解对象(删除夹具),我希望轮廓跟随新的外部计数器。我正在使用与固定装置的顶点、预设纹理坐标和用于绘制三角形的索引相匹配的顶点缓冲区进行绘图。当一个夹具被移除时,它在索引缓冲区中的相关索引被设置为 0,因此不再在那里绘制三角形。下图显示了一个完整完整的对象的外观。红点是顶点位置(未显示纹理),黑线是固定装置,蓝线显示三角形绘制方式的分离。灰色轮廓是我希望轮廓在任何情况下看起来的样子。
此图像显示了删除了一些固定装置的同一对象。
这可以在顶点着色器中(或与其他简单方法结合使用)吗?任何帮助,将不胜感激。
谢谢 :)