OpenGL ES 2.0中可能重疊着色器效果嗎? (不使用FBO)Opengl ES 2.0中的重疊着色器效果
如何在不使用glReadPixels的情況下將着色器的結果與另一個着色器一起使用並再次推送已處理的像素?
下一個僞代碼是什麼我想要實現:
// Push RGBA pixels into the GPU
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, Pixels_To_Render);
// Apply first shader effect
glUseProgram(FIRST_SHADER_HANDLE);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
// Apply the second shader effect sampling from the result of the first shader effect
glUseProgram(SECOND_SHADER_HANDLE);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
// Get the overall result
glReadPixels(......)
是否有你想避免紋理支持FBO的原因?它們提供了一種相對簡單的方法,可以通過運行一個渲染過程完全在GPU上完成此操作,然後從下一個渲染過程中獲取所產生的紋理。這應該適用於幾乎所有的OpenGL ES 2.0設備。 –