Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl es OpenGL ES浮点支持的混合模式_Opengl Es - Fatal编程技术网

Opengl es OpenGL ES浮点支持的混合模式

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

有没有办法检测OpenGL ES 2/WebGL中的驱动程序是否支持浮点目标混合?在某些移动设备上,GLDraweElements对启用混合的浮点纹理抛出GL_无效_操作

由于没有任何扩展保证浮点帧缓冲区支持,因此我按如下方式检查它:

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中正式可用

因为没有扩展保证浮点帧缓冲区支持

除了这两个,当然


OpenGL ES 2.0根本不支持浮点渲染-它仅在某些平台上通过扩展提供

浮点仅在OpenGL ES 3.2中正式可用

因为没有扩展保证浮点帧缓冲区支持

除了这两个,当然


谢谢-不幸的是,我发现这两个扩展不能可靠地表明我测试的设备(WebGL 1、OpenGL ES 2)支持浮点渲染。此外,即使在OpenGL ES 3.2上,对于某些设备,启用混合的渲染对于RGBA32F目标(但对于RGBA16F目标)也会失败。我猜需要一个绘图调用来确定支持度,或者我可以避免移动设备使用RGBA32F通常fp32纹理和帧缓冲区格式比窄格式(fp16或RGB10_A2等宽非规则格式)慢很多。就我个人而言,如果没有其他原因的话,出于性能原因,我会避免使用它…谢谢-不幸的是,我发现这两个扩展并不可靠地表明我测试过的设备(WebGL 1、OpenGL ES 2)支持浮点渲染。此外,即使在OpenGL ES 3.2上,对于某些设备,启用混合的渲染对于RGBA32F目标(但对于RGBA16F目标)也会失败。我猜需要一个绘图调用来确定支持度,或者我可以避免移动设备使用RGBA32F通常fp32纹理和帧缓冲区格式比窄格式(fp16或RGB10_A2等宽非规则格式)慢很多。就我个人而言,如果没有其他原因的话,我会出于性能原因避免它。。。