WebGL學習 緩衝區物件(四)

2021-10-06 04:33:07 字數 1109 閱讀 5510

緩衝區物件:webgl提供的一種機制,可以一次性向著色器傳入多個頂點資料,我們可以一次性向緩衝器物件中填充大量的頂點資料,然後將這些資料儲存起來,供頂點著色器使用。

初始化過程:

建立緩衝器物件  gl.createbuffer();

繫結緩衝器物件  gl.bindbuffer(gl.array_buffer, vertexbuffer);

將資料寫入緩衝區物件 gl.bufferdata(gl.array_buffer, vertices, gl.static_draw);

將緩衝區物件分配給乙個attribute

// 頂點變數

const a_position = gl.getattriblocation(gl.program, 'a_position');

// 將緩衝區物件繫結頂點變數

gl.vertexattribpointer(a_position, 3, gl.float, false, 0, 0);

開啟attribute變數  gl.enablevertexattribarray(a_position);

/**

* 緩衝區初始化

* @param g1

*/function initvertexbuffers(gl)

// 將緩衝區物件繫結到目標

gl.bindbuffer(gl.array_buffer, vertexbuffer);

// 將緩衝區資料中寫入資料

gl.bufferdata(gl.array_buffer, vertices, gl.static_draw);

// 頂點變數

const a_position = gl.getattriblocation(gl.program, 'a_position');

// 將緩衝區物件繫結頂點變數

gl.vertexattribpointer(a_position, 3, gl.float, false, 0, 0);

// 建立連線

gl.enablevertexattribarray(a_position);

return 4;

}

demo

WebGL之旅(二十)幀緩衝區物件FBO

前面都是將作為繪製圖形時的紋理對映,這一節來看看如何將渲染結果作為紋理,即動態生成紋理,貼在另乙個物體上。預設情況下,都是在螢幕提供幀緩衝區中繪製,如果要動態生成紋理,就需要另外新建乙個緩衝區物件,來代替預設的緩衝區,在其中進行離屏繪製。幀緩衝區物件包括 顏色關聯物件 可以是紋理物件或渲染緩衝區物件...

WebGl 利用緩衝區物件畫多個點

效果 webgl 利用緩衝區物件畫多個點 title 6head 7 body 89 canvas id mycanvas width 500 height 300 style border 1px solid red canvas 1011 body 1213 14 script 1516 win...

緩衝區物件

今天在做cuda的程式,突然出現了有關opengl緩衝區物件的函式,這讓我很是糾結,因為我的opengl的基礎不是很好,才接觸不到乙個月,今天我就稍微介紹一下緩衝區物件的有關函式。參考opengl程式設計指南 在許多opengl操作中,我們向opengl傳送一大塊資料,例如向它傳遞需要處理的頂點資料...