字节流动
-
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 自带转场)…
-
OpenGL Shader 编程基础-绘制基础图形
我们可以通过顶点着色器来绘制点线面图形,并组合成其他各种形状,但是一般 2D 场景中,顶点着色器一般都不改,并且它一般决定的是整个画布的大小。 所以这里探讨的是通过片元着色器来绘制…
-
Metal 和 OpenGL ES 的差异,快速入门 Metal 开发
本文介绍Metal和Metal Shader Language,以及Metal和OpenGL ES的差异性,也是实现入门教程的心得总结。 Metal Metal 是一个和 Open…
-
OpenGL shader 彩虹效果滤镜
在一款图片处理软件colorow中发现彩虹效果滤镜感觉蛮有意思。 在OpenGL Shader系列更新到现在尝试通过之前积累的知识点来自行实现效果。 回顾 之前使用过内置函数smo…
-
OpenGL Shader 滤镜特效的原理和实际应用
本文目标是最终能够自己通过OpenGL或者借助一些三方库GPUImage写一些简单的滤镜、特效shader,明白原理和整个流程 OpenGL简介 OpenGL是各个平台的统称,移动…
-
Vulkan多线程渲染(Vulkan渲染有什么用)
1. Vulkan概述 1.1 计算机图形软件 图形软件有两个大类:专用软件包(special-purpose packages)和通用编程软件包(general programm…
-
Vulkan 内存管理
一、简介 内存管理对开发者来说永远是一个沉重的话题。 现有的高级语言都在通过各种努力,试图让开发者摆脱内存管理的复杂工作,专注于业务逻辑的开发。这样的做法对开发者是友好的,较低的语…
-
Vulkan 相比于 OpenGL 优势在哪?
1. Vulkan起源和历史 1.1 AMD Mantle 2013年,AMD主导开发了Mantle。Mantle是面向3D游戏的新一代图形渲染 API,可以让开发人员直接操作GP…
-
基于 HardwareBuffer 实现 Android 多进程渲染
提到多进程渲染,通常会想到 Chrome 浏览器的多进程架构,其每个页面 tab、插件都是运行在独立进程,并且有一个单独的 GPU 进程,这里最明显的好处是可以隔离各模块之间的耦合…
-
Android-Native 开发之利用 AAudio 播放音频
谈到在Android C/C++层实现音频播放/录制功能的时候,大家可能首先会想到的是利用opensles去做,这确实是一直不错的实现方式,久经考验,并且适配比较广。 但如果你的项…
-
Android 源码中的 JNI,到底是如何使用的?
Linux下 JNI的使用 学习 Android 其中涉及对 JNI 的使用;JNI的使用对于 Android 来说又是十分的重要和关键。那么到底 Java 到底是如何调用 C/C…
-
Android Bitmap 像素排列与 JNI 操作
图像的数值表示 RGB RGB颜色模型即红绿蓝颜色模型。由模仿生物视网膜三种视锥细胞产生,之后通过三原色叠加来进行彩色图像显示。通过在黑色上不断叠加三原色来显示不同的颜色。在RGB…
-
Vulkan 和 OpenGL 的区别
Vulkan 和 OpenGL 区别,Vulkan 与 OpenGL 相比,可以更详细的向显卡描述你的应用程序打算做什么,从而可以获得更好的性能和更小的驱动开销。 Vulkan 的…
-
音视频同步原理及实现
本文主要描述音视频同步原理,及常见的音视频同步方案,并以代码示例,展示如何以音频的播放时长为基准,将视频同步到音频上以实现视音频的同步播放。 1.音视频同步简单介绍 对于一个播放器…
-
如何使用 FFmpeg 打造自己的播放器
前面 FFmpeg 系列的文章中,已经实现了 FFmpeg 的编译和集成,基于 FFmpeg 实现音视频的播放、录制,并结合 OpenGL 添加丰富的滤镜等功能,这些 d…