0
我需要的是通过片段着色器1传递纹理,并将结果传递给片段着色器2.如何通过两个着色器传递纹理?
我知道如何将顶点和片段着色器链接到一个程序中并获取着色器对象。
我不知道如何让着色器1的结果,切换着色器(GLES20.glUseProgram
?),并通过着色器1的结果着色器2.
任何想法怎么办呢?
UPDATE 这是一个例子,我想才达到什么
效果1:
效果2:
我的目标是结合Effect 1和Effect 2 更新2
效果2个功能:
...
uniform float effect2;
vec2 getEffect_() {
float mType = effect2;
vec2 newCoordinate = vec2(textureCoordinate.x, textureCoordinate.y);
vec2 res = vec2(textureCoordinate.x, textureCoordinate.y);
//case 1
if(mType==3.5) {
if (newCoordinate.x > 0.5) {
res = vec2(1.25 - newCoordinate.x, newCoordinate.y); }
}
else
//case 2
...
return res;
}
...
谢谢您的回答。你能看到更新的问题吗? 在这种情况下,您的解决方案是否有用? –
@VitaliGrabovski这是一个简单的问题。总之,你不需要两个着色器程序,FBO甚至RTT。答案现在已更新。 – Sung
如果有10个片段着色器,比如效果1和效果2等3个着色器,该怎么办?我是否需要创建30个着色器来覆盖所有情况? –