WEBGL编程指南之纹理

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:使用纹理边缘值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • http://blog.csdn.net/wangdingqiaoit/article/details/51457...
    jerryhigh阅读 10,762评论 0 8
  • 纹理的基础知识 2D 纹理 2d纹理是OpenGlES中最基础和普遍的一种纹理结构。一个2d纹理,就是图片的数据的...
    Zsj_Sky阅读 10,803评论 0 8
  • 一、纹理基础 3D图形渲染中最基本的操作就是对一个表面应用纹理。纹理可以表现只从网格的几何形状无法得到的附加细节。...
    cain_huang阅读 12,925评论 0 7
  • 纹理 纹理是一个用来保存图像的颜色元素值的OpenGL ES 缓存。它可以控制一个渲染的三角形中每个像素的...
    Terrnce阅读 5,891评论 0 0
  • 纹理(Textures) 我们已经了解到,我们可以为每个顶点使用颜色来增加图形的细节,从而创建出有趣的图像。但是通...
    IceMJ阅读 10,999评论 2 13