字节流动认证作者
-
OpenGL 面试中被问到的 Mipmap 纹理,了解下
纹理过滤是什么 想要了解为什么要使用Mipmap,首先要知道纹理过滤是什么。 当你在玩吃鸡的时候可能会发现一个现象,一个人在距离你5米的地方,可以观察到敌人的一举一动,包括身上的装…
-
一文搞懂 OpenGL 多重采样抗锯齿,再也不怕面试被问到了
多重采样抗锯齿(MSAA,Multisample Anti-Aliasing)是一种用于减少图形渲染中锯齿效应的技术。 锯齿是怎样产生的? 锯齿效应是由于在屏幕上渲染的图形对象边缘…
-
音视频、渲染引擎岗位面试相关, OpenGL 高频知识点
OpenGL 共享上下文使用场景?有哪些资源可以共享? 多线程渲染或者跨窗口渲染,共享上下文可以使得多个线程、窗口之间能够共享 OpenGL 对象(如纹理、shader 等)和状态…
-
Android OpenGL 实现“人像背景虚化”效果
手机上的人像模式,也被人们称作“背景虚化”或 ”双摄虚化“ 模式,也称为 Bokeh 模式,能够在保持画面中指定的人或物体清晰的同时,将其他的背景模糊掉。突出画面的主体部分,主观上…
-
Android 编译 FFmpeg 6.0 – 支持MediaCodec编解码
编译环境 这次采用的交叉编译环境是:Macos 13.2 + GCC + Cmake + NDK 21 编译的第三方库:x264 + mp3lame + fdk-aac + ope…
-
OpenGL 计算着色器(Compute Shader )你用过吗?
Compute Shader 是 OpenGL ES(以及 OpenGL )中的一种 Shader 程序类型,用于在GPU上执行通用计算任务。 与传统的顶点着色器和片段着色器不同,…
-
一口气搞懂所有 YUV 格式图像的 OpenGL 渲染(收藏)
OpenGL ES 渲染 NV21、NV12、I420、YV12、YUYV、UYVY、I444 本文主要讲解常见的几类 YUV 格式图像渲染方式,如果对 YUV 格式不是很熟悉的同…
-
OpenGLES 3D 模型
OpenGLES 3D 模型本质上是由一系列三角形在 3D 空间(OpenGL 坐标系)中构建而成,另外还包含了用于描述三角形表面的纹理、光照、材质等信息。 构建一些规则的 3D …
-
最新多线程版 FFmpeg 剖析
FFmpeg近期推出了一个重要Feature,即将原来的 FFmpeg 命令行工具由单线程变成了多线程。 如上面的命令,以前使用上面命令进行转码时,由于它是单线程工作模式,因此只能…
-
OpenGL ES 图像基本处理:腐蚀、膨胀、边缘检测
前文我们详细讲了图像锐化的基本原理,本文再介绍一下图像基本处理之腐蚀、膨胀和边缘检测,它们在图像处理和计算机视觉领域有着广泛的应用。 图像腐蚀(Image Erosion):用于缩…
-
什么是图像锐化?OpenGL ES 如何实现图像锐化?
什么是图像锐化? 图像锐化是一种图像处理技术,其目的是增强图像中的细节和边缘,使图像看起来更加清晰。这一过程通常涉及到突出图像中的高频信息,特别是强调像素之间的灰度变化。 通过增强…
-
OpenGL ES 如何直接渲染 P010、P016 格式图像?
前面文章已经介绍过如何渲染 16bit 灰度图,本篇基于同样的思路来实现 P010、P016 格式图像的渲染。 P010 最早是微软定义的格式,表示的是 YUV 4:2:0 的采样…
-
OpenGL ES 如何渲染 16bit 图像(P010)?
16bit 图像(P010) 前面讨论关于 YUV 图像 NV21、YUYV 等格式的处理,都是 8 bit YUV 格式,即每个 Y、U、V 分量分别占用 8 个 bit (一个…
-
OpenGL ES 3.0 帧缓冲区失效
很多朋友都听说过 glInvalidateFramebuffer(帧缓冲区失效)这个 API ,很多读者私信问过很多次:帧缓冲区失效应该怎么使用?在什么条件下使用?有什么好处? 函…
-
Bokeh 效果性能慢和锯齿问题怎么解决?
一位球友在看过抖音、视频号流行的 Bokeh 效果是怎么实现的? 这篇文章,刚好也在用里面的圆形 Bokeh 效果,但是却遇到了性能和锯齿问题,希望给出一些建议。 性能和锯齿这两个…
-
OpenGL YUV 和 RGB 图像转换出现偏色问题怎么解决?
早上知识星球里的一位同学,遇到 yuv2rgb 偏色问题,这个问题比较典型,今天展开说一下。 省流版 直接贴出来更精确的转换公式: 刨根问底版 理论上,rgb2yuv 和 yuv2…
-
关于 OpenGL 的渲染上下文
OpenGL 上下文 OpenGL 的上下文(OpenGL context)是一个 OpenGL 绘图环境的抽象概念,它包括了所有 OpenGL 状态信息和资源,以便OpenGL能…
-
Camera 和 MediaCodec 对视频旋转角度的处理
Surface 和 GLConsumer 对视频旋转角度的处理 最近遇到一个有趣的问题:通过MediaCodec解码带旋转角度的视频时,如果Output Surface是Textu…
-
你是怎样录制 OpenGL ES 的渲染结果?
我们使用OpenGL ES将摄像头数据绘制至手机屏幕。如果我们需要对图像数据进行了美颜等处 理,这些处理都是在着色器中完成的,那么我们如何从着色器拿到数据然后进行编码生成视频呢? …
-
Android录制视频,软编实现音视频的录制
软编实现音视频录制 前言 之前的硬编我们可以基于 Android 官方提供的 MediaCodec 来实现编码,基本上可以做到一边录制一边编码并封装为MP4文件。 速度肯定是更快的…