three.js GLBufferAttribute

2023-02-16 17:31 更新

此緩沖區(qū)屬性類不構(gòu)造 VBO。相反,它使用在構(gòu)造函數(shù)中傳遞的任何 VBO,以后可以通過緩沖區(qū)屬性進行更改。

它需要與 VBO 一起傳遞額外的參數(shù)。它們是:GL 上下文、GL 數(shù)據(jù)類型、每個頂點的組件數(shù)、每個組件的字節(jié)數(shù)和頂點數(shù)。

此類最常見的用例是當(dāng)某種 GPGPU 計算干擾甚至產(chǎn)生有問題的 VBO 時。

構(gòu)造函數(shù)

GLBufferAttribute( buffer : WebGLBuffer, type : GLenum, itemSize : Integer, elementSize : Integer, count : Integer )

buffer — 必須是 WebGLBuffer。

type — WebGL 數(shù)據(jù)類型之一。

itemSize — 應(yīng)與特定頂點關(guān)聯(lián)的數(shù)組值的數(shù)量。例如,如果此屬性存儲一個 3 分量向量(例如位置、法線或顏色),則 itemSize 應(yīng)為 3。

elementSize — 1、2 或 4。給定“類型”參數(shù)的相應(yīng)大?。ㄒ宰止?jié)為單位)。

  • gl.FLOAT: 4
  • gl.UNSIGNED_SHORT: 2
  • gl.SHORT: 2
  • gl.UNSIGNED_INT: 4
  • gl.INT: 4
  • gl.BYTE: 1
  • gl.UNSIGNED_BYTE: 1

count — VBO 中預(yù)期的頂點數(shù)。

屬性

.buffer : WebGLBuffer

當(dāng)前的 WebGLBuffer 實例。

.count : Integer

VBO 中的預(yù)期頂點數(shù)。

.itemSize : Integer

每個項目(頂點)組成多少個值。

.elementSize : Integer

存儲當(dāng)前類型屬性值的相應(yīng)大小(以字節(jié)為單位)。

有關(guān)已知類型大小的列表,請參見上面的(構(gòu)造函數(shù))。

.type : GLenum

描述底層 VBO 內(nèi)容的 WebGL 數(shù)據(jù)類型。

將此屬性與 elementSize 一起設(shè)置。推薦的方法是使用 setType 方法。

.isGLBufferAttribute : Boolean

只讀。始終為真。

方法

.setBuffer ( buffer ) : this

設(shè)置緩沖區(qū)屬性。

.setType ( type, elementSize ) : this

設(shè)置 type 和 elementSize 屬性。

.setItemSize ( itemSize ) : this

設(shè)置 itemSize 屬性。

.setCount ( count ) : this

設(shè)置計數(shù)屬性。

.version : Integer

版本號,每次將 needsUpdate 屬性設(shè)置為 true 時遞增。

.needsUpdate : Boolean

默認為假。將此設(shè)置為 true 增量版本。

源碼

src/core/GLBufferAttribute.js


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號