我们正在XNA中编写2D游戏。现在我们有了定义我们关卡元素的多边形。它们被三角化以便我们可以轻松地渲染它们。现在我想编写一个将多边形渲染为轮廓纹理的着色器。所以在多边形的中间,会看到纹理,并且在边界上它应该以某种方式发光。2D多边形的阴影边界不同
我的第一个想法是沿着多边形行走,并在每条具有特定纹理的线段上绘制四边形。这可行,但在纹理被强制重叠的小角落看起来很奇怪。
我的第二种方法是用多边形中的某种法线标记所有边界顶点。将它传递给着色器可以在三角形的边缘上插入法线,我可以使用插值的“法线”作为着色的值。我还无法测试它,但会起作用吗?三角剖分的一个特殊性质是所有的顶点都在边界上,所以在多边形内没有顶点。
你们对我想达到的目标有更好的想法吗?
这里是什么样子,现在与四解一个画面:
怎么样使用第二渲染过程添加晒黑?如果你只是使用外部顶点,你的边框将不会是统一的。 – djmj 2012-04-24 18:30:54
@djmj好主意。我不确定你会这样做吗?你能不能详细解释一下?第二个renderpass的想法是什么?我如何获得到边界的距离? – Nicholas 2012-04-24 18:54:07