在WebGL中渲染缓冲区副本时,是否可以指定颜色?

在WebGL中渲染缓冲区副本时,是否可以指定颜色?,webgl,Webgl,这是我的片段着色器: precision mediump float; varying vec4 vColor; void main(void) { gl_FragColor = vColor; } 这是我的代码,用于渲染与圆关联的缓冲区(每个顶点的顶点和颜色): 是否可以以某种方式渲染多个圆实例,每次指定颜色?这样做是不好的做法吗?我是否应该创建多个圆,每个圆都有一个预先指定的颜色?为什么不将片段着色器更改为此 precision mediump float; uniform

这是我的片段着色器:

precision mediump float;

varying vec4 vColor;

void main(void) {
    gl_FragColor = vColor;
}
这是我的代码,用于渲染与圆关联的缓冲区(每个顶点的顶点和颜色):


是否可以以某种方式渲染多个圆实例,每次指定颜色?这样做是不好的做法吗?我是否应该创建多个圆,每个圆都有一个预先指定的颜色?

为什么不将片段着色器更改为此

precision mediump float;

uniform vec4 uColor;

void main(void) {
    gl_FragColor = uColor;
}
然后可以设置绘制每个圆的颜色

gl.uniform4fv(program.uniforms['uColor'], colorOfCircleArrayOf4Floats);
这里有一个例子

var countElem=document.getElementById(“t”);
var canvas=document.getElementById(“c”);
var gl=canvas.getContext(“webgl”,
{preserveDrawingBuffer:true});
var program=twgl.createProgramFromScripts(
gl、[“vshader”、“fshader”]、[“a_position”];
gl.useProgram(程序);
var colorLoc=gl.getUniformLocation(程序,“u_颜色”);
var matrixLoc=gl.getUniformLocation(程序,“u_矩阵”);
//做圆三角形
var-numDivisions=36;
var verts=[];

对于(var ii=0;ii),非常感谢!您是否知道使用该方法是否存在任何(重大)性能缺陷?相对于什么?您可以尝试使用WebGL扩展,但是。您需要绘制多少个圆。
gl.uniform4fv(program.uniforms['uColor'], colorOfCircleArrayOf4Floats);