2012-10-03 60 views
1

我在写游戏。现在有水的渲染。我有一个多边形: enter image description here多边形着色器

所有的场景都渲染成一个纹理,当水的队列到来时,我想将一个复杂的多边形传递给着色器。例如,在屏幕上,多边形是红色的水面和蓝色边框。如何将着色器仅传递到该多边形内的区域?例如,我想将多边形内的所有内容填充为红色。

回答

2

根据你在做什么,它可能会更好地将多边形渲染到纹理本身,并有你的着色器样本。如果多边形的尺寸可预测,则可以使用大致具有这些尺寸的纹理,并将该帧在场景中的位置也传递给着色器。

+0

所以,想法是用一种颜色填充polygin,将该纹理传递给着色器。除了填充多边形的部分以外,所有区域都是透明的。在着色器中,我只需要检查当前像素是否不透明。而已? – Ockonal

+0

这可以工作。为了记忆的缘故,您可能需要纹理为黑白(或灰度)。您可能还想研究一下模版印刷,以便轻松地将您的“水”形与您的......任何水中浮动形状相交。 –