WebGLShader

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)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 谈起WebGL可能有一些人比较陌生,实际上WebGL是一种3D绘图标准,这种绘图技术标准允许把JavaScript...
    三石青韦阅读 18,436评论 2 11
  • 本文整理下常用的一些基础语法,在学习实践中用到的时候可以翻看回忆下使用实例可以看本文集其他示例 获取上下文 con...
    jadefan阅读 3,564评论 0 2
  • OpenGL + OpenGL ES +Metal 系列文章汇总 本案例的主要目的在于理解GLSL语言自定义着色器...
    Style_月月阅读 887评论 0 3
  • OpenGL 开放图形库或者“开放式图形库” 是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口规范...
    Jassi阅读 424评论 0 0
  • webgl渲染的一般步骤: 1、准备画布,并得到WebGL的渲染上下文 1.1在html上创建Canvas画布。...
    gardenlike2阅读 9,150评论 2 1

友情链接更多精彩内容