Opengl es OpenGL ES浮点支持的混合模式
有没有办法检测OpenGL ES 2/WebGL中的驱动程序是否支持浮点目标混合?在某些移动设备上,GLDraweElements对启用混合的浮点纹理抛出GL_无效_操作 由于没有任何扩展保证浮点帧缓冲区支持,因此我按如下方式检查它:Opengl es OpenGL ES浮点支持的混合模式,opengl-es,Opengl Es,有没有办法检测OpenGL ES 2/WebGL中的驱动程序是否支持浮点目标混合?在某些移动设备上,GLDraweElements对启用混合的浮点纹理抛出GL_无效_操作 由于没有任何扩展保证浮点帧缓冲区支持,因此我按如下方式检查它: glGenTextures(1, &texture_test); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, texture_test); glTexImage2D(GL_TEXTU
glGenTextures(1, &texture_test);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texture_test);
glTexImage2D(GL_TEXTURE_2D, 0, opengl_es_2 ? GL_RGBA : GL_RGBA32F, 1, 1, 0, GL_RGBA, GL_FLOAT, NULL);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glGenFramebuffers(1, &fbo_test);
glBindFramebuffer(GL_FRAMEBUFFER, fbo_test);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture_test, 0);
fbo_test_status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
bool floating_point_supported = (fbo_test_status == GL_FRAMEBUFFER_COMPLETE);
但这似乎并不能保证混合支持。我可以在启用混合的情况下绘制一些东西并检查错误状态,但我想知道是否有更优雅的方法。OpenGL ES 2.0本机根本不支持浮点渲染-它仅通过扩展在某些平台上可用 浮点仅在OpenGL ES 3.2中正式可用 因为没有扩展保证浮点帧缓冲区支持 除了这两个,当然