Use c++ to display skeletal animation in Android

1. Program module diagram

insert image description here
insert image description here

2. Compile the third-party library Assimp

2.1 download

Download version 5.0.0 from the official website, https://codeload.github.com/assimp/assimp/zip/refs/tags/v5.0.0

2.2 Generate Android compilation chain

assimp-5.0.0After decompression, build a folder BuildAssimp
and put two scriptsmake_standalone_toolchain.bat

python D:/Android/Sdk/ndk/23.1.7779620/build/tools/make_standalone_toolchain.py --arch=arm --stl=libc++ --api=16 --install-dir=android-toolchain-16-llvm-arm

make_standalone_toolchain.pyThe path needs to be changed to your own local. After
running , it make_standalone_toolchain.batwill be generated BuildAssimpbelow android-toolchain-16-llvm-arm. This is the Android compilation chain

2.3 compile

,build_assimp.bat

@REM @echo off  
cls  
  
REM *NOTE* Change these based on   
SET ASSIMP_DIR=assimp-5.0.0
SET OUTPUT_DIR=assimp-build-arm 
SET ANDROID_PATH=D:\Android\Sdk
SET NDK_PATH=D:\Android\Sdk\ndk\23.1.7779620
SET NDK_TOOLCHAIN=%~dp0android-toolchain-16-llvm-arm
SET CMAKE_TOOLCHAIN=%NDK_PATH%\build\cmake\android.toolchain.cmake  
SET CMAKE_PATH=%ANDROID_PATH%\cmake\3.22.1
  
REM *NOTE* Careful if you don't want rm -rf, I use it for testing purposes.  
del \F \S \Q %OUTPUT_DIR%
mkdir %OUTPUT_DIR%  
  
REM pushd doesn't seem to work ):<  
cd %OUTPUT_DIR%  
  
if not defined ORIGPATH set ORIGPATH=%PATH%  
SET PATH=%CMAKE_PATH%\bin;%ANDROID_PATH%\tools;%ANDROID_PATH%\platform-tools;%ORIGPATH%;%NDK_TOOLCHAIN%\bin;
  
%CMAKE_PATH%\bin\cmake.exe -GNinja -DCMAKE_TOOLCHAIN_FILE=%CMAKE_TOOLCHAIN%  -DANDROID_ABI="armeabi-v7a" -DASSIMP_ANDROID_JNIIOSYSTEM=ON -DANDROID_NDK=%NDK_PATH% -DCMAKE_MAKE_PROGRAM=%CMAKE_PATH%\bin\ninja.exe -DCMAKE_BUILD_TYPE=Release  -DANDROID_NATIVE_API_LEVEL=24 -DANDROID_FORCE_ARM_BUILD=TRUE -DCMAKE_INSTALL_PREFIX=install -DANDROID_STL=c++_static -DCMAKE_CXX_FLAGS=-Wno-c++11-narrowing -DANDROID_TOOLCHAIN=clang -DASSIMP_BUILD_TESTS=OFF   -DASSIMP_NO_EXPORT=TRUE -DASSIMP_BUILD_ASSIMP_TOOLS=FALSE -DASSIMP_BUILD_SAMPLES=FALSE -DASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT=TRUE ..\..\..\%ASSIMP_DIR%
  
%CMAKE_PATH%\bin\cmake.exe --build .
  
REM D:\Android\Sdk\ndk\23.1.7779620\prebuilt\windows-x86_64\bin\make.exe

cd ..

You need to ANDROID_PATHchange NDK_PATHthe path to your own local. After
running , you will getbuild_assimp.batassimp-build-arm/code/libassimp.so

3. Generate apk

Android Studio compiles the project into apk, and after installing it on the emulator, it can run

4. Model and shader resources

Resources need to be placed in the Android local path, two paths are optional

  • /storage/emulated/0/Download
  • /storage/emulated/0/Android/data/com.example.opengles/files

Guess you like

Origin blog.csdn.net/chen_227/article/details/131759730