2016-02-19 3 views
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); 

ответ

1

Нет, буфера, программа, атрибуты, renderbuffers, фреймбуфера, текстура и текстурные блоки независим от программ

форменных программы конкретной

+0

спасибо за разъяснение. также ваш другой ответ на вопрос elses был полезен и в этом случае: http://stackoverflow.com/questions/26140893/webgl-share-texture-with-other-program-shader – user3591153

Смежные вопросы