由於OpenGL繪圖調用受到最近綁定的VBO的影響,如果您還想繪製現場動態創建的不在VBO中的頂點,如何解除綁定VBO?如何在有和沒有VBO的情況下混合繪圖
我看過的例子都沒有展示如何禁用VBO緩衝區,就像您使用屬性數組指針一樣。也許這不是特別常見,因爲大多數應用程序要麼在VBO中擁有所有東西,要麼什麼也不是,可能混合這兩種情況並不常見。
由於OpenGL繪圖調用受到最近綁定的VBO的影響,如果您還想繪製現場動態創建的不在VBO中的頂點,如何解除綁定VBO?如何在有和沒有VBO的情況下混合繪圖
我看過的例子都沒有展示如何禁用VBO緩衝區,就像您使用屬性數組指針一樣。也許這不是特別常見,因爲大多數應用程序要麼在VBO中擁有所有東西,要麼什麼也不是,可能混合這兩種情況並不常見。
要解除綁定VBO你只需調用glBindBuffer
設置爲0
零值被保留第二個參數,但對於 每個緩衝器對象目標沒有默認緩衝對象。相反,緩衝區有效設置爲零 取消綁定先前綁定的任何緩衝區對象,併爲該緩衝區對象目標恢復客戶端內存使用量 。
然後你必須綁定另一個VBO或從客戶端內存中繪製。
還記得在混合VBO和非VBO時禁用屬性指針。當您撥打:
GLES20.glEnableVertexAttribArray(positionHandle);
應該後跟一個:
GLES20.glDisableVertexAttribArray(positionHandle);
一旦你與繪圖完成,這樣就可以與其他繪製方法(VBO或非VBO)重新啓用。