获取出来的数据和正常画面是上下颠倒的。
即使上一句代码执行了renderer.render(scene, camera),下一句代码立马进行gl.readPixels,有时候也会获取出纯透明无画面的数据。(后续测试情况:iOS上,当开启了抗锯齿antialias参数时,gl.readPixels读取的数据就100%是纯黑色透明。
当关闭了antialias参数时,gl.readPixels就没有问题,除了数据上下颠倒。Android完全没问题)偶尔获取出来的数据有残缺。比如渲染了一张图,readPixels出来的数据显示,图的上半部分不见了,下半部分可见。【暂未找到100%复现的方法】
当前最新版本8.0.37, 安卓也出现gl.readPixels读取不到数据的问题
第一个问题,根据webgl和opengl文档,readPixels的(0,0)点在画面的左下角。
第二个问题,可以先把数据绘制到framebuffer上,然后在readPixels
画面颠倒的问题我也遇到了,参考了这个文档,截完的webGL数据翻转一下Y轴, 再放到canvas上就是正的了,亲测有效。https://developers.weixin.qq.com/community/develop/article/doc/0008c83aebc56873929bdbeaa5f413
麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
问题只出现在iOS上面,目前为止2.9.4基础库及以下版本都存在问题。
第一个问题,你们只需把获取出来的数据生成图片一看就知道上下颠倒了。
第二个问题可以如实复现。
第三个问题目前为止暂时未找到复现的办法。
当开启了抗锯齿antialias参数时,gl.readPixels读取的数据就100%是纯黑色透明。
当关闭了antialias参数时,gl.readPixels就没有问题,除了数据上下颠倒。