1
Должен ли я создавать отдельные webglbuffers, если у меня есть две программы или я могу использовать одни и те же в каждом?Должен ли я создавать отдельные буферы для каждой программы webgl?
this.program = gl.createProgram();
gl.attachShader(this.program, vs);
gl.attachShader(this.program, fs);
gl.linkProgram(this.program);
//gl.useProgram(this.program);
this.cellProgram = gl.createProgram();
gl.attachShader(this.cellProgram, cvs);
gl.attachShader(this.cellProgram, cfs);
gl.linkProgram(this.cellProgram);
//gl.useProgram(this.cellProgram);
this.texCoordBuffer = gl.createBuffer();
this.posCoordBuffer = gl.createBuffer();
, а также мне понадобится bindbuffer и установить bufferdata для каждой программы? Или данные/буферы распределяются между программами?
gl.useProgram(program);
// look up where the vertex data needs to go.
var positionLocation = gl.getAttribLocation(program, "a_position");
var texCoordLocation = gl.getAttribLocation(program, "a_texCoord");
// provide texture coordinates for the rectangle.
//this will be what the texture gets displayed on?
gl.bindBuffer(gl.ARRAY_BUFFER, this.texCoordBuffer);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
0.0, 0.0,
1.0, 0.0,
0.0, 1.0,
0.0, 1.0,
1.0, 0.0,
1.0, 1.0]), gl.STATIC_DRAW);
gl.enableVertexAttribArray(texCoordLocation);
gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);
спасибо за разъяснение. также ваш другой ответ на вопрос elses был полезен и в этом случае: http://stackoverflow.com/questions/26140893/webgl-share-texture-with-other-program-shader – user3591153