如何在 Android 上启用 OpenGL 扩展 GL_EXT_shader_framebuffer_fetch?
How to enable OpenGL extension GL_EXT_shader_framebuffer_fetch on Android?
我正在使用 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
- Android 版本: 5.0.1
- Android API 等级: 21
- OpenGL 版本 (
glGetString(GL_VERSION)
): OpenGL ES 3.0 V@84.0 AU@ (CL@)
我有几个问题:
- 我可以做些什么来在我的设备上安装这个扩展吗?
- 如果没有,我可以在模拟器上安装it/use吗?
- 是软件问题还是硬件问题?
Is there anything I can do to install this extension on my device?
否;要么 GPU 和驱动支持,要么不支持。
If not, can I install it/use it on an emulator?
如果模拟器支持扩展,那么可以使用它...
Is it a software matter or really a hardware problem?
可能是底层硬件的限制,也可能是驱动程序的限制。从应用程序开发人员的角度来看,两者是不可分割的,所以它有点无关紧要,这才是真正的限制......
我正在使用 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
- Android 版本: 5.0.1
- Android API 等级: 21
- OpenGL 版本 (
glGetString(GL_VERSION)
): OpenGL ES 3.0 V@84.0 AU@ (CL@)
我有几个问题:
- 我可以做些什么来在我的设备上安装这个扩展吗?
- 如果没有,我可以在模拟器上安装it/use吗?
- 是软件问题还是硬件问题?
Is there anything I can do to install this extension on my device?
否;要么 GPU 和驱动支持,要么不支持。
If not, can I install it/use it on an emulator?
如果模拟器支持扩展,那么可以使用它...
Is it a software matter or really a hardware problem?
可能是底层硬件的限制,也可能是驱动程序的限制。从应用程序开发人员的角度来看,两者是不可分割的,所以它有点无关紧要,这才是真正的限制......