# Study_Filament_For_Material **Repository Path**: thebigapple/Study_Filament_For_Material ## Basic Information - **Project Name**: Study_Filament_For_Material - **Description**: 基于Filament 和 Qt 的 shader调试框架 (初版为filament材质编辑) - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 4 - **Created**: 2022-07-29 - **Last Updated**: 2025-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Study_Filament_For_Material ## 介绍    首先,这是我第一个开源工程。    虽然自己是一个技术狂,写过很多大大小小的私人项目。但是都没有选择开源。毕竟看过很多开源社区大佬的开源项目,觉得以现在自己的水平,开源代码其实就是一个笑话! 因此,该开源工程没有什么可借鉴的价值。只是一个用于学习Filament材质系统和调试shader的工具。 ### 项目目标    该项目主要提供一个可编辑材质和调试shader的用户接口。    目前只实现了Filament Lit材质的编辑(作为实现示例),其他功能会逐步实现。但具体功能的实现不是该项目的主要目的。本人还是希望有想学习Filament的同学下载这个框架,根据Lit材质编辑的代码,自己去实现Filament其他所有材质的编辑。这也是这个项目的一个核心目的!    该项目的另一个核心目的是提供光栅化算法(材质相关)shader的调试接口。目前还没有完成。这部分代码我会尽快补全! ### 其他 1. 今后本人学习渲染相关的代码都会提交到这个工程上来。[笔记地址](https://blog.csdn.net/jiamada) 2. 作为调试和学习的目的,该工程只有Windows下Debug相关的库。 3. 该工程只关注Render相关的内容。因此,除了Render和Material模块,其他都没有开源。 4. 没开源的部分,会在后期合入到该项目中(暂时不做打算。该工程的架构是本人自己设计的,也经历了工作和实际项目的考验。但是该工程是自己业余时间实现的,代码风格没有统一,也存在多问题!) ### 工程命名规则 ( 目的_主体_For_具体内容 ) ## Licenses    开源协议这块,本人也只是关注能否商业这一块的内容。本工程使用的开源项目的License在工程根目录的License下。如果使用开源协议有什么错误,欢迎批评指正!    本项目开源协议使用 Apache License Version 2.0 ( 看过很多开源代码都是这个协议,自己就选了这个#109!) ## 安装教程 ### 环境 - 操作系统:Windows 10 或 Windows 11 - IDE:Visual Studio 2022 - C++标准:C++ 20 - Qt: 5.14 - Filament: 官方最新版本即可 ([地址](https://github.com/google/filament)) - python:任意版本(复制Filament lib使用Python脚本) ### 安装 - git clone https://gitee.com/thebigapple/Study_Filament_For_Material.git - VS2022 运行 Study_Filament_For_Material.sln 编译即可 ### 复制自己修改的 Filament Lib 到 Study_Filament_For_Material 工程中 - 编辑根目录下 copy_filament_lib.py 文件 - filament_root_path 设置为自己Filament的根目录 - filament_root_build_path 设置为自己Filament的构建根目录 - target_root_path 设置为Study_Filament_For_Material根目录 - 编译好Filament后双击运行脚本即可 - 注意:使用 copy_filament_lib.py 脚本必须保证Filament的工程结构与官方一致! ### 编译Filament注意事项 - CMake构建Windows版本 - Configure 后需要取消勾选列表中最后一项 USE_STATIC_CRT再构建 - 必须勾选FILAMENT_SUPPOTS_OPENGL, Study_Filament_For_Material只支持OpenGL - Filament编译,可以看我的笔记([地址](https://blog.csdn.net/jiamada/article/details/113783322)) ## 软件架构 & 使用说明 - 详见: doc/框架&操作说明.pdf