初识WebGL

思路:

  1. 构建<canvas>画布节点,获取其的实例。
  2. 使用getWebGLContext() 拿到画布上下文。
  3. 拿到上下文用clearColor() 设置背景颜色。
  4. 最后清空canvas画布,是为了清除颜色缓冲区。

html结构:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>测试</title>
  <script src="./lib/webgl-utils.js"></script>
  <script src="./lib/webgl-debug.js"></script>
  <script src="./lib/cuon-utils.js"></script>
  <!--第一个webGL上手案例 (webGL的构建流程)-->
  <script src="./js/helloCanvas.js"></script>
</head>

<body onload="main()">
  <canvas id="canvas" width="400" height="400"></canvas>
</body>

</html>

javascript脚本:

javascript 复制代码
//helloCanvas.js
function main () {
  /**
   * WebGL程序包括运行在浏览器中的JavaScript和运行在WebGL系统的着色器程序这两个部分。
   */
  const canvas = document.getElementById('canvas');
  const gl = getWebGLContext(canvas);
  if (!gl) {
    console.log('WebGL初始化失败');
    return;
  }
  // 设置背景色
  gl.clearColor(0.0, 0.0, 0.0, 1.0);
  // 清空canvas
  //将指定缓冲区设定为预定的值。如果清空的是颜色缓冲区,那么将使用gl.clearColor()的值(作为预定值)。
  gl.clear(gl.COLOR_BUFFER_BIT);
}

最终效果:

相关推荐
康康的幸福生活5 小时前
webgl2 方法解析: getContext()
webgl
庖丁解牛1 天前
3. Babylonjs 中获取相机方向相关
前端·webgl·游戏开发
康康的幸福生活1 天前
webgl2 方法解析: createBuffer()
前端·javascript·webgl
康康的幸福生活2 天前
webgl2 方法解析: shaderSource()
webgl
魂断蓝桥6663 天前
如何基于three.js(webgl)引擎架构,实现3D医院、3D园区导航,3D科室路径导航
webgl·数字孪生·threejs·3d定位、三维室内定位、3d建筑·three.js路径规划、三维a*算法、javascript三维导航,·3d医院·3d导航·园区导航
康康的幸福生活12 天前
webgl2 方法解析: SCISSOR_TEST
javascript·webgl
魂断蓝桥66614 天前
如何基于three.js(webgl)引擎架构,实现3D机房园区,数据中心消防系统
webgl·数字孪生·three.js·物联网3d·3d机房·、3d工厂、3d工业园区、智慧制造、智慧工业、智慧工厂·bim管理系·3d消防·消防演习模拟
康康的幸福生活16 天前
webgl2 方法解析: colorMask()
webgl
Mapmost16 天前
全新升级!3DTiles加载速度Mapmost完胜Cesium
性能优化·webgl·cesium
康康的幸福生活16 天前
webgl2 方法解析: texImage2D()
webgl