我正在使用 OpenGL ES 2.0 开发一个 Android 应用程序,我想使用GL_EXT_shader_framebuffer_fetch扩展。
据我了解,我需要先使用#extension
片段着色器顶部的指令启用它,然后才能使用内置变量gl_LastFragData
.
所以这是我的片段着色器:
#extension GL_EXT_shader_framebuffer_fetch : require
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <- Enable the extension
varying highp vec2 textureCoords;
uniform sampler2D currentTexture;
void main()
{
vec4 currentColor = texture2D(currentTexture, textureCoords);
gl_FragColor = currentColor;
}
但是,当我编译着色器时,出现以下编译错误:
Couldn't compile shader: Fragment shader compilation failed.
ERROR: 0:1: '' : GLSL error: extension 'GL_EXT_shader_framebuffer_fetch' is not supported
ERROR: 1 compilation errors. No code generated.
错误非常明确:不 支持此扩展。
我的技术规格:
- 硬件:三星 Galaxy S4
- 安卓版本:5.0.1
- Android API 级别:21
- OpenGL版本(
glGetString(GL_VERSION)
):OpenGL ES 3.0 V@84.0 AU@(CL@)
我有几个问题:
- 我可以做些什么来在我的设备上安装此扩展程序吗?
- 如果没有,我可以在模拟器上安装/使用它吗?
- 是软件问题还是硬件问题?