
OpenGL ES学习
文章平均质量分 84
OpenGL ES学习
Android系统攻城狮
《Android系统多媒体进阶实战》一书作者
展开
-
OpenGL之Mesa3D编译for Ubuntu20.04(三十六)
本篇目的:在docker下的Ubuntu20.04系统编译Mesa3D。Mesa3D是一个开源的3D图形库,它提供了OpenGL和Vulkan等图形API的实现。Mesa3D的目标是在不同的平台上提供高性能和兼容性的图形支持,以及为开发人员提供一个可以跨平台部署的工具。Mesa3D可以在各种操作系统上使用,包括Linux、Windows和macOS。原创 2023-11-27 11:28:02 · 488 阅读 · 0 评论 -
OpenGL之Mesa3D编译解决:llvm-config found: NO found ‘14.0.0‘ but need [‘>= 15.0.0‘](三十五)
本篇目的:解决:llvm-config found: NO found ‘14.0.0’ but need [‘>= 15.0.0’]原创 2023-11-24 00:43:15 · 1097 阅读 · 1 评论 -
OpenGL之Mesa3D编译解决:Problem encountered: Python (3.x) mako module >= 0.8.0 required to build mesa(三十四)
本篇目的:解决Xubuntu在docker中的Ubuntu20.04报错.原创 2023-11-23 22:43:44 · 1056 阅读 · 0 评论 -
GPU架构(三十三)
一、导言对于大多数图形渲染开发者,GPU是既熟悉又陌生的部件,熟悉的是每天都需要跟它打交道,陌生的是GPU就如一个黑盒,不知道其内部硬件架构,更无从谈及其运行机制。本文以NVIDIA作为主线,将试图全面且深入地剖析GPU的硬件架构及运行机制,主要涉及PC桌面级的GPU,不会覆盖移动端、专业计算、图形工作站级别的GPU。若要通读本文,要求读者有一定图形学的基础,了解GPU渲染管线,最好写过HLSL、GLSL等shader代码。1.1 为何要了解GPU?了解GPU硬件架构和理解运行机制,笔者转载 2022-04-14 21:38:15 · 4864 阅读 · 0 评论 -
GPU/GPGPU架构(三十二)
概念GPU(Graphics Processing Unit),也即显卡,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上作图像运算工作的微处理器。它已经是个人PC和移动设备上不可或缺的芯片,有界面有显示的地方,一般就离不开它。高清电视、智能手机、个人电脑。GPU的产生是为了解决图形渲染效率的问题,但随着技术进步,GPU越来越强大,尤其是shader出现之后(这个允许我们在GPU上编程),GPU能做的事越来越多,不再局限于图形领域,也就有人动手将其能力扩展到其他计算密集的转载 2022-04-14 21:31:13 · 1579 阅读 · 0 评论 -
OpenGL与shader区别(三十一)
程序员们就可以很方便的写出可直接控制GPU的代码了。更多原创,欢迎关注:Android系统攻城狮。4.所谓控制GPU,就是控制GPU的处理器。本篇目的:OpenGL与shader区别。可编程处理器(shader)原创 2022-04-14 17:39:22 · 2472 阅读 · 0 评论 -
Framebuffer基础知识(三十)
1、Framebuffer应用编程 在Linux系统中通过Framebuffer驱动程序来控制LCD。Frame是帧的意思,buffer是缓冲的意思,这意味着Framebuffer就是一块内存,里面保存着一帧图像。Framebuffer中保存着一帧图像的每一个像素颜色值,假设LCD的分辨率是1024x768,每一个像素的颜色用32位来表示,那么Framebuffer的大小就是:1024x768x32/8=3145728字节。 简单介绍LCD的操作原理:① 驱动程序设置好LCD控制器: 根据L转载 2022-03-17 17:55:55 · 4710 阅读 · 0 评论 -
Framebuffer之fset工具(二十八)
简介: 优快云博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.更多原创,欢迎关注:Android系统攻城狮原创 2022-03-16 20:03:52 · 2361 阅读 · 0 评论 -
Linux FrameBuffer操作(二十七)
所有的这些操作,都是在控制台界面下,root登录。一、先变一个魔法1.获取一屏的数据# cat /dev/fb0 > 111.bmp2.将屏幕数据显示# cat sreensnap > /dev/fb0 二、操作/dev/fb0 1)查看/dev/fb0 的信息#include <unistd.h>#include <stdio.h>#include <fcntl.h>#include <lin...转载 2022-03-16 18:43:49 · 1773 阅读 · 0 评论 -
OpenGL之显卡(二十六)
帧什么是一帧图像,从不同的维度讲会有不一样的答案。opengl 是一个跨平台api,它可以跑在windows上,linux上,android上,iOS上,也可以跑在浏览器上。opengl本身没有适配不同平台的能力,它需要一个与平台之间的适配层才能实现绘制。这个适配层在windows上叫wgl, 在linux上叫glx, 在android上叫egl。Android UI系统传给egl一个Surface对象,egl管这个Surface对象叫NativeWindow。egl拿着这个NativeWind转载 2022-02-12 01:04:03 · 2194 阅读 · 0 评论 -
OpenGL ES和EGL关系(二十五)
什么是 EGLEGL 是 OpenGL ES 和本地窗口系统(Native Window System)之间的通信接口,它的主要作用: 与设备的原生窗口系统通信; 查询绘图表面的可用类型和配置; 创建绘图表面; 在OpenGL ES 和其他图形渲染API之间同步渲染; 管理纹理贴图等渲染资源。 OpenGL ES 的平台无关性正是借助 EGL 实现的,EGL 屏蔽了不同平台的差异(Apple 提供了自己的 EGL API 的 iOS 实现,自称 EAGL转载 2021-11-19 19:35:43 · 761 阅读 · 0 评论 -
Android图形之HWC(二十四)
HWC概述HWC(hwcomposer)是Android中进行窗口(Layer)合成和显示的HAL层模块,其实现是特定于设备的,而且通常由显示设备制造商 (OEM)完成,为SurfaceFlinger服务提供硬件支持。SurfaceFlinger可以使用OpenGL ES合成Layer,这需要占用并消耗GPU资源。大多数GPU都没有针对图层合成进行优化,当SurfaceFlinger通过GPU合成图层时,应用程序无法使用GPU进行自己的渲染。而HWC通过硬件设备进行图层合成,可以减...转载 2021-11-17 20:56:45 · 8172 阅读 · 0 评论 -
Android 图形驱动初始化(二十三)
从应用程序的角度看 OpenGL 图形系统的接口,主要包括两大部分,一部分是 EGL,它为 OpenGL 渲染准备环境;另一部分是 OpenGL,它执行图形渲染。通过这些接口构造渲染环境,并执行渲染的过程,可以参考在 Android 中使用 OpenGL。对于 Android OpenGL 图形系统的实现的分析,从 EGL context 的创建开始。先来看一下获取 Display 的过程。首先来看EGLContext.getEGL(): 1 2 3 4..转载 2021-08-07 17:01:43 · 955 阅读 · 0 评论 -
Android模拟器图形绘原理(二十二)
什么是QEMUQEMU是一套模拟处理器的开源软件。它与Bochs,PearPC近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性。QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为系统源代码进行测试及除错工作变得容易。其亦能用来在一部主机上虚拟数部不同虚拟电脑。Google在开发Android系统的同时,使用qemu开发了针对每个版本的一个模拟器,这大大降低了开发人员的开发成本,便于Android技术的推广。Google使用qemu模拟的是ARM926ej-S的Goldf转载 2021-08-07 15:38:16 · 1695 阅读 · 1 评论 -
OpenGL ES与EGL的关系(二十一)
什么是OpenGL?Open Graphics Library (OpenGL) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa..转载 2021-08-05 14:57:26 · 1506 阅读 · 0 评论 -
OpenGL之Linux平台X11+OpenGL+EGL渲染(二十)
简介: 优快云博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.更多原创,欢迎关注:Android系统攻城狮原创 2021-08-03 18:04:58 · 2088 阅读 · 0 评论 -
Linux之wayland+OpenGL+EGL渲染(十九)
简介: 优快云博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.更多原创,欢迎关注:Android系统攻城狮原创 2021-08-03 18:03:50 · 3330 阅读 · 3 评论 -
OpenGL之EGL工作流程(十八)
更多原创,欢迎关注:Android系统攻城狮。本篇目的:OpenGL之EGL工作流程。原创 2021-08-03 18:00:31 · 838 阅读 · 0 评论 -
Android之WindowManager+OpenGL+EGL绘制(十七)
简介: 优快云博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.更多原创,欢迎关注:Android系统攻城狮WindowManager:Android窗口系统OpenGL(与硬件无关):通过法命令给GPU完成绘制工作.EGL(与硬件相关):是窗口系统(SDL)和OpenGL媒介原创 2021-08-03 15:55:42 · 611 阅读 · 0 评论 -
OpenGL之Linux平台SDL2+OpenGL+EGL图形渲染(十六)
简介: 优快云博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.更多原创,欢迎关注:Android系统攻城狮SDL:窗口系统(基于X11或WayLand协议)OpenGL(与硬件无关):通过法命令给GPU完成绘制工作.EGL(与硬件相关):是窗口系统(SDL)和OpenGL媒介4.编译测试原创 2021-08-03 15:51:52 · 1538 阅读 · 0 评论 -
OpenGL与gl glu glut freeglut glew glfw框架关系(十五)
本篇目的:OpenGL与gl glu glut freeglut glew glfw框架关系。更多原创,欢迎关注:Android系统攻城狮。原创 2021-08-03 14:59:57 · 587 阅读 · 0 评论 -
OpenGL之EGL、GPU工作流程(十四)
简介: 优快云博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.更多原创,欢迎关注:Android系统攻城狮4.OpenGL EGL GPU Surface工作流程: 通常来说,OpenGL 是一个操作 GPU 的 API,它通过驱动向 GPU 发送相关指令,控制图形渲染管线状态机的运行状态,但是当涉及到与本地窗口系统原创 2021-08-03 11:45:04 · 1725 阅读 · 0 评论 -
OpenGL之绘制三角形实例(十三)
简介: 优快云博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.更多原创,欢迎关注:Android系统攻城狮原创 2021-06-08 11:42:22 · 277 阅读 · 0 评论 -
OpenGL之GLFW和glad框架实例(十二)
简介: 优快云博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.更多原创,欢迎关注:Android系统攻城狮 GLFW = GLUT + OpenGL的组合.原创 2021-06-07 15:17:42 · 1033 阅读 · 0 评论 -
OpenGL之纹理绘制(十一)
简介: 优快云博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.更多原创,欢迎关注:Android系统攻城狮3.编译测试原创 2021-06-07 14:52:05 · 338 阅读 · 0 评论 -
OpenGL之Linux第一个程序(十)
简介: 优快云博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.更多原创,欢迎关注:Android系统攻城狮4.编译、执行原创 2021-06-07 11:48:04 · 594 阅读 · 0 评论 -
OpenGL之图像学基础(九)
栅格化:将矢量图(图层)转化成位图(像素)。(PS中,栅格就是像素的意思)。最基础的栅格化算法将多边形表示的三维场景渲染到二维表面。(把文字变成图像)图像显示到LCD的过程:CPU将坐标值发给GPU去绘制成矢量图,然后在栅格化成位图,GPU将渲染后的图写到显存中保存,然后发给LCD,LCD将数字信号转换成电信号,再以电子束方式射到屏幕上,从而显示出图像。图像可以看成一个个的小格子,每个格子存一种颜色,就是三原色:红色、绿色、蓝色。原创 2021-01-02 20:59:38 · 364 阅读 · 0 评论 -
OpenGL之显卡、GPU、显存之间的关系(八)
本篇目的:显卡、GPU、显存之间的关系显卡 = GPU + 显存。2.什么是显卡?显卡(Video card,Graphics card)全称显示接口卡,又称显示适配器。是电脑进行数模信号转换的设备,承担输出显示图形的任务。显卡接在电脑主板上,它将电脑的数字信号转换成模拟信号让显示器显示出来,同时显卡还是有图像处理能力,可协助CPU工作,提高整体的运行速度。3.什么是GPU?GPU:GPU是显卡的处理器(相当于CPU)(Graphic Processing Unit,图形处理单元。原创 2020-12-30 20:35:37 · 1002 阅读 · 0 评论 -
OpenGL调用GPU(七)
本篇目的:理解OpenGL如何调用GPU。PS: 其实最新版本的Mesa3D图形库也支持Direct3D9的, Mesa3D除此之外还支持OpenCl, OpenGL ES等等.原创 2020-12-30 19:41:51 · 3777 阅读 · 0 评论 -
Android OpenGL/Gralloc到framebuffer和LCD流程(六)
一、OpenGL ES与EGL Android的GUI系统是基于OpenGL/EGL来实现的。由于OpenGL是通用函数库,在不同平台系统上需要被“本土化”——把它与具体平台的窗口系统建立起关联,FramebufferNativeWindow是负责OpenGL ES在Android平台上本地化的中介之一。为OpenGL ES配置本地窗口的是EGL,EGL介于本地窗口系统和Rendering API(即OPenGL ES)之间的一层接口。 与OpenGL相关的模块可分为: (1)配置类...转载 2020-12-14 01:18:21 · 1488 阅读 · 0 评论 -
图像从程序到GPU再到LCD显示的流程:GPU渲染管线(五)
1. 模型坐标变换这个阶段主要是将各个物体的建模坐标系转换到世界坐标系。在程序中不同物体他们建模坐标系是不一样,有些适合球坐标有些适合直角坐标。但是为了将他们整合在一起,最终程序需要将他们转换到世界坐标。在游戏里面你开第一人称视角,那就是以你为原点设计了一个建模坐标系,但是你开枪击中别人以及你位于地图哪个位置。这些都是需要转换到世界坐标中统一进行计算。2. 视图变换虽然经过步骤1可以把所有物体都转换到统一的世界坐标。但是这些物体在屏幕上显示的只是某个视角的所观察到的。你打游戏开第一人称视角,移动转载 2020-12-14 01:14:20 · 786 阅读 · 0 评论 -
OpenGL ES简介(一)
原址摘要:概述 在聊Android的View渲染流程中,通常会有一个比较核心的步骤:通过OpeGL ES接口调用GPU接口通知GPU绘制图形。其完整的流程:UI对象---->CPU处理为多维图形,纹理 -----通过OpeGL ES接口调用GPU----> GPU对图进行光栅化(Frame Rate ) ---->硬件时钟(Refresh Rate)----垂直同步---->投射到屏转载 2017-05-04 11:27:27 · 1414 阅读 · 1 评论 -
android系统硬件OpenGL 3D移植(二)
通过前面两篇文章:http://blog.youkuaiyun.com/andyhuabing/article/details/7176049http://blog.youkuaiyun.com/andyhuabing/article/details/7177757大家应该对于OpenGL的框架层有个完整的理解了,而这一篇文章将是基本总结android系统中对于OpenGL的处理流程,这转载 2017-01-14 17:59:27 · 1139 阅读 · 0 评论 -
OpenGL纹理本质(三)
几个月前调试3D纹理时发现一个有趣的问题:同样的3D HW lib库在android2.2系统上可以正常工作,但在2.3系统上却不能工作,显示的图像白屏,调试了几天才将问题定位并解决,解决方法很简单:1、修改GLExtensions.h头文件对于变量mHaveDirectTexture赋值使其值为TRUE2、使用mFailoverTexture作为当前纹理绘图下面详细介转载 2017-01-14 17:37:02 · 835 阅读 · 0 评论 -
OpenGL环境搭建(四)
原址:http://blog.youkuaiyun.com/andyhuabing/article/details/6593454说起编程作图,大概还有很多人想起TC的#include吧?但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然是不行的。本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物。Ope转载 2017-01-14 17:10:37 · 509 阅读 · 0 评论