美文网首页
WebGLShader

WebGLShader

作者: 三七_小九 | 来源:发表于2021-05-10 16:13 被阅读0次

WebGLShader对象是webgl中的着色器,它分为顶点着色器(vertex shader)和片元着色器(fragmentshader)。

创建shader的过程,

1.使用gl.createShader(type)创建一个type类型的shader (type的值为:gl.VERTEX_SHADER 和gl.FRAGMENT_SHADER)

2.通过gl.shaderSource(shader,sourceCode)挂载GLSL源代码。

3.最后使用gl.compileShader(shader)进行着色器的编译

function createShader (gl, sourceCode, type) {

// Compiles either a shader of type gl.VERTEX_SHADER or gl.FRAGMENT_SHADER

    var shader = gl.createShader( type );

    gl.shaderSource( shader, sourceCode );

    gl.compileShader( shader );

    if ( !gl.getShaderParameter(shader, gl.COMPILE_STATUS) ) {

         var info = gl.getShaderInfoLog( shader );

          throw "Could not compile WebGL program. \n\n" + info;

     }

   return shader;

}

    创建一个顶点着色器

var vertexShaderSource = "attribute vec4 position;\n"+ "void main() {\n"+ " gl_Position = position;\n"+ "}\n";

var vertexShader = createShader(gl, vertexShaderSource, gl.VERTEX_SHADER)

相关文章

网友评论

      本文标题:WebGLShader

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