如何将glsl像素着色器应用于纹理?

时间:2018-06-30 09:05:03

标签: opengl glsl textures shader pixel-shader

我有一个纹理,我想将其应用于glsl着色器。有可能吗,怎么办?例如,我想将此glsl着色器应用于我的纹理:

varying vec4 coord;

uniform sampler2D texture;
uniform float opacity;

void main() {
  vec4 col = texture2D(texture, coord.xy);
  col.a *= opacity;

    gl_FragColor = col;

}

1 个答案:

答案 0 :(得分:1)

我会说创建另一个空的并且具有原始纹理相似属性的纹理。将此纹理附加到fbo,然后在着色器中发送fbo和原始纹理。生成您的纹理大小的完整四次通过。从着色器中的原始纹理读取纹理元素,将您的代码从片段着色器中应用,并使用gl_FragCoord将值写入fbo附加纹理。而tge附着的纹理就是您想要的结果。