跳到主要内容

GPU资源工程

GPU 程序每帧吃的是 已经上传的资源,不是 JS 数组。这一章只解决:buffer / VAO / 纹理 / FBO / shader / 实例化 / compute 怎么管,才不会把全局 gl 状态拧脏。

这一章覆盖什么

  • 顶点布局与 VAO
  • 纹理上传与采样
  • 帧缓冲、MRT、深度
  • Uniform 与编译生命周期
  • 实例化与间接绘制
  • Compute / GPGPU 边界

文档清单

文档解决的问题
缓冲、顶点与 VAO热路径不要散装 bindBuffer + attribute
纹理采样与上传mip、各向异性、尺寸上限、视频 / canvas 源
帧缓冲、MRT 与深度FBO 绑错、清错、多目标
Uniform 与着色器编译编译一次、UBO、WGSL 一句对照
实例化与间接绘制万级标记为什么必须 instance buffer
Compute 与 GPGPUWebGPU compute 首选;WebGL 浮点 FBO 边界

封装底线

  • 业务层不碰「当前 ARRAY_BUFFER」。网格有 VAO,动态数据走明确的 bufferSubData
  • useProgram / bindVertexArray / bindFramebuffer 成对出现;离开 pass 绑回默认(FBO null)。
  • 着色器编译和 getUniformLocation 只在创建或热更新时做。
  • 丢失后资源表整表重建,见 上下文生命周期