Web编程技术营地
研究、演示、创新

渲染引擎模板

撰写时间:2026-09-03

修订时间:2026-09-03

概述

要设计一个通用的WebGL V2.0渲染引擎,因涉及到多方面的内容,可能需要多次调整、修改、完善。

而在逐个实现各个类时,有时因看不到将来的具体需求,导致类的设计不合格。例如,先设计了A类并可运行。但当后面设计了B类,才发现A类无法满足B类的需求,此时只得重新设计或完善A类。因此,各个类的设计与完善永远都是一个现在进行时。这就是牵一发而动全身,或说根基不牢,地动山摇。

另一问题是,当特定类设计好后,它往往封装了大量的底层细节,我们离最基本的APIs越来越远。而为找到问题的根源,我们有时被迫返回至最底层代码。

因此,本章从最底层开始,提供了各阶段的各类模板,既可方便地看到最原始的底层代码,又可直接在上面修改、完善为更高版本的代码。

初始模板

这个模板只依赖于FullScreenCanvas.css文件以及glMatrix第三方库,其余均使用最底层的APIs来编写。涵盖WebGL 2.0VAOMVP矩阵的应用,以及gl.drawElements的调用。可正确响应resize事件。小心谨慎地确保了应用程序的状态初始化的正确顺序,以及尽量使各个函数都模块化、原子化。

运行应用

带有动画的模板

除了动画之外,还可使用键盘快捷键A, S, D, W来进行第一人称视角的移动,也可用鼠标滚轮在Z平面内移动视图矩阵

运行应用

参考资源

Specifications

  1. WebGL 1.0 Specification
  2. WebGL 2.0 Specification
  3. OpenGL ES 3.0 Reference Pages