hi,
im wondering what im doing wrong. so, i want to read the depth buffer information and get them out in a shader (texture). all what im doing is to create a depth buffer and punching this buffer into a texture. but i dont receive any informations in the shader. whats wrong?
thanks
greetz
dirk
here a snips from my rttMANAGER modul:
bufferINFO = [1,1];
initTF_buffer(0,1024,1024,bufferINFO);
var rttBUFFER = [];
var rttTEXTURE = [];
function initTF_buffer(id,resX,resY,bufferINFO) {
//////////////////
//bufferINFO = [0] -> buffers, [1] -> fboTYPES
//////////////////
rttBUFFER[id] = gl.createFramebuffer();
gl.bindFramebuffer(gl.FRAMEBUFFER, rttBUFFER[id]);
rttBUFFER[id].width = resX;
rttBUFFER[id].height = resY;
var rttBUFFER_depth = gl.createRenderbuffer();
gl.bindRenderbuffer(gl.RENDERBUFFER, rttBUFFER_depth);
gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, rttBUFFER[id].width, rttBUFFER[id].height);
gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, rttBUFFER_depth);
var buffers = [
rttBUFFER[id],
rttBUFFER_depth
];
var fboTYPES = [
gl.COLOR_ATTACHMENT0,
gl.DEPTH_ATTACHMENT,
gl.DEPTH_STENCIL_ATTACHMENT
];
createBUFFER_texture(id,buffers[bufferINFO[0]],fboTYPES[bufferINFO[1]],resX,resY);
console.log(rttTEXTURE[id]);
}
function createBUFFER_texture(id,buffer,bufferTYPE,resX,resY){
buffer.width = resX;
buffer.height = resY;
rttTEXTURE[id] = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, rttTEXTURE[id]);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST);
gl.generateMipmap(gl.TEXTURE_2D);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, buffer.width, buffer.height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
gl.framebufferTexture2D(gl.FRAMEBUFFER,bufferTYPE,gl.TEXTURE_2D, rttTEXTURE[id], 0);
gl.bindTexture(gl.TEXTURE_2D, null);
gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, buffer.width, buffer.height);
gl.bindRenderbuffer(gl.RENDERBUFFER, null);
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
}