1. 综述
其实,写到第六篇比对基本上常规的 API 就差不多比对完了(除了 GPGPU、查询方面的 API 未涉及),但是有一个细节仍然值得我开一篇比对文章进行思考、记录,那就是渲染到何处。
WebGL 的上下文对象是与 canvas 元素强关联的,没有 canvas 创建不了上下文,也就是说,WebGL 在设计之初就是拿来绘图的(的确如此),没考虑 GPU 的其它功能,后来才逐渐加入其它功能。所以说,WebGL 若不显式指定 Framebuffer,那默认就是画到 canvas 自己身上。
WebGPU 则更强调“GPU”本身,它是需要自己制定绘制目标的,也就是在通道编码器中设置的颜色附件关联的纹理对象。
本篇着重介绍 WebGPU 这一处新设计。有关 FBO 和 RBO 技术与 WebGPU 的差异我另有文章,请自行查阅。
2. WebGL 中的绘图区
把帧缓冲映射到绘图窗口,就算完成了。WebGL 需要使用 gl.viewport() 来指定绘图区的大小:
gl.viewport(0
本文探讨WebGL与WebGPU在渲染目的地的差异。WebGL默认将渲染结果直接绘制到canvas,而WebGPU则需明确指定绘制目标,如设置颜色附件关联的纹理对象。在WebGPU中,配置canvas连接作为渲染通道的颜色附件更为复杂,但提供了更灵活的GPU访问。当canvas尺寸变化时,WebGPU会自动销毁并重新生成纹理,以适应新的绘图区域。
订阅专栏 解锁全文
2264

被折叠的 条评论
为什么被折叠?



