Quiet
  • 主页
  • 归档
  • 分类
  • 标签
  • 链接
  • 关于我

bajiu

  • 主页
  • 归档
  • 分类
  • 标签
  • 链接
  • 关于我
Quiet主题
  • WebGL

辅助函数initShader作用

bajiu
前端

2021-05-11 21:27:27

在学习webgl的途中, 我们先研究一下一直只用的辅助函数 initShader();

虽然直接使用initShaders()函数也能够编写出相当不错的WebGL程序, 但我们也需要知其所以然, 掌握这部分内容不是必须的, 最好是先对 WebGL 先有一部分了解

initShaders() 函数的作用是,编译 GLSL ES 代码,创建和初始化着色器供WebGL使用。具体分为以下7个步骤:

  1. 创建着色器对象 gl.createShader()
  2. 向着色器对象中填充着色器程序源代码 gl.shaderSource()
  3. 编译着色器 gl.compileShader()
  4. 创建程序对象 gl.createProgram()
  5. 为程序对象分配着色器 gl.attachShader()
  6. 链接程序对象 gl.linkProgram()
  7. 使用程序对象 gl.useProgram()

在这里出现了两种对象:着色器对象 (shader object) 和程序对象 (program object)。

  • 着色器对象: 着色器对象管理一个顶点着色器或一个片元着色器。每一个着色器都有一个着色器对象。
  • 程序对象: 程序对象是管理着色器对象的容器。WebGL中,一个程序对象必须包含一个顶点着色器和一个片元着色器。

WebGL 程序包括运行在浏览器重的 JavaScript 和运行在 WebGL 系统的着色器程序这两个部分

具体用法在链接里: https://github.com/bajiu/blog_code/blob/master/webGL/utils/InitShaders.js

上一篇

JavaScript 类型化数组介绍

下一篇

前端模块化

©2024 By bajiu.