【filament】filament环境搭建-kb88凯时官网登录

时间:2024-02-26
阅读:
免费资源网,https://freexyz.cn/

1 前言

​ filament 是一个实时物理渲染引擎,用于 android、ios、linux、macos、windows 和 webgl 平台。该引擎旨在提供高效、实时的图形渲染,并被设计为在 android 平台上尽可能小而尽可能高效。filament 支持基于物理的渲染(pbr),这意味着它可以模拟光线、材质和阴影等物理效果,以创建更逼真的图形场景。该引擎的设计注重性能和资源效率,使其成为移动设备和其他平台上渲染复杂图形的理想选择。

​ filament 官方资料如下。

  • filament 仓库:
  • filament 中 pbr 原理及实现:
  • filament materials guide:
  • material properties: properties.pdf
  • building filament:
  • building filament for android on windows:
  • samples:
  • android samples:

​ 笔者本地编译环境如下。

cmake: 3.19
ninja: 1.8.2
python: 3.11.5
jdk: 17.0.9
git bash: 2.42.0.2
visual studio: 2019
android ndk: 25.1.8937393

​ 说明:android sdk 的环境变量需要配置 android_home。

2 windows 编译

​ 官方编译介绍见 → 。

1)拉取 filament 代码

git clone --recurse-submodules git@github.com:google/filament.git
# 切换至release分支
git checkout release

​ 如果下载速度比较慢,在有代理软件(如 ssr)的前提下,在 ~/.ssh/config 文件(没有可以新建一个)里添加以下内容,可以提高下载速度。

host github.com
user git
proxycommand connect -h 127.0.0.1:1080 %h %p
 
host github.com
user git
proxycommand connect -s 127.0.0.1:1080 %h %p

2)生成项目

​ 在 filament 根目录下创建【out\cmake-window】目录,打开 cmake-gui,配置如下。

【filament】filament环境搭建

​ 在弹窗中选择 "visual studio 16 2019" 和 x64,如下。

【filament】filament环境搭建

​ 配置完后,勾选 filament_supports_vulkan,再点击 configure 按钮。

【filament】filament环境搭建

​ 接着点击 generate 按钮,生成项目。

【filament】filament环境搭建

3)编译项目

​ 在 cmake-gui 界面,点击 open project 按钮,将通过 visual studio 打开生成的项目,用户也可以通过使用 visual studio 打开【filament\out\cmake-windows\tnt.sln】文件来打开项目,按以下步骤编译项目。

【filament】filament环境搭建

4)运行项目

​ debug 和 release 版本的编译路径分别为【filament\out\cmake-windows\samples\debug】、【filament\out\cmake-windows\samples\release】,里面有很多 exe 文件,点击这些文件可以运行相应 demo,如下是点击 gltf_instances.exe 文件运行的效果。

【filament】filament环境搭建

​ 用户也可以通过以下方式运行相关 demo。

【filament】filament环境搭建

3 android 编译

​ 官方介绍见 → ,本节所有命令都是通过【x64 native tools command prompt for vs 2019】命令行工具执行(注意:不能通过 cmd 或 git bash 执行这些命令)。

3.1 桌面工具编译

1)配置项目

​ 在 filament 根目录下创建【out\cmake-desktop-tools】目录,打开【x64 native tools command prompt for vs 2019】命令行工具,执行以下命令。

cd out\cmake-desktop-tools
cmake ^
    -g ninja ^
    -dcmake_install_prefix=..\release\filament ^
    -dfilament_enable_java=no ^
    -dcmake_build_type=release ^
    ..\..

​ 注意:不要修改桌面工具的安装路径(cmake_install_prefix),3.3 节中会使用到该路径。

2)编译项目

ninja matc resgen cmgen

3)安装项目

ninja install

​ 执行结束后,在【filament\out\release\filament\bin】目录下生成了一些 exe 文件,如下,箭头所指的 exe 文件在 3.3 节中会使用到,因此不要修改桌面工具的安装路径。

【filament】filament环境搭建

3.2 平台插件编译

1)创建目录

​ 在 filament 根目录下分别创建以下目录。

mkdir out\cmake-android-release-aarch64
mkdir out\cmake-android-release-arm7
mkdir out\cmake-android-release-x86_64
mkdir out\cmake-android-release-x86

2)配置项目

​ 通过【x64 native tools command prompt for vs 2019】命令行工具,在每个目录下依次执行以下命令。

cd out\cmake-android-release-aarch64
cmake ^
    -g ninja ^
    -dcmake_build_type=release ^
    -dcmake_install_prefix=..\android-release\filament ^
    -dcmake_toolchain_file=..\..\build\toolchain-aarch64-linux-android.cmake ^
    ..\..
cd out\cmake-android-release-arm7
cmake ^
    -g ninja ^
    -dcmake_build_type=release ^
    -dcmake_install_prefix=..\android-release\filament ^
    -dcmake_toolchain_file=..\..\build\toolchain-arm7-linux-android.cmake ^
    ..\..
cd out\cmake-android-release-x86_64
cmake ^
    -g ninja ^
    -dcmake_build_type=release ^
    -dcmake_install_prefix=..\android-release\filament ^
    -dcmake_toolchain_file=..\..\build\toolchain-x86_64-linux-android.cmake ^
    ..\..
cd out\cmake-android-release-x86
cmake ^
    -g ninja ^
    -dcmake_build_type=release ^
    -dcmake_install_prefix=..\android-release\filament ^
    -dcmake_toolchain_file=..\..\build\toolchain-x86-linux-android.cmake ^
    ..\..

​ 注意: 不要修改平台插件的安装路径(cmake_install_prefix),3.3 节中会使用到该路径。

3)安装项目

​ 在每个 cmake-android-release-xxx 目录下,都执行一次以下命令。

ninja install

​ 执行结束后,在【filament\out\android-release\filament\lib】目录下生成了一些平台插件库,如下,在 3.3 节中会使用到,因此不要修改平台插件的安装路径。

【filament】filament环境搭建

3.3 生成 aar

1)构建 aar

​ 进入【filament\android】目录,执行以下命令。

gradlew -pcom.google.android.filament.dist-dir=..\out\android-release\filament assemblerelease

​ 执行结束后,会生成 4 个 aar,位置如下。

filament\android\filamat-android\build\outputs\aar\filamat-android-release.aar
filament\android\filament-android\build\outputs\aar\filament-android-release.aar
filament\android\filament-utils-android\build\outputs\aar\filament-utils-android-release.aar
filament\android\gltfio-android\build\outputs\aar\gltfio-android-release.aar

2)拷贝 aar

​ 将 aar 文件拷贝到【filament\out\aar】目录下。

copy filamat-android\build\outputs\aar\filamat-android-release.aar ..\out\aar\
copy filament-android\build\outputs\aar\filament-android-release.aar ..\out\aar\
copy filament-utils-android\build\outputs\aar\filament-utils-android-release.aar ..\out\aar\
copy gltfio-android\build\outputs\aar\gltfio-android-release.aar ..\out\aar\

​ 拷贝的 aar 文件如下。

【filament】filament环境搭建

3.4 导入依赖

1)自动导入

​ 在 app\build.gradle 文件中添加以下依赖,版本号可以参考 → 。

android {
    ...
    aaptoptions { // 在应用程序打包过程中不压缩的文件
        nocompress 'filamat', 'ktx'
    }
}
dependencies {
    implementation 'com.google.android.filament:filament-android:1.48.0'
    implementation 'com.google.android.filament:filamat-android:1.48.0'
    implementation 'com.google.android.filament:filament-utils-android:1.48.0'
    implementation 'com.google.android.filament:gltfio-android:1.48.0'
}

2)手动导入

​ 使用 3.3 节中编译的 aar(或从 中下载 aar),将他们复制到【project\libs】或【project\app\libs】目录下。

​ 如果复制到【project\libs】目录下,在 app\build.gradle 中配置如下。

android {
    ...
    aaptoptions { // 在应用程序打包过程中不压缩的文件
        nocompress 'filamat', 'ktx'
    }
}
dependencies {
    implementation filetree(dir: '../libs', include: ['*.aar'])
}

​ 如果复制到【project\app\libs】目录下,在 app\build.gradle 中配置如下。

android {
    ...
    aaptoptions { // 在应用程序打包过程中不压缩的文件
        nocompress 'filamat', 'ktx'
    }
}
dependencies {
    implementation filetree(dir: 'libs', include: ['*.aar'])
}

​ 声明:本文转自。

免费资源网,https://freexyz.cn/
返回顶部
顶部
网站地图