Skip to content

Instantly share code, notes, and snippets.

@yomotsu
Created March 18, 2016 00:57
Show Gist options
  • Save yomotsu/4ae47108dd208a42d12f to your computer and use it in GitHub Desktop.
Save yomotsu/4ae47108dd208a42d12f to your computer and use it in GitHub Desktop.
shareDepth between 2 RTs
function shareDepth ( rendertarget1, rendertarget2 ) {
// to force setup RT1, not for rendering
renderer.render( new THREE.Scene(), new THREE.Camera(), rendertarget1 );
// to force setup RT2, not for rendering
renderer.render( new THREE.Scene(), new THREE.Camera(), rendertarget2 );
// NOTE
// To get frame buffer name
// ```
// renderer.properties.get( rendertarget1 ).__webglFramebuffer
// ```
//
// To get frame buffer name
// ```
// renderer.properties.get( rendertarget1 ).__webglDepthbuffer
// ```
var _gl = renderer.context;
var framebuffer = renderer.properties.get( rendertarget2 ).__webglFramebuffer;
var renderbufferShareFrom = renderer.properties.get( rendertarget1 ).__webglDepthbuffer;
_gl.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );
_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbufferShareFrom );
_gl.framebufferRenderbuffer(
_gl.FRAMEBUFFER,
_gl.DEPTH_ATTACHMENT,
_gl.RENDERBUFFER,
renderbufferShareFrom
);
_gl.bindFramebuffer( _gl.FRAMEBUFFER, null );
_gl.bindRenderbuffer( _gl.RENDERBUFFER, null );
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment