WebGPU實現Ray Packet

大家好~本文在 如何用WebGPU流畅渲染百万级2D物体? 基础上进行优化,使用WebGPU实现了Ray Packet,也就是将8*8=64条射线作为一个Packet一起去访问BVH的节点。这样做的好处是整个Packet只需要一个维护BVH节点的Stack,节省了GPU Shared Memory; …

Continue Reading

WebGPU的計算著色器實現冒泡排序

  • 2022 年 8 月 12 日
  • 筆記

大家好~本文使用WebGPU的计算着色器,实现了奇偶排序。 奇偶排序是冒泡排序的并行版本,在1996年由J Kornerup提出。它解除了每轮冒泡间的串行依赖以及每轮冒泡内部的串行依赖,使得冒泡操作可以并行执行 目录 介绍奇偶排序算法 分析时间复杂度 需求 初步设计 代码实现 发现问题 改进设计 相 …

Continue Reading

如何用WebGPU流暢渲染千萬級2D物體:基於光線追蹤管線

大家好~我们已经实现了百万级2D物体的流畅渲染,不过是基于计算管线实现的。本文在它的基础上,改为基于光追管线实现,主要进行了CPU和GPU端内存的优化,成功地将渲染的2D物体数量由4百万提高到了2千万 相关文章如下: 如何用WebGPU流畅渲染百万级2D物体? 本文不需要实现构建和遍历BVH,而是直 …

Continue Reading

WebGPU 導入[2] - 核心概念與重要機制解讀

目录 1. 核心概念 ① 适配器和设备 ② 缓冲、纹理、采样器 ③ 绑定组 ④ 着色器与管线 ⑤ 编码器与队列 2. 重要机制 ① 缓冲映射机制 ② 时间线 1. 核心概念 这部分不会详细展开,以后写教程时会深入。以下只是核心概念,是绝大多数 WebGPU 原生程序要接触的,并不是全部。 ① 适配器 …

Continue Reading

如何用WebGPU流暢渲染百萬級2D物體?

  • 2022 年 7 月 24 日
  • 筆記

大家好~本文使用WebGPU和光线追踪算法,从0开始实现和逐步优化Demo,展示了从渲染500个2D物体都吃力到流畅渲染4百万个2D物体的优化过程和思路 目录 需求 成果 1、选择渲染的算法 2、实现内存需求 3、渲染1个圆环 4、测试渲染极限 5、尝试设置workgroup_size 6、实现BV …

Continue Reading

WebGL 與 WebGPU比對[6] - 紋理

  • 2022 年 3 月 14 日
  • 筆記

目录 1. WebGL 中的纹理 1.1. 创建二维纹理与设置采样参数 1.2. 纹理数据写入与拷贝 1.3. 着色器中的纹理 1.4. 纹理对象 vs 渲染缓冲对象 1.5. 立方体六面纹理 1.6. WebGL 2.0 的变化 1.7. Mipmapping 技术 2. WebGPU 中的纹理 …

Continue Reading