i'm trying add ssao shader pass earlier fiddle result of: effectcomposer second pass "overwrites" first pass
unfortunately black screen created new fiddle update findings:
creating depthshader , target depth shader render onto:
var depthshader = three.shaderlib[ "depthrgba" ]; var depthuniforms = three.uniformsutils.clone( depthshader.uniforms ); depthmaterial = new three.shadermaterial( { fragmentshader: depthshader.fragmentshader, vertexshader: depthshader.vertexshader, uniforms: depthuniforms } ); depthmaterial.blending = three.noblending; depthtarget = new three.webglrendertarget( window.innerwidth, window.innerheight, { minfilter: three.nearestfilter, magfilter: three.nearestfilter, format: three.rgbaformat } ); creating ssao shader pas , adding composer
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 ); the render loop rendering scene override material set first befor composer rendered
requestanimationframe( animate ); //renderer.clear(); // changed ------------- scene.overridematerial = depthmaterial; renderer.render( scene, camera, depthtarget ); scene.overridematerial = null; composer.render(); a side question came able add rendering of scene depth target composer too?
reason question rendertarget different , override material set. couldnt find way do this, sound reasonable or miss using effect composer here?
found out ssao partially working if set effect.uniforms[ 'onlyao' ].value = 1; can see working setting 0 results in black screen. looking @ code of effectcomposer see happening.
hopefully can me out once again.
like said i'll update post , fiddle attempts
interesting links on subject:
- pull request add resize support ssao demo https://github.com/mrdoob/three.js/pull/6820
edits:
- added relevant snippets of code (posting here clutter question)
- added interesting links
- effect.uniforms[ 'onlyao' ].value = 1;
Comments
Post a Comment