在Linux中开发OpenGL——检查开发环境对OpenGL ES的支持
1、 下载支持库、OpenGL ES Demo
1.1、下载PowerVRSDK支持库作为准备,里面自带了编译好的libEGL.so和ligGLESv2.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 ES库和EGL库。
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_LIBARY和OPENGLES_LIBRARY的对应位置,因此我这里库已经是齐全了的。
3.2、 如果没有LibGLESv2.so:
假如EGL_LIBARY和OPENGLES_LIBRARY的对应位置为空,那刚刚下载的PowerVR SDK就有用了。此时你可以通过设置EGL_LIBARY和OPENGLES_LIBRARY库的位置指向到powervr-sdk/Native_SDK/lib/Linux_x86_64/libEGL.so和libGLESv2.so即可。像这位博主的一样:
[OpenGL ES 3.0编程指南]编译环境的搭建_linux编译opengl es教程-CSDN博客
4、 编译
在build文件路径中输入:
cmake
如图所示,等待编译完成后
输入
ls
就可以看到编译产物了:
5、 运行:
进入/build/Chapter_14/Shadows文件夹,输入ls,可以看到编译好的Shadows程序:
此时输入./Shadows即可运行该OpenGL ES程序,效果如图: