目录
Introduction
本节是 Filament 材质框架阅读的部分。之前的小节由于有官方文档,因此,笔记不会存在明显的错误。但在本节之后,都是自己对Filament的理解,可能在理解和总结上有严重的错误。因此,需要经常回来调整内容。
Filament 工程简化
从 GitHub 克隆下来的工程包含很多官方的示例。看起来比较臃肿。个人认为学习某个开源项目第一步是把该项目的核心内容分离出来。
删除 Filament 工程中非核心内容
- 注意
- 本节包含的,包括以后对 Filament 框架的调整只适用于Window系统,其他系统处理方式大部分相同,只是某些平台相关的部分处理不同。
根目录保留
1. build
2. filament
3. libs
4. shaders
5. third_party
6. tools
7. CMakeLists.txt
build文件夹中保留
1. windows
2. licenses.inc.in
filament文件夹中保留
1. backend
2. include
3. src
4. CMakeLists.txt
libs文件夹中保留
1. bluegl/bluevk
2. filamat
3. filameshio
4. filabridge
5. filaflat
6. geometry
7. ibl
8. imageio
9. image
10. math
11. utils
third_party文件夹中保留
1. astcenc
2. etc2comp
3. getopt
4. glslang
5. libpng
6. libz
7. libassimp
8. meshoptimizer
9. robin-map
10. spirv-cross
11. spirv-tools
12. smol-v
13. stb
14. tinyexr
15. vkmemalloc
tools文件夹中保留
1. cmgen
2. filamesh
3. glslminifier
4. matc
5. mipgen
6. resgen
关于CmakeList中的修改
- Cmake 我也只是懂些基础而已,对编写构建脚本不熟,所以修改也是缝缝补补,不严谨 !
根目录下CmakeList 修改
-
删除(可搜索关键字 “IS_HOST_PLATFORM” )
add_subdirectory(${ FILAMENT}/java/filamat) add_subdirectory(${ FILAMENT}/java/filament) add_subdirectory(${ FILAMENT}/java/gltfio) -
IS_HOST_PLATFORM 保留以下内容,其余都删除
1. add_subdirectory(${ LIBRARIES}/bluegl) 2. add_subdirectory(${ LIBRARIES}/imageio) 3. add_subdirectory(${ EXTERNAL}/astcenc/tnt) 4. add_subdirectory(${ EXTERNAL}/etc2comp) 5. add_subdirectory(${ EXTERNAL}/libassimp/tnt) 6. add_subdirectory(${ EXTERNAL}/libpng/tnt) 7. add_subdirectory(${ EXTERNAL}/libz/tnt) 8. add_subdirectory(${ EXTERNAL}/tinyexr/tnt) 9. add_subdirectory(${ TOOLS}/cmgen) 10. add_subdirectory(${ TOOLS}/filamesh) 11. add_subdirectory(${ TOOLS}

本文档介绍了如何在Windows系统上对Filament工程进行精简,保留核心内容,以及对材质编译工具matc和资源生成工具resgen的独立构建。通过删除非核心模块,修改CMakeLists.txt文件,以及整理第三方库,实现了Filament的瘦身。同时,详细阐述了matc和resgen的使用及编译过程,为理解Filament材质系统提供了基础。
最低0.47元/天 解锁文章
1352

被折叠的 条评论
为什么被折叠?



