减少冗余webgl属性数据

时间:2016-07-30 09:09:48

标签: webgl

如果我想使用没有多个绘制调用的三角形绘制红色和蓝色方块,据我所知,它是形状顶点的12个元素(有意义),但我还需要使用12个只有两种颜色的元素,因为我需要为每个顶点定义一个颜色,这个颜色指数多余,我用于形状的顶点越多。

有没有办法,比方说,跳过一个属性多次,以便这些排队

vertices = [0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1
            1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2]
colors   = [1, 0, 0, 1,
            0, 0, 1, 1]

因此第一种颜色(颜色中的第一个vec4)适用于顶点中的前六个点,第二个颜色适用于接下来的六个点。

这是可能的还是我必须为形状中的每个顶点重新定义相同的颜色?

1 个答案:

答案 0 :(得分:0)

你所追求的东西是绘制实例:http://blog.tojicode.com/2013/07/webgl-instancing-with.html

否则,如果你真的热衷于不复制顶点,你可以使用制服:

uploadAttrDataForOneShape();
setUniform("color", RED);
draw();
setUniform("color", BLUE);
draw();

实际上,GPU上的内存非常丰富,而且对顶点冗余进行过多的压力可能是不值得的。