在OpenGL中的一般方法是結合一個命名緩衝對象(或頂點數組對象,幀緩衝器,...),調用當前綁定對象的某些操作,然後結合某種「默認」的對象:爲什麼綁定OpenGL緩衝區對象?
glBindBufferObject(GL_ARRAY_BUFFER, bufferObjectName)
glBufferData(GL_ARRAY_BUFFER, data, GL_STATIC_DRAW)
glBindBufferObject(GL_ARRAY_BUFFER, 0)
(KTlin的LWJGL)
我剛剛發現有很多函數的「named」版本。從上面的例子將變得像
glNamedBufferData(bufferObjectName, data, GL_STATIC_DRAW)
這是更適合在面向對象的上下文。
那麼爲什麼要用第一個例子中的東西呢?我遇到的每個教程都使用了第一種方法,那麼「命名」方法中是否存在性能下降或類似缺點?
「命名」函數僅適用於較新版本的OpenGL,如4.5。他們以前不存在。要使用什麼取決於您是否要確保與舊硬件的兼容性。 – Rabbid76