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個着色器來覆蓋所有情況? –