首页 > 其他分享 >【Filament】Filament环境搭建

【Filament】Filament环境搭建

时间:2024-02-26 22:22:05浏览次数:19  
标签:cmake .. 环境 Filament aar release android filament 搭建

1 前言

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

​ Filament 官方资料如下。

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

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 编译

​ 官方编译介绍见 → Building Filament

1)拉取 Filament 代码

git clone --recurse-submodules [email protected]: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,配置如下。

img

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

img

​ 配置完后,勾选 FILAMENT_SUPPORTS_VULKAN,再点击 Configure 按钮。

img

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

img

3)编译项目

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

img

4)运行项目

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

img

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

img

3 Android 编译

​ 官方介绍见 → Building Filament for Android on Windows,本节所有命令都是通过【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 节中会使用到,因此不要修改桌面工具的安装路径。

img

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 节中会使用到,因此不要修改平台插件的安装路径。

img

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 文件如下。

img

3.4 导入依赖

1)自动导入

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

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(或从 releases 中下载 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'])
}

​ 声明:本文转自【Filament】Filament环境搭建

标签:cmake,..,环境,Filament,aar,release,android,filament,搭建
From: https://www.cnblogs.com/zhyan8/p/18024342

相关文章

  • 学习环境部署
     学习自动化或者jmeter没练习的接口?来,简单快速部署一个学习环境。 1、网盘下载、配置虚拟机https://www.cnblogs.com/uncleyong/p/15777706.html(资料在文末评论区)虚拟机配置、使用相关:https://www.cnblogs.com/uncleyong/p/17874484.html 2、linux下安装jdkhttps://www......
  • ELKF日志系统搭建(二)进阶——使用 Kafka 作为日志消息缓存
    说明:在一些比较大的业务使用场景中,因为应用繁多,需要收集的日志也很多,通过filebeat或者logstash收集上来的日志如果全都直接发送给ES,那么就会对ES集群产生一定的压力,为了避免出现日志接收不过来的问题,于是引入了消息队列作为缓存,比如常见的使用Redis或Kafka作为消息缓存......
  • 第七章 程序是在何种环境中运行的
    运行环境=操作系统+硬件,程序中包含着运行环境这一内容,操作系统和硬件决定了程序的运行环境。同一类型的硬件可以选择安装多种操作系统。从程序的运行环境这一角度来考量硬件时,CPU的种类是特别重要的参数。CPU只能解释其自身固有的机械语言,不同的CPU的只是机器人的种类也是不同的。......
  • FTP服务搭建(linux)(转载)
    一、下载(在线安装可跳过)1、下载(见网盘)下载服务端vsftpd:下载地址下载客户端ftp注:如果需要使用ftp命令,则客户端必须安装,否则无法使用(-bash:ftp:commandnotfound)二、安装1、检查是否已经安装了vsftp首先查看系统中是否成功安装了vsftpd,执行下面命令(有内容则安装了ftp)rpm......
  • Linux:离线搭建vsftpd服务并记录新建用户登录报错问题(转载)
    1.检查本机是否安装过vsftpd#检查是否存在vsftpdrpm-qa|grepvsftpd2.下载离线安装包下载地址:http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64)3.开始安装vsftpd#安装vsftpdrpm-ivhvsftpd-3.0.2-21.el7.x86_64.rpm4.测试是否安装成功......
  • gin环境&路由配置
    Gin是一个Go(Golang)编写的轻量级httpweb框架,运行速度非常快Gin的官网:https://gin-gonic.com/zh-cn/GinGithub地址:https://github.com/gin-gonic/gingin环境搭建下载并安装#gomod同级目录下goget-ugithub.com/gin-gonic/gin......
  • 阿里云服务器搭建所遇见问题
    关于如何搭建阿里云服务器,我在这儿也就不多说了,网上教程一大片。仅记录一下自己在搭建过程中所遇见的问题,以备以后自己翻阅。参考了楚狂人的博客用苹果电脑mac系统配置阿里云服务器ecs的教程攻略,同时感谢基友梧桐的大力支持,让我少走了不少坑。环境:服务器:centOS7.04本......
  • JavaFlink系列之一:Maven程序搭建及Java入门案例多种写法
    JavaFlink系列之一:Maven程序搭建及Java入门案例多种写法 一、Flink项目依赖配置<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://maven.apache.org/POM/4.0.0"......
  • 为什么设置虚拟环境和conda的常用命令
    为什么需要虚拟环境anaconda和conda和pipAnaconda介绍、安装及使用教程Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等Miniconda包括Conda、Pythonconda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同......
  • ROS2 humble交叉编译环境配置
    目录配置toolchain文件:库文件交叉编译指令:问题点:1、find_package找不到自定义依赖包的问题2、libarmadillo.so.10:undefinedreferenceto`xxx'3、/usr/bin/moc找不到直接上干货,本文将介绍配置ROS2的交叉编译环境编译平台:x86ubuntu22.04目标平台:armv8ubuntu22.04ROS2......