dimanche 30 novembre 2014

RaytracerRender.js example with SSAO with black screen


I tried to implement SSAO with the Raytracer example. I wrote the following after the render was initiated:



composer = new THREE.EffectComposer( renderer );
composer.addPass( new THREE.RenderPass( scene, camera ) );

depthTarget = new THREE.WebGLRenderTarget( window.innerWidth, window.innerHeight, { minFilter: THREE.NearestFilter, magFilter: THREE.NearestFilter, format: THREE.RGBAFormat } );

var effect = new THREE.ShaderPass( THREE.SSAOShader );
effect.uniforms[ 'tDepth' ].value = depthTarget;
effect.uniforms[ 'size' ].value.set( window.innerWidth, window.innerHeight );
effect.uniforms[ 'cameraNear' ].value = camera.near;
effect.uniforms[ 'cameraFar' ].value = camera.far;
effect.renderToScreen = true;
composer.addPass( effect );


and in the calling function I wrote:



scene.overrideMaterial = depthMaterial;
renderer.render( scene, camera, depthTarget );
scene.overrideMaterial = null;
composer.render();


I am getting a black screen output.


Please help. Am I missing something? Aren't they portable in a manner where implementation of the SSAO would be free of the renderer utilized?





Aucun commentaire:

Enregistrer un commentaire