溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

opengl學習筆記——緩沖區(qū)對象

發(fā)布時間:2020-08-01 19:25:03 來源:網絡 閱讀:963 作者:螞蟻雄心 欄目:開發(fā)技術

1、創(chuàng)建緩沖區(qū)對象標示符

glGenBuffers(GLsizei n , GLuint * buffers),

生成n個當前未使用的緩沖區(qū)對象標示符(注意是標示符,不是緩沖區(qū)對象,緩沖區(qū)對象(即以下的target)包括GL_ARRAY_BUFFER(頂點數據),GL_ELEMENT_ARRAY_BUFFER(表示索引數據),GL_PIXEL_UNPACK_BUFFER(表示傳遞給Opengl的像素數據),GL_PIXEL_PACK_BUFFER(表示從opengl獲取的像素數據),GL_COPY_READ_BUFFER和GL_COPY_WRITE_BUFFER(表示在緩沖區(qū)之間復制數據),GL_TEXTURE_BUFFER(作為紋理緩沖區(qū)存儲的紋理數據)、GL_TRANSFORM_FEEDBACK_BUFFER(表示執(zhí)行一個變換反饋著色器的結果)、或者GL_UNIFORM_BUFFER(表示統(tǒng)一變量值))。

2、創(chuàng)建激活緩沖區(qū)對象

glBindBuffer(GLenum target,GLuint buffer)

完成以下三個任務之一:1、當buffer時一個首次使用的非零無符號整數時,他就創(chuàng)建一個新的緩沖區(qū)對象,并把buffer分配給這個緩沖區(qū)對象;2、當綁定到一個以前創(chuàng)建的緩沖區(qū)對象時,這個緩沖區(qū)對象變成為活動的緩沖區(qū)對象;3當綁定到一個值為0的buffer時,opengl就會停止緩沖區(qū)對象。

3、數據分配和初始化緩沖區(qū)對象

glBufferData(GLenum target, GLSizeiptr size,const GLvoid *data, GLenum usage);

target代表緩沖區(qū)對象;size緩沖區(qū)大小,data用于初始化緩沖區(qū)對象,若為null則保留size個單位的空間內存,但不會對他進行初始化,usage代表讀取寫入方式

4、更新緩沖區(qū)對象的數據

glBufferSubData(GLenum target, GLintptr offset,GLsizeiptr size, const GLvoid* data)

代表用data指向的數據更新域target相關聯的當前綁定緩沖區(qū)對象中從offset開始的size個字節(jié)數據。

GLvoid* glMapBuffer(GLenum target,GLenum access)

返回指向與target相關聯的當前綁定緩沖區(qū)對象的數據存儲,在完成數據的存儲訪問后,調用glUnmapBuffer(GLenum target)取消緩沖區(qū)映射。

5、清除緩沖區(qū)對象

void glDeleteBuffers(GLsizei n,const GLuint * buffers);

完成對緩沖區(qū)對象的操作后,可以釋放它的資源,并使它的標示符可以由其他緩沖區(qū)對象使用。


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI