THREE.js le flou de la mémoire tampon de trame

J'ai besoin de flou de la mémoire d'image et je ne sais pas comment pour obtenir le tampon de trame à l'aide de THREE.js.

Je veux le flou de l'ensemble de la mémoire d'image plutôt que le flou de chacun des textures de la scène. Donc je suppose que je devrais lire le tampon de trame et ensuite, le flou, plutôt que de prendre dans les shaders.

Voici ce que j'ai essayé:

Appel lorsque init:

var renderTarget = new THREE.WebGLRenderTarget(512, 512, {
    wrapS: THREE.RepeatWrapping,
    wrapT: THREE.RepeatWrapping,
    minFilter: THREE.NearestFilter,
    magFilter: THREE.NearestFilter,
    format: THREE.RGBAFormat,
    type: THREE.FloatType,
    stencilBuffer: false,
    depthBuffer: true
});
renderTarget.generateMipmaps = false;

Appel dans chaque image:

var gl = renderer.getContext();

//render to target
renderer.render(scene, camera, renderTarget, false);
framebuffer = renderTarget.__webglFramebuffer;
console.log(framebuffer);

gl.flush();
if (framebuffer != null)
    gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
var width = height = 512;
var rdData = new Uint8Array(width * height * 4);
gl.readPixels(0, 0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, rdData);
console.log(rdData);

//render to screen
renderer.render(scene, camera);

Mais framebuffer est WebFramebuffer {} et rdData est plein de 0. Suis-je le faire dans le droit chemin?

  • Qui n'a pas de flou de chacun des textures de la scène."
  • Alors, comment dois-je le flou de l'ensemble de la scène, dans le détail?
  • Je pense que vous trouverez ce post perspicaces à votre problème: stackoverflow.com/questions/15077762/...
InformationsquelleAutor Ovilia | 2013-03-12