自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 wayland(xdg_wm_base) + egl + opengles 使用 Assimp 加载带光照信息的材质文件Mtl 实现光照贴图的最简实例(十七)

本文主要介绍opengles 如何使用 第三方库Assimp(基于C++) 加载一个最简单的带光照信息以及纹理 的3d 立方体model,3d 立方体 model 信息存储在 cube.obj 中,光照信息以及纹理图片信息存储在cube.Mtl 材质文件中,主要是介绍如何使用Assimp 解析Mtl 文件。软硬件环境:硬件:PC软件:ubuntu22.04 egl1.4 weston9.0 opengles3.0 libassimp.so.5.2.0。

2024-03-19 22:20:41 878

原创 wayland(xdg_wm_base) + egl + opengles 使用 Assimp 加载材质文件Mtl 中的纹理图片最简实例(十六)

本文主要介绍opengles 如何使用 第三方库Assimp(基于C++) 加载一个最简单的带纹理 的3d 立方体model,3d 立方体 model 信息存储在 cube.obj 中,纹理图片信息存储在cube.Mtl 材质文件中,主要是介绍如何使用Assimp 解析Mtl 文件。软硬件环境:硬件:PC软件:ubuntu22.04 egl1.4 weston9.0 opengles3.0 libassimp.so.5.2.0使用gcc 编译 c++ 代码时 ,需要加上 -lstdc++ 选项。

2024-03-19 21:56:55 1000

原创 wayland(xdg_wm_base) + egl + opengles 光照模型实例(十五)

本文主要介绍如何使用 wayland(xdg_wm_base) + egl + opengles3.0 绘制一个使用冯氏光照模型(Phong Lighting Model)的绕Y轴旋转的正方体,主要涉及环境(Ambient)、漫反射(Diffuse)和镜面(Specular)光照,使用一个固定位置和颜色的光源。

2024-03-13 23:40:02 1004

原创 wayland(xdg_wm_base) + egl + opengles 渲染使用纹理贴图的旋转 3D 立方体实例(十三)

本文主要介绍如果使用 wayland(xdg_wm_base) + egl + opengles3.0 绘制一个使用纹理贴图的绕Y轴旋转的正方体,涉及纹理图片加载(stb_image.h)等相关知识软硬件环境:硬件:PC软件:ubuntu22.04 egl1.4 opengles3.0 weston9.0stb_image 库相关的接口可以用于加载 JPG 等格式的图片;

2024-03-13 22:34:07 1269

原创 wayland(xdg_wm_base) + egl + opengles 使用 Assimp 加载3D model 最简实例(十四)

本文主要介绍opengles 如何使用 第三方库Assimp(基于C++) 加载一个最简当的3d 立方体model软硬件环境:硬件:PC软件:ubuntu22.04 egl1.4 weston9.0 opengles3.0 libassimp.so.5.2.0模型通常都是通过Blender、3DS Max或者Maya这样的3D建模工具(3D Modeling Tool)精心制作出来的。

2024-02-27 00:59:56 1138 1

原创 opengles 背面剔除介绍(十二)

本文主要介绍 opengles3.0 中的背面剔除相关知识,对于绘制3d 图形, 经常会用到它,并且它能提升渲染效率软硬件环境:硬件:PC软件:ubuntu22.04 opengles3.0OpenGL ES也支持剔除功能,可以通过启用面剔除来提高渲染性能。面剔除是一种在渲染过程中忽略掉某些面的技术,从而减少不可见的面的绘制,节省处理时间和带宽。

2024-02-26 00:52:35 482

原创 wayland(xdg_wm_base) + egl + opengles 渲染旋转的 3D 立方体实例(十一)

本文主要介绍如果使用 wayland(xdg_wm_base) + egl + opengles3.0 绘制一个绕Y轴旋转的正方体,涉及顶点坐标变化,模型,视图,投影矩阵等相关内容软硬件环境:硬件:PC软件:ubuntu22.04 egl1.4 opengles3.0 weston9.0使用视图矩阵时,移动的距离越远,立方体看上去会越小,出现缩放的效果;正面和背面是由三角形的顶点顺序和观察者方向共同决定的,随着观察者的角度变化,正背面也会跟着改变,这也与现实中的情况相吻合。

2024-02-26 00:20:47 973

原创 opengles 绘制图元 ——glDrawArrays() 相关API介绍 (十)

本文主要介绍 opengles3.0 所支持的绘制图元 API 相关接口, 这里主要介绍绘制三角形的接口软硬件环境:硬件:PC软件:ubuntu22.04 opengles3.0opengles3.0 中有5个绘制图元的API 调用,分别是其中目前用的比较多的是前3个 API接口,特别是前2个,用的场景特别多。glDrawArrays是一个OpenGLES函数,用于根据顶点数组中的数据进行绘制。它可以绘制一系列的图元,如点、线、三角形等,这些图元的顶点数据都存储在顶点数组中。

2024-02-25 23:15:30 1194

原创 opengles 顶点坐标变换常用的矩阵(九)

本文主要介绍 opengles 常用的 model 矩阵(包括用于位移, 缩放,旋转的4x4 矩阵),以及使用第三方的封装库生成 opengles 的 model ,view, projection(模型,视图,投影)矩阵。软硬件环境:硬件:PC软件:ubuntu22.04 opengles3.0opengles 的最终使用的顶点坐标是由局部坐标经过与model , view, projection 矩阵依次相乘之后得到的;

2024-02-25 00:00:14 1106

原创 wayland(xdg_wm_base) + egl + opengles 使用FBO渲染到纹理实例(六)

本文主要介绍 如何在 opengles 中使用FBO 实现渲染到纹理的功能软硬件环境:硬件:PC软件:ubuntu22.04 opengles3.0 egl1.4FBO(Framebuffer Object)是OpenGL的一个扩展,它允许我们将渲染结果直接绘制到一个纹理或者渲染缓冲对象中,而不是默认的帧缓冲。使用FBO可以实现一些高级的渲染技术,如离屏渲染、后期处理、抗锯齿等。

2024-02-16 22:23:25 1307

原创 wayland(xdg_wm_base) client 使用 dmabuf 最简实例

本文主要介绍如何在wayland client import 其他模块导出dma-buf, 送给wayland server(weston) 显示软硬件环境:硬件:aarch64软件: weston8.0 kernel5.10zwp_linux_dmabuf_v1 是 Wayland 协议中的一个扩展,用于在 Wayland 中传输 DMA-BUF 对象。

2024-02-16 20:25:45 950

原创 wayland(xdg_wm_base) + egl + opengles——dma_buf 作为纹理数据源(五)

本文主要描述如何在一个wayland client 中将一个 dma_buf import 作为一个 opengles texture 数据源软硬件环境硬件:aarch64软件:linux5.10 opengles2.0/3.0 egl1.5OpenGL ES 2.0 引入了 glEGLImageTargetTexture2DOES 函数作为一个扩展接口,用于将 EGL 图像对象绑定到纹理上,故要使用glEGLImageTargetTexture2DOES 需要添加头文件。

2024-02-16 18:21:22 1317

原创 gstreamer 常用的图片格式转换命令

本文主要介绍如何使用 gstreamer 对图片进行格式转换,以及获取 pattern 图片相关的命令软硬件环境:硬件:PC软件:ubuntu22.04 gstreamer 1.20.3videotestsrc 是gstreamer中用来生成图像数据的插件,它支持各种数据格式,以及分辨率;gstreamer 同一个插件设置多个属性时,它们之间要用空格隔开;用videotestsrc 插件可以生成各种数据格式的pattern 图片;

2024-02-14 01:48:46 832

原创 wayland(xdg_wm_base) + egl + opengles 纹理贴图进阶实例(四)

本文主要介绍如何在一个wayland client 里面使用 egl + opengles 读取一个 pattern 图片数据进行纹理贴图,在阅读本篇文章之前,建议先读一下之前的文章《wayland(xdg_wm_base) + egl + opengles 最简实例(一)》软硬件环境硬件:PC软件:ubuntu22.04 weston9.0 opengles2.0/3.0 egl1.4opengles 里面存在多个坐标系,要区分这些坐标系;

2024-02-13 23:30:33 1214

原创 wayland(xdg_wm_base) + egl + opengles 绘制四边形实例(二)

本文主要介绍在使用wayland 协议作为窗口系统的Linux系统中,如何使用 egl + opengles 绘制一个最简单的四边形,在阅读本篇文章之前,建议先读一下之前的文章《wayland(xdg_wm_base) + egl + opengles 最简实例》软硬件环境:硬件:PC软件:ubuntu22.04 egl1.4 opengles2.0 weston9.0VBO(Vertex Buffer Object)是一个顶点缓冲区对象,它用来存储顶点数据。

2024-01-27 00:44:20 821

原创 wayland(xdg_wm_base) + egl + opengles 纹理贴图最简实例(三)

本文主要介绍如何在一个wayland client 里面使用 egl + opengles 实现一个最简单的纹理贴图功能,在阅读本篇文章之前,建议先读一下之前的文章《wayland(xdg_wm_base) + egl + opengles 最简实例》软硬件环境硬件:PC软件:ubuntu22.04 weston9.0 opengles2.0 egl1.4纹理贴图(Texture Mapping)是计算机图形学中的一种技术,用于将图像或纹理应用到模型的表面上,以增强模型的外观和细节;

2024-01-25 01:18:18 1172

原创 weston debug 介绍

本文主要介绍如何对 weston 进行 debug软硬件环境:硬件:PC软件:ubuntu22.04 weston9.0weston-debug 是一个用于调试和诊断 weston 显示服务器的工具,通过运行 weston-debug 命令,可以启动 weston 调试会话,并获取关于 weston 服务器的各种信息和日志weston-debug 是一个命令行工具,它需要在 weston 已经运行(带 --debug 参数运行)的情况下,才能使用;

2024-01-24 23:40:04 944

原创 ubuntu 各版本图形界面和命令行切换快捷键介绍

本文主要介绍如何使用快捷键进行ubuntu 的图形界面和命令行模式切换,涉及如下 几个ubuntu 版本不同的ubuntu 版本,图形界面和命令行模式切换的快捷键可能不一样;新版本的ubuntu 图形界面和命令行模式切换的快捷键趋于一致(ubuntu18.04, ubuntu20.04, ubuntu22.04 三者已经一致);

2024-01-23 00:28:00 2030

原创 EGL + GBM + OPENGLES 最简实例

本文主要介绍如何在 linux 下实现一个 egl + gbm + opengles 的最简demo 实例软硬件环境硬件:PC软件:ubuntu18.04 egl1.4 opengles2.0 libgbm libdrmegl + gbm + opengles 这种方式是在没有窗口系统的情况下运行的,因为 /dev/dri/card* 只能被一个进程所使用;kmscube以及weston都是使用 egl + gbm + opengles 这种方式来进行渲染和显示的;

2024-01-22 23:53:21 1157

原创 wayland(wl_shell) + egl + opengles 实例——gears

文章目录前言一、ubuntu 上 opengl 版本的 glxgears二、基于 wayland 窗口协议的 gles-gears1.egl_wayland_gears.c2. matrix.c 和 matrix.h3. 编译4. 运行总结参考资料前言本文主要介绍如何在linux 下 wayland 窗口中,使用 egl + opengles 控制GPU 渲染 gears 并显示,即实现一个wayland 版本的gles-gears软硬件环境:硬件:PC软件:ubuntu18.04 westo

2024-01-22 22:43:18 1070

原创 wayland(xdg_wm_base) + egl + opengles 最简实例(一)

文章目录前言一、ubuntu 下相关环境准备1. 获取 xdg_wm_base 依赖的相关文件2. 查看 ubuntu 上安装的opengles 版本3. 查看 weston 所支持的 窗口shell 接口种类二、xdg_wm_base 介绍二、egl_wayland_demo1.egl_wayland_demo2_0.c2.egl_wayland_demo3_0.c3. xdg-shell-protocol.c和 xdg-shell-client-protocol.h4. 编译和运行4.1 编译4.2 运

2024-01-21 01:01:30 1193

原创 wayland(wl_shell) + egl + opengles 最简实例

本文主要介绍如何在 linux 下使用 egl + opengles2.0 相关接口渲染一个三角形的 wayland client 最简程序实例软硬件环境:硬件:PC软件:ubuntu18.04, egl1.4 , opengles2.0, weston3.0wl_shell是Wayland协议早期版本中定义的一种窗口管理器接口wl_shell提供了一组固定的窗口管理功能,比如创建新窗口、设置窗口标题和边框、调整窗口大小和位置等;wl_shell的设计相对较简单,适用于基本的窗口管理需求;

2024-01-20 22:50:28 1067

原创 qnx 上 screen display最简实例

本文主要介绍如何使用screen 相关接口来进行显示,并提供一个最基本的显示代码实例qnx7.1如下图所示,是 qnx 官方文档对Screen的介绍,其实它就是一个窗口系统(处理显示,输入设备,事件等)单纯的建立一个显示应用的主要的流程如下图所示(针对本文,第7条可以不用关心)qnx 上所有的显示应用都需要通过screen 来和底层对接;screen 是一个窗口系统;screen 对于软件渲染和硬件渲染分别有各自的接口;

2024-01-18 23:22:39 1153

原创 qnx 上screen + egl + opengles 最简实例

本文主要介绍如何在QNX 系统上使用egl和opengles 控制GPU渲染一个三角形并显示到屏幕上,是一个最基础的screen + egl + opengles 使用实例qnx7.1egl1.4screen 是 qnx 上的窗口系统(和linux 上的 weston 类似),所有显示相关的应用都是通过它来对接底层的;通过调用screen 相关的接口生成 egl 所需要的窗口参数,opengles 负责具体的渲染;

2024-01-18 22:41:37 1333

原创 weston 源码下载及编译

本文主要介绍 weston 9.0源码的下载和编译,weston 的编译依赖meson, 需要先在ubuntu 上安装meson软硬件环境:软件:ubuntu 22.04 weston 9.0 meson 1.3.1 ninja 1.10.1 pip 22.0.2硬件:PC。

2023-12-30 19:51:06 999

原创 内核模块参数

本文主要介绍linux kernel 中的内核模块参数,包括内核模块参数相关的宏定义,参数,以及使用方法等前面的文章已经介绍了内核模块,内核模块参数就是内核模块使用的参数,像用户程序一样, 内核模块也可以接受命令行参数,这样就可以根据给定的参数动态的改变内核模块的行为。如下图所示是,内核模块参数在内核源码中的宏定义由上图所知, module_param()主要有3个参数,分别是nametypepermname: 用作内核模块参数的变量名称。

2023-12-18 23:23:37 799

原创 gstreamer debug方法

本文主要介绍 gstreamer 中的 debug 机制,包括 debug level的介绍,以及pipeline dot 格式文件的生成方法等硬件环境:PC软件环境:ubuntu18.04如下图所示,是gstreamer 官网 debug level 介绍,目前最新的GStreamer提供了9种级别,用于输出不同类型的日志在使用时,我们只需将GST_DEBUG环境变量设置为相应级别,所有小于其级别的信息都会被输出,例如:设置,我们会得到ERROR及WARNING级别的日志例如:使用。

2023-12-13 00:09:35 962

原创 media-ctl 生成拓扑和数据流图

本文主要介绍在Linux下如何通过media-ctl 工具生成生成V4L2 和 Media 框架的拓扑和数据流图硬件环境:PC软件环境:ubuntu16.04media-ctl 工具,对于配置图像数据 pipeline 非常有用,实现了动态调整图像pipeline 的功能;使用 media-ctl 工具生成的拓扑和图像数据pipeline 图非常的生动形象;

2023-12-12 22:02:03 1039

原创 QNX Typed memory介绍

本文主要介绍QNX 里面的 Typed memory 机制,它类似于 linux 里面的 reserved memory ,可以从系统内存中分出一部分内存用来给特定的硬件模块使用qnx7.1如下图所示, 是QNX 官网对的介绍,它和 linux 里面的类似,可以从系统内存中分出一部分内存用来给特定的硬件模块使用,如GPU,VSP等硬件模块目前有两种方法,分别是使用as_add()建立一个普通的内存池,和使用建立一个DMA 内存池。

2023-11-17 00:47:03 227

原创 qnx 工程目录创建工具 addvariant

本文主要介绍如何在qnx 开发环境中创建工程目录及其相关的配置文件(common.mk, Makefile 文件等)qnx7.1addvariant 是qnx 系统中创建新工程目录及其相关配置文件的一个工具命令;

2023-11-16 22:42:29 312

原创 QNX 字符设备 resource manager 实例

本文主要介绍如何编写一个 qnx 下 的 char device resource managers (字符设备驱动)软件环境:qnx7.1qnx 和 linux 有太多相似的地方,字符设备节点标识, linux 中的 ioctl 与 qnx 中的 devctl 等都一样;

2023-11-14 01:38:40 244

原创 qnx log 系统

和linux 中查看 kernel log 信息的 dmesg 命令一样, qnx 里面也有一个查看 log 信息的命令,那就是slog2info命令, 如下图所示是qnx 官网对其的介绍slog2info 打印的是 slogger2 所记录的 log 信息,所以在执行 slog2info 命令之前,slogger2 必须已经在系统中处于运行状态;qnx 里面也可以使用 printf() 进行打印 log, 只是它不被系统 log(slogger2。

2023-11-14 00:47:25 1107

原创 C 语言左移位操作在kernel驱动子系统中的特殊用途

本文主要介绍C语言的移位操作(左移

2023-11-03 02:18:00 324

原创 resource manager OCB structure(iofunc_ocb_t) 扩展实例

本文主要介绍如何对qnx系统下的resource manager OCB structure(iofunc_ocb_t) 数据结构进行扩展软件环境:qnx7.1)的扩展比attributes structure() 的扩展要复杂,需要自己提供申请和释放数据结构的函数,并和mount 进行绑定;扩展后的 OCB structure 必须将原始的 iofunc_ocb_t 作为它的第一个成员;

2023-11-01 00:43:00 158

原创 resource manager attributes structure(iofunc_attr_t) 扩展实例

本文主要介绍如何扩展 QNX resource manager 的 attributes structure() 属性数据结构软件环境:qnx7.1当原始的 attributes structure() 数据结构无法保存我们想保存的设备相关信息的时候,就需要它进行扩展;扩展后的 attributes structure 必须将原始的作为它的第一个成员;对。

2023-10-31 23:52:38 111

原创 qnx resource managers 实例

本文主要介绍如何编写一个 qnx 下 的 device resource managers (设备驱动)qnx7.1qnx 官方文档非常丰富,对各类数据结构,函数接口等都有详细的介绍,碰到问题要多查看官方文档;对于 resource manager 相关的头文件引用,编写代码时要注意引用顺序,不然容易出现编译报错(数据结构相关的异常错误);

2023-10-31 22:44:38 146

原创 VMware Workstation里面安装ubuntu20.04的流程

本文主要介绍如何在PC上的虚拟机(VMware Workstation)里面安装desktop 版 ubuntu20.04软硬件环境:ubuntu官网下载自己所需的desktop ubuntu 版本根据自己电脑的硬件配置,为虚拟机设置合适的内存,处理器,硬盘等资源。

2023-10-20 22:50:10 330

原创 使用 gst-element-maker 创建一个完全透传的 videofilter 插件

本文主要介绍如何使用gst-plugins-bad 里面的 gst-element-maker 工具创建一个基于 videofilter base class 的透传功能videofilter gstreamer插件(上一篇文章使用 gst-plugins-bad 里面的 gst-element-maker 工具创建gstreamer 插件只是创建了一个最基础的videofilter 插件,但是它不支持透传功能,即进入该插件 sink pad 的数据不能从该插件的 src pad 发送出去)

2023-09-29 20:12:37 236 1

原创 使用 gst-plugins-bad 里面的 gst-element-maker 工具创建gstreamer 插件

本文主要介绍如何使用gst-plugins-bad 里面的 gst-element-maker 工具创建新的gstreamer插件,这是目前创建gstreamer插件最新的方法。软硬件环境:gst-element-maker 工具是一个shell 脚本, 由一系列的命令组成, 包括参考插件模块生成新的插件代码,以及编译新的插件代码生成对应的.so 文件;gst-element-maker 工具是通过同目录下的插件模板来创建新的插件的,支持的插件模板种类是有限的;

2023-09-29 00:19:09 306

原创 使用 gst-template 创建自己的 gstreamer 插件

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

2023-09-10 22:14:02 261

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除