美文网首页
WEBGL编程指南之纹理

WEBGL编程指南之纹理

作者: 前端大魔王 | 来源:发表于2016-11-24 23:03 被阅读0次

    1.创建纹理对象的步骤

    1.创建纹理对象(gl.createTexture()
    2.开启纹理单元(gl.activeTexture(gl.TEXTURE0)
    3.向target绑定纹理对象(gl.bindTexture(gl.TEXTURE_2D,texture)
    4.配置纹理参数(gl.textParameteri(gl.TEXTURE_2D,gl_TEXTURE_MIN_FILTER,gl.LINEAR)
    5.配置纹理图像(gl.texImage2D(gl.TEXTURE_2D,0,gl.RGB,gl.UNSIGNED_BYTE,image));

    2.纹理对象的使用

    uniform sampler2D u_sampler;
    varying vec2 v_TexCoord;//由片元着色器传入纹理坐标
    gl_FragColor=texture2D(u_sampler,v_TexCoord);
    
    
    var u_sample=gl.getUniformLocation(gl.program,'u_sample');
    //创建纹理对象
    
    //将0号纹理传给着色器
    gl.uniform1i(u_sample,0)
    

    3.函数说明

    1.gl.activeTexture(gl.TEXTURE0),也有gl.TEXTURE0...gl.TEXTURE7,通过纹理单元的机制来同时使用多个纹理,默认情况webgl最少支持8个纹理单元
    2.gl.bindTexture(gl.TEXTURE_2D,texture),gl.TEXTURE_2D二维纹理。也有gl.TEXTURE_CUBE_MAP立方体纹理
    3.gl.textParameteri(gl.TEXTURE_2D,gl_TEXTURE_MIN_FILTER,gl.LINEAR),可以重复多次配置多个参数。可配置的参数主要有:gl.TEXTURE_MAG_FILTER,放大方法,gl.TEXTURE_MAG_FILTER,缩小方法,指纹理图像大小与要贴合的表面大小不一样时如何采样可取gl.NEAREST最近像素的值,gl.LINEAR周围四个像素加权平均值。
    gl.TEXTURE_WRAP_S,纹理左右填充,gl.TEXTURE_WRAP_T,纹理上下填充,可取参数gl.REPEAT:平铺纹理,gl.MIRRORED_REPEAT:镜面对称。gl.CLAMP_TOEDGE:使用纹理边缘值

    相关文章

      网友评论

          本文标题:WEBGL编程指南之纹理

          本文链接:https://www.haomeiwen.com/subject/zflipttx.html