0
点赞
收藏
分享

微信扫一扫

纹理Texture 纠正理解


之前一直理解的是一个program有自己的slot

但是实际不是这样的,slot是全局的,且有max 暂时考虑max=16

意味着同时active最多16个图

于是用法应该是这样的,初始化的时候

gl.useProgram(program);
gl.activeTexture(gl.TEXTURE0 + textureID);
gl.bindTexture(gl.TEXTURE_2D, data);
const addr = gl.getUniformLocation(program, key);
gl.uniform1i(addr, textureID++);

激活纹理,绑上数据,然后和shader中的变量连接上

在DC的时候,先绑定program

仅仅需要activeTexture(ID),然后bind数据

就可以drawArray了

uniform1i只需要初始化一次

也就是说一个材质可以上16个图,那一般来说够了

举报

相关推荐

0 条评论