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

最终效果:

相关推荐
叶智辽4 天前
【Three.js与WebGPU】下一代3D技术到底强在哪?
webgl·three.js
波哥学开发5 天前
# Three.js 进阶:如何绘制"像素大小固定"的箭头?三种方案全解析
webgl·gpu
Panzer_Jack6 天前
如何用 WebGL 去实现一个选取色彩背景图片透明化小工具 - Pick Alpha
前端·webgl
烛阴7 天前
Three.js 零基础入门:手把手打造交互式 3D 几何体展示系统
javascript·webgl·three.js
叶智辽8 天前
【ThreeJS调试技巧】那些让 Bug 无所遁形的“脏套路”
webgl·three.js
叶智辽9 天前
【ThreeJS急诊室】一个生产事故:我把客户的工厂渲染“透明”了
webgl·three.js
AI能见度9 天前
硬核:如何用大疆 SRT 数据实现高精度 AR 视频投射?
ar·无人机·webgl
EQ-雪梨蛋花汤10 天前
【踩坑记录】使用 Layui 框架时解决 Unity WebGL 渲染在 Tab 切换时黑屏问题
unity·layui·webgl
ct97810 天前
ThreeJs材质、模型加载、核心API
webgl·材质·threejs
爱看书的小沐14 天前
【小沐杂货铺】基于Three.js渲染三维无人机Drone(WebGL / vue / react )
javascript·vue.js·react.js·无人机·webgl·three.js·drone