初识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);
}

最终效果:

相关推荐
贵州数擎科技有限公司11 小时前
曼德勃罗集的 Three.js 实现
webgl·three.js
大松鼠君18 小时前
GLSL 动画动作万能规律表
webgl·three.js
小飞侠是个胖子20 小时前
底层博弈:在高阶 WebGL 开发中平衡视觉极限与渲染性能
webgl
贵州数擎科技有限公司2 天前
分形金字塔的 Ray Marching 实现
webgl·three.js
:mnong4 天前
PlayCanvas 开源 WebGL/WebGPU 3D 创作平台分析
3d·开源·webgl
Strayer8 天前
在地图上实现管网拓扑批量移动、旋转与缩放(参考图片的实现方式)
gis·webgl·数据可视化
Strayer8 天前
WebGL 地图上做精准编辑?这套分层方案搞定管网拖拽 / 连接
gis·webgl
山海鲸可视化9 天前
数字孪生项目案例 | 物流园区可视化
webgl·可视化·数据可视化·数据表格·搜索框
图扑软件9 天前
50ms 级实时数字孪生|汽车先进制造车间工艺流程
3d·数据采集·webgl·数字孪生·可视化·opc ua·汽车制造
子兮曰10 天前
SuperSplat 深度解析:7.6K Stars 的浏览器端 3D 高斯泼溅编辑器 — 在 Web 上编辑现实
前端·javascript·webgl