我正在将一些OpenGL ES 2.0代码转换为标准桌面硬件,该硬件不支持OpenGL ES 2.0,但只支持标准OpenGL。OpenGL等效于OpenGL ES 2.0的扩展GL_EXT_shader_framebuffer_fetch
该代码使用扩展GL_EXT_shader_framebuffer_fetch
(以前称为GL_APPLE_shader_framebuffer_fetch
),它允许所述片段着色器以通过读取“前”片段颜色:
mediump vec4 lastFragColor = gl_LastFragData[0];
这可以被用来定制做(即可编程)混合。
在OpenGL中有这样的等价物吗?
如果没有,我将不得不渲染到framebuffer纹理,并将此纹理附加到渲染到它的相同片段着色器。
你有什么需要这个,特别是?可能还有其他解决桌面OpenGL问题的方法。例如,我使用这个扩展来写出每片段的深度值,但是你可以直接在OpenGL中做这个,所以我能够使用它来重写我的着色器。 –
是的,这就是我最初需要的原因,在我提出这个问题之后,我可以像你一样解决问题。不管怎么说,还是要谢谢你! – cheeesus
*“如果不是这样,我将不得不渲染帧缓冲质地和重视这种纹理被渲染到它同片段着色器。” * - 这是行不通的,虽然。 –