RenderTexture 的 readPixels 返回的数组元素全是0,为什么

cc.loader.loadRes(“img”, cc.Texture2D, function (err, texture) {
let rt = new cc.RenderTexture();
rt.initWithSize(texture.width, texture.height);
rt.drawTextureAt(texture, 0, 0);
let data = rt.readPixels();
console.log(data);
});
代码如上,data数组元素全是0,还有个警告,这是为什么?
[.Offscreen-For-WebGL-095707A0]GL ERROR :GL_INVALID_FRAMEBUFFER_OPERATION : glReadPixels: framebuffer incomplete

1赞

延迟到下一帧再read

我延迟1秒再readPixels也还是这样

你延迟1秒还有这个error么

rt.drawTextureAt这种用法是靠谱的么?以前cocos2dx的rendertexture是需要begin visit end 这样用的。

不知道,百度看别人说这么写的,不知道这接口是不是被遗弃了,API文档里都没提到这个接口。

你这是准备实现什么效果啊。建议新建一个camera 然后把readertexture赋给camera,相机单独绘制你要的画面。再读取像素数据

其实只是想要图片的像素颜色数据,并不要渲染,所以最后干脆用Python处理好导出json给Creator用。

请问一下,怎么用python处理好,然后cocos怎么读取像素?

你搜一下离屏渲染和上屏渲染。应该可以找到你的答案。上屏渲染read就不行。

搜了一下,没发现具体例子,能请大神赐教吗