我正在使用 WebGL 创建一个 2D 渲染引擎,其中我使用纹理图集并一次批处理数百个实体。我需要为每个实体设置一个唯一的 alpha 值,我不知道如何做到这一点。
我当前的片段着色器是这样的:
precision mediump float;
uniform float u_alpha;
uniform sampler2D u_image;
varying vec2 v_texCoord;
void main () {
vec4 texture = texture2D(u_image, v_texCoord);
gl_FragColor = vec4(texture.rgb, texture.a * u_alpha);
}
我想将该全局统一更改为统一缓冲区或将应用于 v_texCoord 的唯一值数组,但我不知道该怎么做。