three.js GLBufferAttribute

2023-02-16 17:31 更新

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

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

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

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

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

buffer — 必須是 WebGLBuffer。

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

itemSize — 應(yīng)與特定頂點(diǎn)關(guān)聯(lián)的數(shù)組值的數(shù)量。例如,如果此屬性存儲(chǔ)一個(gè) 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ù)期的頂點(diǎn)數(shù)。

屬性

.buffer : WebGLBuffer

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

.count : Integer

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

.itemSize : Integer

每個(gè)項(xiàng)目(頂點(diǎn))組成多少個(gè)值。

.elementSize : Integer

存儲(chǔ)當(dāng)前類型屬性值的相應(yīng)大?。ㄒ宰止?jié)為單位)。

有關(guān)已知類型大小的列表,請(qǐng)參見(jià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è)置計(jì)數(shù)屬性。

.version : Integer

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

.needsUpdate : Boolean

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

源碼

src/core/GLBufferAttribute.js


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)