Android平台OpenGL ES/Assimp/OpenCV/GLM集成说明
Android平台OpenGL ES/Assimp/OpenCV/GLM集成说明
本文代码见: https://github.com/jiangxincode/OpenGLDemo
集成Assimp
- 下载Assimp 5.0.1版本:https://codeload.github.com/assimp/assimp/zip/refs/tags/v5.0.1
- 解压后本地目录为
D:\Code\temp\assimp-5.0.1 - 将
scripts\android_crosscompile\make_android.bat拷贝为scripts\android_crosscompile\make_android_self_defined.bat - 将
scripts\android_crosscompile\make_android_self_defined.bat中的内容进行自定义配置,我的配置如下:
@echo off
set ASSIMP_PATH=D:\Code\temp\assimp-5.0.1
set CMAKE_PATH="C:\Users\jiangxin\AppData\Local\Android\Sdk\cmake\3.6.4111459\bin\cmake.exe"
set ANDROID_NDK_PATH=C:\Users\jiangxin\AppData\Local\Android\Sdk\ndk\22.0.7026061
set ANDROID_CMAKE_PATH=C:\Users\jiangxin\AppData\Local\Android\Sdk\ndk\22.0.7026061\build\cmake
pushd %ASSIMP_PATH%
rmdir /s /q build
mkdir build
cd build
%CMAKE_PATH% .. ^
-G"MinGW Makefiles" ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_CXX_FLAGS_RELEASE="%CMAKE_CXX_FLAGS_RELEASE% -Os -Wall -s" ^
-DCMAKE_TOOLCHAIN_FILE=%ANDROID_CMAKE_PATH%\android.toolchain.cmake ^
-DCMAKE_MAKE_PROGRAM=%ANDROID_NDK_PATH%\prebuilt\windows-x86_64\bin\make.exe ^
-DANDROID_NDK=%ANDROID_NDK_PATH% ^
-DANDROID_NATIVE_API_LEVEL=android-16 ^
-DASSIMP_ANDROID_JNIIOSYSTEM=ON ^
-DANDROID_ABI=arm64-v8a ^
-DASSIMP_BUILD_ZLIB=ON ^
-DASSIMP_BUILD_TESTS=OFF ^
-DASSIMP_BUILD_ASSIMP_TOOLS=OFF ^
-DASSIMP_NO_EXPORT=ON
%CMAKE_PATH% --build .
popd
- 执行如下编译命令:
cd D:\Code\temp\assimp-5.0.1\scripts\android_crosscompile
.\make_android_self_defined.bat
- 将
assimp-4.1.0\build\codelibassimp.so放到app\libs\ - 将
assimp-4.1.0\include中的目录放到app\src\main\cpp\include - 将
assimp-4.1.0\build\include\assimp\config.h拷贝到app\src\main\cpp\assimp-4.1.0\include\assimp
集成OpenCV
OpenCV的集成比较简单,官网提供了Android平台所需的动态库和C++头文件。
- 下载OpenCV 4.5.1版本:https://cfhcable.dl.sourceforge.net/project/opencvlibrary/4.5.1/opencv-4.5.1-android-sdk.zip
- 解压后本地目录为
D:\Code\temp\opencv-4.5.1-android-sdk - 将
OpenCV-android-sdk\sdk\native\libs\arm64-v8a\libopencv_java4.so拷贝到app\libs\ - 将
OpenCV-android-sdk\sdk\native\jni\include中的内容拷贝到app\src\main\cpp\include
集成GLM
GLM的集成就更简单了,源码都是hpp文件(即定义和实现在同一个文件中)。
- 下载GLM 0.9.9.8版本:https://github.com/g-truc/glm/archive/refs/tags/0.9.9.8.zip
- 解压后本地目录为
D:\Code\temp\glm-0.9.9.8 - 将
glm-0.9.9.8\glm中的内容拷贝到app\src\main\cpp\include
参考
- Android: Use Assimp to load a 3D model: http://www.anandmuralidhar.com/blog/android/assimp/
- AssimpAndroid: https://github.com/anandmuralidhar24/AssimpAndroid
- 使用Android Studio+CMakeLists编译assimp: https://blog.csdn.net/u010302327/article/details/104473671
- TestAssimp: https://blog.csdn.net/u010302327/article/details/104473671
- Assimp编译实录: https://blog.csdn.net/fyfcauc/article/details/72627996
Android平台OpenGL ES/Assimp/OpenCV/GLM集成说明的更多相关文章
- 【Qt for Android】OpenGL ES 绘制彩色立方体
Qt 内置对OpenGL ES的支持.选用Qt进行OpenGL ES的开发是很方便的,很多辅助类都已经具备.从Qt 5.0開始添加了一个QWindow类,该类既能够使用OpenGL绘制3D图形,也能够 ...
- Android下Opengl ES实现单屏幕双眼显示
http://blog.csdn.net/u011371324/article/details/68946779 默认情况下,Opengl ES使用系统提供的帧缓冲区作为绘图表面,一般情况下,如果只在 ...
- EGL接口介绍-----Android OpenGL ES底层开发
引自:http://www.cnitblog.com/zouzheng/archive/2011/05/30/74326.html EGL 是 OpenGL ES 和底层 Native 平台视窗系统之 ...
- Android OpenGL ES(五)GLSurfaceView .
Android OpenGL ES 相关的包主要定义在 javax.microedition.khronos.opengles GL 绘图指令 javax.microedition.khrono ...
- Android OpenGL ES 开发(一): OpenGL ES 介绍
简介OpenGL ES 谈到OpenGL ES,首先我们应该先去了解一下Android的基本架构,基本架构下图: 在这里我们可以找到Libraries里面有我们目前要接触的库,即OpenGL ES. ...
- 短视频图像处理 OpenGL ES 实践
2017年,短视频正以其丰富的内容表现力和时间碎片化的特点,快速崛起,而短视频最具可玩性之处就在支持人脸识别的动态贴图和各种不同效果的美颜.滤镜等.那短视频动态贴纸.滤镜.美颜等功能究竟是如何实现的呢 ...
- Android API Guides---OpenGL ES
OpenGL ES Android包含高性能2D和3D图形开放图形库(OpenGL®的).详细而言,OpenGL ES的API支持. OpenGL是一个跨平台的图形API.用于指定的3D图形处理硬件标 ...
- 【转】Pro Android学习笔记(一):Android 平台 2013.6.4
本系列是阅读<Pro Android4>的读书笔记,也包括网络阅读资料的整理,以及个人心得. 由于智能手机引入AP(应用处理器),Android在某种意义上是个人计算机,具有桌面计算机的完 ...
- OpenGL ES课程VI之纹理贴图(原文对照)
http://www.educity.cn/wenda/92368.html OpenGL ES教程VI之纹理贴图(原文对照) OpenGL ES Tutorial for Android – Par ...
随机推荐
- 怎么创建CSV文件和怎么打开CSV文件
CSV(Comma Separated Values逗号分隔值). .csv是一种文件格式(如.txt..doc等),也可理解.csv文件就是一种特殊格式的纯文本文件.即是一组字符序列,字符之间已英文 ...
- 【转】【机器人学:运动规划】OMPL开源运动规划库的安装和demo
https://blog.csdn.net/gpeng832/article/details/73736225
- spring boot插件开发实战和原理
本文转载自spring boot插件开发实战和原理 实战:编写spring boot插件 为什么要编写boot插件 因为我们在开发的时候需要提供一些共同的功能,所以我们编写个共同的jar包.开发人员在 ...
- call、apply和bind的实现
call方法 基础版, 只能修改指向,不能传参 Function.prototype.myCall = function(context) { // 获取调用者,这里为bar context.fn = ...
- Linux文本三剑客总结
Linux文本处理三剑客 grep 文本过滤(模式:pattern)工具 grep, egrep, fgrep(不支持正则表达式搜索) grep grep: Global search REgula ...
- 《C++ Primer》笔记 第6章 函数
任意两个形参都不能同名,而且函数最外层作用域中的局部变量也不能使用与函数形参一样的名字(形参就相当于该函数的局部变量). 形参名是可选的,但是由于我们无法使用未命名的形参,所以形参一般都应该有个名字. ...
- CVE-2019-12409-Apache Solr JMX服务远程代码执行
漏洞分析 https://www.freebuf.com/vuls/218730.html 漏洞介绍 该漏洞源于默认配置文件solr.in.sh中的ENABLE_REMOTE_JMX_OPTS配置选项 ...
- IDEA的下载、安装与破解
IDEA的下载.安装与破解 下载地址:https://www.jetbrains.com/idea/download/#section=windows 建议下载2018.2版本,方便破解 安装 一直下 ...
- Python3读取网页HTML代码,并保存在本地文件中
旧版Python中urllib模块内有一个urlopen方法可打开网页,但新版python中没有了,新版的urllib模块里面只有4个子模块(error,request,response,parse) ...
- WPF 基础 - 点击事件的执行顺序及 Button 点击事件的特殊性
1. 点击事件的执行顺序 PreviewMouseLeftButtonDown PreviewMouseDown MouseLeftButtonDown MouseDown PreviewMouseL ...