在Linux中开发OpenGL——检查开发环境对OpenGL ES的支持

        由于移动端GPU规模有限,厂商并没有实现完整OpenGL特性,而是实现了它的子集——OpenGL ES。因此如果需要开发程序要支持移动端平台最好使用OpenGL ES开发

1、  下载支持OpenGL ES Demo

1.1载PowerVRSDK支作为准备里面自带编译libEGL.soligGLESv2.so(非必须)

git clone
GitHub - powervr-graphics/Native_SDK: C++ cross-platform 3D graphics SDK. Includes demos & helper code (resource loading etc.) to speed up development of Vulkan, OpenGL ES 2.0 & 3.x applications

1.2、下载OpenGL ES Demo,方便直接测试环境:

git clone GitHub - danginsburg/opengles3-book: OpenGL ES 3.0 Programming Guide Sample Code

        为什么选择这个因为它根目录就有一个很规范的CMakeLists.txt可供参考,而且它教程每个章节里面也有CMakeLists.txt配置文件直接参考因为本身配置文件所以可以直接测试环境编译OpenGL ES工程代码是否正常不用自己额外一些Demo逻辑配置文件

        例如它根目录CMakeLists.txt配置如下

cmake_minimum_required( VERSION 2.6 )
project( ES3_Book )

include_directories( External/Include )
include_directories( Common/Include )

find_library( OPENGLES3_LIBRARY GLESv2 "OpenGL ES v3.0 library")
find_library( EGL_LIBRARY EGL "EGL 1.4 library" )
 
SUBDIRS( Common
         Chapter_2/Hello_Triangle
         Chapter_6/Example_6_3 
         Chapter_6/Example_6_6
         Chapter_6/MapBuffers
         Chapter_6/VertexArrayObjects
         Chapter_6/VertexBufferObjects
         Chapter_7/Instancing
         Chapter_8/Simple_VertexShader
         Chapter_9/Simple_Texture2D 
         Chapter_9/Simple_TextureCubemap
         Chapter_9/MipMap2D
         Chapter_9/TextureWrap
         Chapter_10/MultiTexture
         Chapter_11/MRTs
         Chapter_14/Noise3D
         Chapter_14/ParticleSystem
         Chapter_14/ParticleSystemTransformFeedback 
         Chapter_14/Shadows 
         Chapter_14/TerrainRendering )	
		

        拿其中一个工程配置作为例子举例

add_executable( Hello_Triangle Hello_Triangle.c )
target_link_libraries( Hello_Triangle Common )

        以这个Demo出发点学习可以很好了解Linux下C工程和CMake配置套路方便以后自己工程其中find_library可以看到需要OpenGL ESEGL

2、  工程环境配置

进入Demo工程根目录例如

~/Documents/Book/OpenGL/opengles3-book

进入输入

mkdir build
cd build

(这个文件夹是用于存放编译后的输出文件的)

然后再输入

cmake ../

如果如图所示没有任何错误可以继续

之后编译生成的产物就会放入build目录

3、  ccmake检查配置

进入Demo工程目录输入如下命令

ccmake ../

3.1 如果已经libGLESv2.so:

        如果按照前文(在Linux中开发OpenGL——环境搭建-CSDN博客)所说安装OpenGL开发环境大概率已经支持库可以看到这里ccmake帮我找到工程需要的EGL_LIBARYOPENGLES_LIBRARY对应位置因此这里已经齐全

3.2 如果没有LibGLESv2.so:

        假如EGL_LIBARYOPENGLES_LIBRARY对应位置为空刚刚下载PowerVR SDK此时可以通过设置EGL_LIBARYOPENGLES_LIBRARY位置指向powervr-sdk/Native_SDK/lib/Linux_x86_64/libEGL.solibGLESv2.so即可这位博主一样

[OpenGL ES 3.0编程指南]编译环境的搭建_linux编译opengl es教程-CSDN博客

4、  编译

build文件路径输入

cmake

如图所示,等待编译完成

输入

ls

可以看到编译产物

5、  运行

进入/build/Chapter_14/Shadows文件夹输入ls可以看到编译Shadows程序

此时输入./Shadows即可运行该OpenGL ES程序,效果如图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/982562.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python项目】基于深度学习的电影评论情感分析系统

【Python项目】基于深度学习的电影评论情感分析系统 技术简介:采用Python技术、Flask框架、MySQL数据库、Word2Vec模型等实现。 系统简介:该系统基于深度学习技术,特别是Word2Vec模型,用于分析电影评论的情感倾向。系统分为前台…

SLAM评估工具安装及使用EVO(Ubuntu20.04安装evo)--缺少 onnx 库还有Pandas 版本不兼容解决

介绍一下我的是ubuntu20.04.机载电脑是orinnx,通过源码烧写的系统。 首先打开终端,输入 pip install evo --upgrade --no-binary evo 安装过程中出现如下问题 缺少 onnx 库还有Pandas 版本不兼容, ONNX(Open Neural Network E…

Arcgis中添加脚本工具箱

文章目录 准备资料1、打开arcmap2、找到目录窗口3、复制粘贴工具箱的路径4、添加或者确认python脚本路径准备资料 (1)工具箱 (2)python脚本 1、打开arcmap 2、找到目录窗口 3、复制粘贴工具箱的路径 4、添加或者确认python脚本路径 脚本上右键属性(注意:脚本内容和路径…

第二次CCF-CSP认证(思路及源码)

第二次CCF-CSP认证 第一道(easy)思路及AC代码 第二道(easy)基本思路及AC代码 第三道(mid)基本思路及AC代码solution 1 (模拟)solution 2(KMP) 第一道(easy) 题…

RAGflow 无法加载Embedding模型

部署0.17版本的RAGflow,在模型列表中已经添加了嵌入模型,但是知识库配置时,嵌入模型灰显: 问题原因: 提前上传了一个文档,在知识库有文档之后,就不能够修改嵌入模型了。删除文档之后&#xff0…

C++ Primer 拷贝、赋值与销毁

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

【够用就好006】如何从零开发游戏上架steam面向AI编程的godot独立游戏制作实录001流程

记录工作实践 这是全新的系列,一直有个游戏制作梦 感谢AI时代,让这一切变得可行 长欢迎共同见证,期更新,欢迎保持关注,待到游戏上架那一天,一起玩 面向AI编程的godot独立游戏制作流程实录001 本期是第…

计算机毕业设计Python+DeepSeek-R1大模型空气质量预测分析(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

【文生图】windows 部署stable-diffusion-webui

windows 部署stable-diffusion-webui AUTOMATIC1111 stable-diffusion-webui Detailed feature showcase with images: 带图片的详细功能展示: Original txt2img and img2img modes 原始的 txt2img 和 img2img 模式 One click install and run script (but you still must i…

单片机项目复刻需要的准备工作

一、前言 复刻单片机的项目的时候,有些模块是需要焊接的。很多同学对焊接没有概念。 这里说一下做项目的基本工具。 比如:像这种模块,都需要自己焊接了排针才可以链接的。 二、基本模块 2.1 单排排针 一些模块买回来是没有焊接的&#x…

微服务概览与治理

微服务概览与治理 1. 微服务架构的演进 1.1 引言 当我们讨论微服务时,我们并不是在谈论一种炫酷的新技术,而是在寻找一种更好的方式来组织我们的软件系统,使其更易扩展、更易维护。软件架构的发展历程往往是对业务需求和技术挑战的回应。从…

《代码随想录第五十七天》——孤岛的总面积、沉没孤岛、水流问题、建造最大岛屿

《代码随想录第五十七天》——孤岛的总面积、沉没孤岛、水流问题、建造最大岛屿 本篇文章的所有内容仅基于C撰写。 1. 孤岛的总面积 1.1 题目 孤岛的总面积 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿指…

IntelliJ IDEA 华为云远程开发配置步骤

1.连接华为云主机,点击New Project 2.输入用户名与主机IP后连接 3.输入密码授权连接 4.继续连接 注意,远程主机内存最少要4G才能启动后端IDE 5.连接华为云主机成功,下载IDE并连接 选择项目位置

23种设计模式之单例模式(Singleton Pattern)【设计模式】

文章目录 一、简介二、关键点三、实现单例模式的步骤四、C#示例4.1 简单的单例模式4.2 线程安全的单例模式(双重检查锁定)4.3 静态初始化单例模式 五、单例模式优缺点5.1 优点5.2 缺点 六、适用场景七、示例的现实应用 一、简介 单例模式(Si…

c盘爆红后,使用diskgenius给C盘无损扩容,操作记录

diskgenius下载链接 参考链接 操作前环境 之前电脑配置了一个每天定时清理c盘临时文件的脚本,依然阻止不了c盘爆红。 实测DISKGENIUS 无损扩容有效,扩容前的环境: 扩容前,C区可用空间 9G,爆红C盘D盘都是 NTFS 格式,D…

【音视频】ffplay简单过滤器

一、ffplay简单过滤器 视频旋转:借助transpose滤镜 ffplay -i 1.mp4 -vf transpose1这里选择不同的数字是不同的方向: 视频翻转:借助hflip/vflip实现水平和垂直翻转: 水平翻转 ffplay 1.mp4 -vf hflip垂直翻转 ffplay 1.mp4 …

蓝桥杯备考:动态规划路径类dp之迷雾森林

step1 :确定状态表示 f[i][j]表示 n,n 到 i,j的方案数 step2 : 推导状态转移方程初始化 step3 确认填表顺序 应该是从下往上&#xff0c;从左往右 step4:答案在f[1][m] 代码实现&#xff1a; #include <iostream> #include <cstring> using namespace std; i…

零售交易流程相关知识(top-down拆解)

引入 关于POS机交易时的后台数据交互 模块之间数据交换&#xff0c;都可以能被窃取或篡改。由此引入加密、解密机制和签名、验签机制 经典的加密、解密机制&#xff1a; 对称加密&#xff1a;DES\ TDES\ AES\ RC4 非对称加密&#xff1a;RSA\ DSA\ ECC 经典的签名、验签…

threejs:用着色器给模型添加光带扫描效果

第一步&#xff1a;给模型添加光带 首先创建一个立方体&#xff0c;不进行任何缩放平移操作&#xff0c;也不要set position。 基础代码如下&#xff1a; 在顶点着色器代码里varying vec3 vPosition;vPosition position;获得threejs自动计算的顶点坐标插值&#xff08;也就…

数据可携带权的多重价值与实践思考

文章目录 前言一、数据可携带权的提出与立法二、数据可携带权的多重价值1、推动数据要素市场化配置2、促进市场竞争与创新3、强化个人数据权益 三、数据可携带权的实践挑战1、数据安全与隐私保护面临风险2、接口差异导致数据迁移成本高昂3、可携带的数据范围尚存争议 数据可携带…