添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

基于 Assimp 5.0.1 Release 版裁剪,只保留 OBJ 和 FBX 格式的 3D 模型解析,并使用交叉编译工具链编译成 Android 和 iOS 库

  • 编译 Android 静态库:

    记得要修改 build_for_android.sh 中最上面的 MY_NDK、MY_SDK、MY_CMAKE 路径,改成自己对应的安装路径

    ② 执行 build_for_android.sh, 最后会生成 Android 平台 arm64-v8a、armeabi-v7a 的静态库

  • 编译 iOS 静态库:

    ① 执行 build_for_android.sh, 最后会生成 iOS 平台的静态库,默认编译的是 all(包含 armv7、armv7s、arm64)

  • 如果想支持更多格式解析,拷贝 Assimp 5.0.1 对应格式目录下的源文件,并在 ImporterRegistry.cpp 中注册
  • 如果想支持更多的后处理,拷贝对应的后处理源文件,并在 PostStepRegistry.cpp 注册

预编译好的 Android 、iOS 库见 AssimpLib
预编译好的库在 pre_build 目录,3D 模型解析仅支持 OBJ 和 FBX 格式,后处理仅支持 FlipUVsProcess、TriangulateProcess
在这里插入图片描述

Android 编译脚本

#!/bin/sh
# 记得改成自己的 NDK、SDK 路径,以及 CMake 版本
MY_NDK="/Users/AlanWang/AndroidDev/android-ndk-r16b"
MY_SDK="/Users/AlanWang/AndroidDev/sdk"
MY_CMAKE="${MY_SDK}/cmake/3.10.2.4988404/bin/cmake"
OUTPUT_LIBS="./build/libs/android"
function build_with_armeabi() {
	ARME_ABI=$1
	API_LEVEL=$2
	PLATFORM="android-${API_LEVEL}"
	echo ${ARME_ABI}
	echo ${PLATFORM}
	BUILD_DIR="./build/android/${ARME_ABI}"
	PRE_EXE_DIR=$(pwd)
	echo ${PRE_EXE_DIR}
	# 使用 android 工具链生成 makefile
	${MY_CMAKE} \
	-H"./" \
	-B"${BUILD_DIR}" \
	-DANDROID_ABI="${ARME_ABI}" \
	-DANDROID_NDK="${MY_NDK}" \
	-DCMAKE_LIBRARY_OUTPUT_DIRECTORY="./build/android/libs/${ARME_ABI}" \
	-DCMAKE_BUILD_TYPE="Release" \
	-DCMAKE_TOOLCHAIN_FILE="${MY_NDK}/build/cmake/android.toolchain.cmake" \
	-DANDROID_PLATFORM=${PLATFORM} \
	-DANDROID_TOOLCHAIN="clang" \
	-DCMAKE_C_FLAGS="-fpic -fexceptions -frtti" \
	-DCMAKE_CXX_FLAGS="-fpic -fexceptions -frtti" \
	-DANDROID_STL="c++_static" \
	# 生成目标文件
	cd ${BUILD_DIR}
	# 将目标文件移至指定目录
	cd ${PRE_EXE_DIR}
	mkdir -p ${OUTPUT_LIBS}/${ARME_ABI}/
	mv ${BUILD_DIR}/libs/* ${OUTPUT_LIBS}/${ARME_ABI}/
	rm -r ./build/android
build_with_armeabi armeabi-v7a 16
build_with_armeabi arm64-v8a 21

iOS 编译脚本

#!/bin/sh
OUTPUT_LIBS="./build/libs/ios"
function build_with_platform_and_armeabi() {
	PLATFORM=$1
	ARME_ABI=$2
	echo ${PLATFORM}
	echo ${ARME_ABI}
	BUILD_DIR="./build/ios/${ARME_ABI}"
	PRE_EXE_DIR=$(pwd)
	echo ${PRE_EXE_DIR}
	cmake \
	-H"./" \
	-B"${BUILD_DIR}" \
	-DCMAKE_BUILD_TYPE="Release" \
	-DCMAKE_TOOLCHAIN_FILE="./toolchain/ios.toolchain.cmake" \
	-DIOS_PLATFORM=${PLATFORM} \
	-DCMAKE_C_FLAGS="-fpic -fexceptions -frtti" \
	-DCMAKE_CXX_FLAGS="-fpic -fexceptions -frtti -std=c++11 -stdlib=libc++" \
#	-DIOS_ARCH=${ARME_ABI} \
	# 生成目标文件
	cd ${BUILD_DIR}
	# 将目标文件移至指定目录
	cd ${PRE_EXE_DIR}
	mkdir -p ${OUTPUT_LIBS}/${ARME_ABI}/
	mv ${BUILD_DIR}/libs/* ${OUTPUT_LIBS}/${ARME_ABI}/
	rm -r ./build/ios
build_with_platform_and_armeabi "OS" "all"
#build_with_platform_and_armeabi "OS" "armv7"
#build_with_platform_and_armeabi "OS" "armv7s"
#build_with_platform_and_armeabi "OS" "arm64"
#build_with_platform_and_armeabi "SIMULATOR64" "x86_64"
#build_with_platform_and_armeabi "SIMULATOR" "i386"
                    基于 Assimp 5.0.1  Release 版裁剪,只保留 OBJ 和 FBX 格式的 3D 模型解析,并使用交叉编译工具链编译成 Android 和 iOS 库编译编译 Android 静态库:① 记得要修改 build_for_android.sh 中最上面的 MY_NDK、MY_SDK、MY_CMAKE 路径,改成自己对应的安装路径② 执行 build_for_android.sh, 最后会生成 Android 平台 arm64-v8a、armeabi-v7a 的静态库编译 i
本文主要记录 Assimp的编译和使用,可能会有不准确的地方,还望多多指正共同学习~
Assimp是Open Asset Import Library(开放的资产导入)的缩写。Assimp能够导入很多种不同的模型文件格式(并也能够导出部分的格式),它会将所有的模型数据加载至Assimp的通用数据结构中
Assimp编译
这里是的github地址Assimp,下载下来 我们还要编译成iO...
				
作为一个图形图像方向的研究生,我经常都在和 OpenGL 、OpenCV 等多种 C++ 打交道。这些遵循着不同的规则和用法;另外,为了让自己的程序具有更多的交互能力,编写界面也是一个家常便饭的工作。 然而,随着工程复杂性的增加,的管理和界面的维护也变得越来越困难:一方面,的增加和删除不仅会增加学习成本,也会对系统的逻辑层带来影响。而另一方面,如果要让自己的项目易于维护,就要尽可能地应用...
ln arm-none-linux-gnueabi-addr2line -s arm-linux-addr2line ln arm-none-linux-gnueabi-ar -s arm-linux-ar ln arm-none-linux-gnueabi-as -s arm-linux-as ln arm-none-linux-gnueabi-c++ -s arm-linux-c++ ln arm-none-linux-gnueabi-c++filt -s arm-linux...
引入第三方so遇到的常见错误: 错误一、ninja: error: 'xxx.so', needed by 'yyy.so', missing and no known rule to make it 错误二 error: undefined reference to 错误三 java.lang.UnsatisfiedLinkError: dlopen failed: library "libassimp.so" not found
本次更新是树莓派学习::qt5.10.1交叉编译【带opengl ES2】(armv8 64位)的延续,这次编译带的目标平台是树莓派3b+的官方系统Raspbian Stretch。由于是官方系统,这次交叉编译会轻松很多。不过还是要构建sysroot文件系统。 linuxfb:成功 xcb:... 2019.02.21 17:49:01字数 2030阅读 3380 本来今年过年之前,我就在看opengl教程,然后就卡在了装assimp上面,心存侥幸的跳过了先看后面结果发现还是绕不过这个。模型加载assimp的配置,果然是不得不克服的一个点,我从昨天下午开始搞,碰了很多次璧,今天上午终于配好了。 凸(艹皿...
Assimp地址:https://github.com/assimp/assimp 要想编译AssimpAndroid soAndroid SDK,NDK,Gradle(也可以装上)首先是需要准备就绪的。 配置好Android SDK以及NDK的环境变量,如下: ANDROID_HOME=/Users/Test/AndroidRes/sdk export PATH=$PATH:$AN...
https://zhuanlan.zhihu.com/highwaytographics/20623801 http://blog.csdn.net/qq_35488967/article/details/56480053 从官网下载win64的cmake。 在源代码位置和输出二进制位置中输入文件夹路径。 点击configure,再点击Generate。完成后,点击Open Project
Assimp相关: Assimp(https://github.com/assimp/assimp)是一个轻量级的3D模型解析和转换,支持40+的格式,一些小的3D引擎会使用其作为自己的模型解析加载模块,受众相对比较广泛。该一直保持着更新,尽管ISSUE不少,不过从目前的小范围使用情况来看,可靠性还可以接受 Assimp Android端编译: Assimp本身提供了Andr
AssimpAndroid上的so,32位支持最低android api14(android 4.0) 64位的支持最低api21(android5.0) 包含armeabi armeabi-v7a arm64-v8a mips mips64 x86 x86_64架构 还有编译生成的头文件,不包含c/cpp文件,只有头文件