-
Notifications
You must be signed in to change notification settings - Fork 0
/
debug-fbo.js
64 lines (49 loc) · 1.96 KB
/
debug-fbo.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/* FLOOR */
var debug_buffers = {
debug: {
vertex_buffer: null,
vPosition_loc: null,
texture: null,
uSampler_loc: null,
uShadowMap_loc: null,
texture_buffer: null,
vTexCoord_loc: null,
modelViewMatrix_loc: null,
projectionMatrix_loc: null,
mvpMatrixFromLight_loc: null
}
};
var setup_debug = function(){
var vertices = [
vec4( -0.75, 0.75, 0.0, 1),
vec4( -0.75, -0.75, 0.0, 1),
vec4( 0.75, -0.75, 0.0, 1),
vec4( 0.75, 0.75, 0.0, 1)
];
/* Normal shader setup */
gl.useProgram( programs['debug'] );
var buffers = debug_buffers['debug'];
buffers['vertex_buffer'] = gl.createBuffer();
buffers['vPosition_loc'] = gl.getAttribLocation( programs['debug'], "vPosition" );
gl.bindBuffer( gl.ARRAY_BUFFER, buffers['vertex_buffer'] );
gl.bufferData( gl.ARRAY_BUFFER, flatten(vertices), gl.STATIC_DRAW);
buffers['uSampler_loc'] = gl.getUniformLocation(programs['debug'], "uSampler");
buffers['texture_buffer'] = gl.createBuffer();
buffers['vTexCoord_loc'] = gl.getAttribLocation( programs['floor'], "vTexCoord");
gl.bindBuffer( gl.ARRAY_BUFFER, buffers['texture_buffer']);
gl.bufferData( gl.ARRAY_BUFFER, flatten([vec2(1, 1), vec2(1, 0), vec2(0, 0), vec2(0, 1)]), gl.STATIC_DRAW );
};
var render_debug = function( params ){
var buffers = debug_buffers['debug'];
var _camera = vec3(camera.x, camera.y, camera.z);
gl.useProgram(programs['debug']);
gl.bindBuffer( gl.ARRAY_BUFFER, buffers['vertex_buffer'] );
gl.vertexAttribPointer( buffers['vPosition_loc'], 4, gl.FLOAT, false, 0, 0 );
gl.enableVertexAttribArray( buffers['vPosition_loc'] );
gl.activeTexture(gl.TEXTURE0);
gl.bindTexture(gl.TEXTURE_2D, fbo['buffer'].texture);
gl.bindBuffer(gl.ARRAY_BUFFER, buffers['texture_buffer']);
gl.vertexAttribPointer(buffers['vTexCoord_loc'], 2, gl.FLOAT, false, 0, 0);
gl.enableVertexAttribArray(buffers['vTexCoord_loc']);
gl.drawArrays( gl.TRIANGLE_FAN, 0, 4 );
};