如何访问WebGLRenderTarget纹理内容

时间:2015-07-12 02:08:40

标签: three.js render-to-texture rendertarget

所以我将场景渲染到纹理然后我需要在js中处理纹理并修改内容或从值数组中创建新纹理。

看起来我需要直接使用WebGL获取WebGL上下文和接口来实现这一目标。有人知道最好的方法吗?

1 个答案:

答案 0 :(得分:4)

我最终只是从渲染器获取webGL上下文并调用gl.readPixels()

var gl = renderer.getContext();
var framebuffer = renderTarget.__webglFramebuffer;
gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
var data = new Uint8Array(renderTarget.width * renderTarget.height * 4);
gl.readPixels(0,0,renderTarget.width,renderTarget.heigh,gl.RGBA,gl.UNSIGNED_BYTE,data);

(renderTarget是THREE.WebGLRenderTarget的一个实例)