Google Filament 源码学习(六):Material System (五) - 材质系统框架

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

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}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值