

字节流动认证作者
-
你是怎样录制 OpenGL ES 的渲染结果?
我们使用OpenGL ES将摄像头数据绘制至手机屏幕。如果我们需要对图像数据进行了美颜等处 理,这些处理都是在着色器中完成的,那么我们如何从着色器拿到数据然后进行编码生成视频呢? …
-
Android录制视频,软编实现音视频的录制
软编实现音视频录制 前言 之前的硬编我们可以基于 Android 官方提供的 MediaCodec 来实现编码,基本上可以做到一边录制一边编码并封装为MP4文件。 速度肯定是更快的…
-
OpenGL 面试:发光的原理是什么?
内发光原理 内发光原理简单概况是:采样周边像素alpha取平均值叠加效果。概括来说似乎好像特别简单,但需要一定的理解和消化。 发光物体可以当做是一个圆形对象,去采集圆形对象周边像素…
-
OpenGL 学了那么久了,glViewport 你真的会用吗?
OpenGL中的 glViewport 函数用于定义视口(Viewport),即确定窗口中显示的区域。它的定义如下: 参数解释: glViewport函数的作用是将正投影坐标(Op…
-
OpenGL ES Shader 怎样绘制一颗“心”
今天讲一下绘制心形的两种方式,主要是为了扩展一下绘制复杂形状的思路,为后面讲特效做一些简单的铺垫。 心形绘制可以参考 ShaderToy 上的代码:https://www.shad…
-
OpenGL ES 动态贴纸实现
动态贴纸是人脸特效中的一种的效果体现(基于人脸识别SDK)。比如抖音、快手等短视频应用,或者美颜相机、美图秀秀等相机类应用。动态贴纸最常用的是2D,3D贴纸这里不做介绍。 2D贴纸…
-
OpenGL ES 如何使用 AHardwareBuffer 进行渲染
GraphicBuffer 是Android设计的一种高性能 buffer,其具备一些比较优越的特性,如: 这几个特性可以实现的功能有: 但在GraphicBuffer在使用时存在…
-
FFmpeg 实现视频转图片
代码实现视频转图片主要是使用了 FFmpeg 视频编解码相关的知识,所以首先了解下FFmpeg 中的编解码相关函数以及流程,后面再看代码就会比较轻松了。 视频解码 视频编码(保存为…
-
Shader 编程:只用一个函数就能生成三角形、矩形等所有的正多边形
绘制多边形的思路跟画圆的思路一样,圆形可以看做一个有正无穷边的多边形。有了这个思路你就可以明白,我们需要为每条边划分对应的弧度,弧度相同它就是正多边形。 直接上代码: 代码里比较关…
-
Shader 实现彩虹旋涡的4个示例代码
本文分享绘制彩虹漩涡的4个示例代码。 示例代码一 先绘制一个螺旋状的图形 代码效果: 中心点大体在(0.5,0.75)的位置上 示例代码二 代码效果 加入color += sin(…
-
Vulkan中的同步机制,含显示和隐藏的同步控制
在前面的文章中,我们讲解了Vulkan的多线程设计理念,分析了其底层的机制。我们知道在Vulkan的设计中,尽量避免资源的同步竞争,但是在某些复杂场景和多线程优化过程中难免会遇到资…
-
Shader 编程基本图形:圆和曲线
由于主流的 Shader 编程网站,如 ShaderToy, gl-transitions 都是基于 GLSL 开发 Shader ,加上 MSL 和 GLSL 语法上差别不大,后…
-
OpenGL ES 3.0 怎样将着色器程序二进制化
之前有位 VIP 读者提问:C++ 如何将 OpenGL ES 的着色器程序二进制(保存),然后在其他地方加载使用?现在写篇文章介绍下。 将着色器程序二进制化(Shader Pro…
-
OpenGL & Metal Shader 编程:GLSL 重要的内置函数
为啥要单独写一篇讲讲 GLSL 的几个常用内置函数?主要是为了避免新手在 Shader 编程中看到一些关键字,如 ceil,f ract, smoothstep 等一脸懵。 推荐一…
-
OpenGL & Metal Shader 编程:ShaderToy 内置全局变量
Shader 编程系列 2。由于主流的 Shader 编程网站,如 ShaderToy, gl-transitions 都是基于 GLSL 开发 Shader ,加上 MSL 和 …
-
Shader 是什么? OpenGL ES 和 Metal Shader
前面发了一些关于 Shader 编程的文章,有读者反馈太碎片化了,希望这里能整理出来一个系列,方便系统的学习一下 Shader 编程。 这不就来了,从这一篇就开启 Shader 编…
-
OpenGL Shader 常用的二维矩阵变换
2D Matrices 二维矩阵 平移 之前的章节我们学习了如何制作一些图形 – 而如何移动它们的技巧则是借助移动它们自身的参考坐标系。我们只需要给 st 变量加上一…
-
OpenGL Shader 中的随机与噪声
一、随机(random) 说到随机函数,JavaScript 中有 Math.random(),PHP 中有rand(),在图形绘制时,随机也无处不在。《The Book Of S…
-
OpenGL Shader 颜色混合模式(Blend Mode)
在之前的文章中提及了 Shader 中的颜色计算,介绍了一些基本的颜色混合计算,然而在实际的 Shader 滤镜中,简单到加减乘除并不能很好地还原出我们想要的效果,mix()也只是…
-
OpenGL 转场特效都是怎么实现的
前言 转场效果在视频编辑工具中最为常见,在两段视频或图像之间增加一个「过渡」的效果,可以让整个过程更佳柔滑自然。常见的转场如渐变过渡、旋转、擦除等(下图为 iMovie 自带转场)…