air
webgl 渲染库
相关命令
yarn dev # 启动开发环境
yarn build # 打包dist
yarn pb # 发布npm包
痛点
- 若
shape
和 material
分离, 组装匹配 uniform 时, 不易管理 - 是否支持
overrideMtl
- 是否支持图形不依赖场景树独立渲染, 支持图形独立渲染
设计思想
- 无
shape
和 material
的概念, 将 shape
和 material
强绑定, 用 primitive
类替代, 目的是方便顶点着色器和片段着色器 uniform
对齐 - 不同材质, 会继承自
primitive
, 如 blinnPrimitive
或 PBRPrimitive
atom3
的子类, group, mesh, scene
构建的树, 尽量和 primitive
解耦, 只作为矩阵树atom2
同理, 这样 air 既可以用于 3d 也能用于 2d- 若要实现 overrideMtl, 则传一个 override 的 graphcs 进去, 如
g.render(g2)
, 在 render
内部, 也方便比对两个 program 的 uniform 和 attribute 是否一致 - primitive 可以认为是包含一套 顶点, 法线, 纹理 buffer 和 program 结合后的对象, 他是能独立绘制一个图形的最小对象
星辰大海!