THREE.js Unschärfe der frame-buffer

Muss ich die Unschärfe für die frame-buffer und ich weiß nicht, wie man die frame-Puffer mit THREE.js.

Möchte ich die Unschärfe für die ganze frame-buffer eher als Unschärfe die einzelnen Texturen in der Szene. Also ich denke, ich sollte Lesen Sie die frame-Puffer und dann Weichzeichnen, anstatt dies zu tun, in shaders.

Hier ist was ich versucht habe:

Anruf bei 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;

Rufen Sie in jedem frame:

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);

Aber framebuffer ist WebFramebuffer {} und rdData ist voll von 0. Tue ich das in der richtigen Weise?

Nicht blur "jede Texturen in der Szene."
Dann, wie sollte ich die Unschärfe für die ganze Szene im detail?
Ich glaube, Sie finden diesen Beitrag aufschlussreich für dein problem: stackoverflow.com/questions/15077762/...

InformationsquelleAutor Ovilia | 2013-03-12

Schreibe einen Kommentar