大家好,本文整理了现代图形API的技术要点,重点研究了并行和GPU Driven Render Pipeline相关的知识点,调查了WebGPU的相关支持情况. 另外,本文对实时光线追踪也进行了简要的分析.这是我非常感兴趣的技术方向,也是图形学的发展方向之一.本系列后续文章会围绕这个方向进行更多的研究和实现相关的Demo. 上一篇博文: WebGPU学习(四):Alpha To Coverage 本文内容 前置知识 技术要点 并行 Multiple Queues 同步 多线程 内存管理 延迟渲染…
对比audio标签 和 Web Audio API 各平台浏览器的支持情况:   audio element Web Audio API desktop browsers Chrome 14 Yes ✔ Prefixed ✔ Chrome 16 Yes ✔ Prefixed ✔ Chrome 17 Yes ✔ Prefixed ✔ Chrome 18 Yes ✔ Prefixed ✔ Chrome 19 Yes ✔ Prefixed ✔ Chrome 20 Yes ✔ Prefixed ✔ Ch…
1. NewGlobalRef(创建全局引用) jobjectNewGlobalRef(JNIEnv *env, jobject obj); 创建 obj 参数所引用对象的新全局引用.obj 参数既可以是全局引用,也可以是局部引用.全局引用通过调用 DeleteGlobalRef() 来显式撤消. 参数: env:JNI 接口指针. obj:全局或局部引用. 返回值: 返回全局引用.如果系统内存不足则返回 NULL. 2. DeleteGlobalRef(删除全局引用) void DeleteG…
大家好,本文学习与MSAA相关的Alpha To Coverage以及在WebGPU中的实现. 上一篇博文 WebGPU学习(三):MSAA 学习Alpha To Coverage 前置知识 WebGPU学习(三):MSAA 一个fragment对应一个像素 介绍 开启了MSAA和Alpha To Coverage后,fragment的alpha值(fragment shader输出的颜色的alpha值)会影响该fragment对应像素的采样点是否被覆盖. 动机 参考乱弹纪录II:Alpha T…
大家好,本文学习Chrome->webgpu-samplers->rotatingCube示例. 上一篇博文: WebGPU学习(五): 现代图形API技术要点和WebGPU支持情况调研 学习rotatingCube.ts 我们已经学习了"绘制三角形"的示例,与它相比,本示例增加了以下的内容: 增加一个uniform buffer object(简称为ubo),用于传输model矩阵view矩阵projection矩阵的结果矩阵(简称为mvp矩阵),并在每帧被更新 设置顶点…
介绍 大家好,本系列从0开始学习WebGPU API,并给出相关的demo. WebGPU介绍 WebGPU相当于DX12/Vulkan,能让程序员更灵活地操作GPU,从而大幅提升性能. 为什么要学习WebGPU WebGPU更好地支持多线程 WebGPU支持compute shader,从而让程序员能利用GPU实现很多优化 WebGPU与WebGL2的区别很大,两者不容易兼容.如果要从WebGL1升级,最好直接升级到WebGPU,一劳永逸 WebGPU是标准,各大浏览器都会支持.不像WebGL…
大家好,本文介绍了"reuse render command buffer"和"dynamic uniform buffer offset"这两个优化,以及Chrome->webgpu-samplers->animometer示例对它们进行的benchmark性能测试. 上一篇博文: WebGPU学习(十):介绍"GPU实现粒子效果" 学习优化:reuse render command buffer 提出问题 每一帧经过下面的步骤进行…
Canvas学习:封装Canvas绘制基本图形API Canvas Canvas学习   从前面的文章中我们了解到,通过Canvas中的CanvasRenderingContext2D对象中的属性和方法,我们可以很轻松的绘制出一些基本图形,比如直线.弧线.矩形.圆形.三角形等.但有很多基本图形的绘制是没有现成的方法,需要通过CanvasRenderingContext2D对象中的属性和方法组合在一起才能绘制出来,比如说点划线.箭头和正多边形等.为了更好的帮助大家在Canvas中绘制这些基本图形,…
Streaming API参考链接: https://trailhead.salesforce.com/en/modules/api_basics/units/api_basics_streaming https://resources.docs.salesforce.com/210/latest/en-us/sfdc/pdf/api_streaming.pdf 背景:工作中我们有可能会有这样相关的需求:某些数据很重要,需要实时监控是否有变化,或者某些数据在其他的平台有集成.如果有变化,不刷新页…
在上一篇文章 FFmpeg学习(四):FFmpeg API 介绍与通用 API 分析 中,我们简单的讲解了一下FFmpeg 的API基本概念,并分析了一下通用API,本文我们将分析 FFmpeg 在编解码时使用的API. 一.FFmpeg 解码 API 分析 1. avformat_open_input 分析 函数 avformat_open_input 会根据所提供的文件路径判断文件的格式,其实就是通过这一步来决定到底是使用哪个Demuxer. 举个例子:如果是flv,那么Demuxer就会使…