VAO(Vertext Array Object),中文是頂點數(shù)組對象。之前在《Buffer》一文中,我們介紹了Cesium如何創(chuàng)建VBO的過程,而VAO可以簡單的認為是基于VBO的一個封裝,為頂點屬性數(shù)組和VBO中的頂點數(shù)據(jù)之間建立了關(guān)聯(lián)。我們來看一下使用示例:

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動開發(fā)培訓(xùn)

var indexBuffer = Buffer.createIndexBuffer({
    context : context,
    typedArray : indices,
    usage : BufferUsage.STATIC_DRAW,
    indexDatatype : indexDatatype
});var buffer = Buffer.createVertexBuffer({
    context : context,
    typedArray : typedArray,
    usage : BufferUsage.STATIC_DRAW
});// 屬性數(shù)組,當(dāng)前是頂點數(shù)據(jù)z// 因此,該屬性有3個分量XYZ// 值類型為float,4個字節(jié)// 因此總共占3 *4= 12字節(jié)attributes.push({
    index : 0,
    vertexBuffer : buffer,
    componentsPerAttribute : 3,
    componentDatatype : ComponentDatatype.FLOAT,
    offsetInBytes : 0,
    strideInBytes : 3 * 4,
    normalize : false});// 根據(jù)屬性數(shù)組和頂點索引構(gòu)建VAOvar va = new VertexArray({
    context : context,
    attributes : attributes,
    indexBuffer : indexBuffer
});

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動開發(fā)培訓(xùn)

       如同,創(chuàng)建頂點數(shù)據(jù)和頂點索引的部分之前已經(jīng)講過,然后將頂點數(shù)據(jù)添加到屬性數(shù)組中,并最終構(gòu)建成VAO,使用方式很簡單。

網(wǎng)友評論