1

我需要在图像上制作类似运动效果的东西。为此,我需要缩放原始图像并将其绘制在未缩放的原始图像上,并具有一定的透明度。

如何在opengl着色器中做到这一点?

4

1 回答 1

1

你不需要一个特定的着色器,你可以在第二个被缩放的地方绘制 2 个纹理矩形。为了确保 2 个图像之间的混合使用“glColor4f”或在 2 个绘图调用之间使用类似的东西(在第二个绘图调用设置 color4f(1,1,1,.5f) 之前),但不要忘记将其设置回 ( 1,1,1,1) 抽签后。

如果你真的需要在着色器的一次调用中执行此操作:使用最常见的着色器来绘制纹理形状,添加一些“缩放”参数作为输入。然后

vec2 scaledCoordinate = vec2((texCoord.x-.5)/scale + .5, (texCoord.y-.5)/scale + .5)

然后使用这样的东西:

gl_FragColor = mix(texture2D(texture, texCoord), texture2D(texture, scaledCoordinate), .5);
于 2013-03-25T12:14:05.973 回答