WebGL | 青训营笔记

90 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 16 天

本堂课课程大纲

  1. webgl是什么
  2. 现代图形系统
  3. GPU
  4. webgl渲染流程

webgl相关概念

WebGL是什么?

GPU≠WebGL≠3D

WebGL经常被当成3D API,人们总想“我可以使用WebGL和一些神奇的东西做出炫酷的3D作品”。 事实上WebGL仅仅是一个光栅化引擎,它可以根据你的代码绘制出点,线和三角形。 想要利用WebGL完成更复杂任务,取决于你能否提供合适的代码,组合使用点,线和三角形代替实现。

WebGL在电脑的GPU中运行。

Modern Graphics System

image.png

  • 光栅(Raster):几乎所有的现代图形系统都是基于光栅绘制图形的,光栅就是指构成图像的像素阵歹
  • 像素(Pixel):一个像素对应图像上的一个点,它通常保存图像上的某个具体位置的颜色等信息。
  • 帧缓存(Frame Buffer) :在绘图过程中,像素信息被存放于帧缓存中,帧缓存是一块内存地址。
  • CPU (Central Processing Unit) :中央处理单元,负责逻辑计算。
  • GPU (Graphics Processing Unit) :图形处理单元,负责图形计算。

图形渲染过程:

image.png

1. 轮廓提取/ meshing 2. 光栅化 3. 帧缓存 4. 渲染

CPU vs GPU

image.png

GPU由大量的小运算单元构成

每个运算单元只负责处理很简单的计算

每个运算单元彼此独立

因此所有计算可以并行处理

WebGL & OpenGL

image.png

WebGL Startup

image.png

  1. 创建WebGL上下文
  2. 创建WebGL Program
  3. 将数据存入缓冲区
  4. 将缓冲区数据读取到GPU
  5. GPU执行WebGL程序,输出结果

课后个人总结

经过本堂课的学习,了解到了WebGL相关的知识,看完讲师的演示,个人觉得WebGL是极具趣味性和复杂性的东西,深入研究需要一定的时间和精力。

参考

WebGL 基础概念