【发布时间】:2013-04-02 17:25:46
【问题描述】:
我正在使用 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 的唯一值数组,但我不知道该怎么做。
【问题讨论】:
-
texelfetch 和纹理缓冲区怎么样?看看这个:stackoverflow.com/questions/12834058/texturing-using-texelfetch
-
@MichaelIV:他正在使用 WebGL。 WebGL 中没有
texelFetch或缓冲区纹理。 -
嗯,那请放弃我之前的评论。
标签: javascript canvas 2d glsl webgl