对于PBR材质来说,想要通过PBR属性还原真实的渲染效果,需要有一定的材质编辑能力。材质编辑工具通过提供实时编辑材质并且实时预览效果的能力,降低PBR材质编辑的门槛。
背景
在得物3D空间改用filament引擎进行渲染之后,PBR材质的渲染得到了很大的提升,但是从材质编辑到最后材质验收环节所花费的时间还有很大的提升空间。由于材质验收环节在移动端上进行,整套流程涉及材质编辑 - 材质编译 - 移动端渲染 - 验收材质,仅仅是产出一个材质就需要花费很多时间,因此想要通过实现一个PBR材质编辑器,降低PBR材质的编辑门槛、减少材质产出时间。
目标
回顾下当前filament的材质产出流程:

图1
- 材质编辑:filament的材质通过材质文件去描述,因此主要是在PC端去完成材质属性的设置
- 材质编译:由于发布端涉及安卓和苹果两个平台,材质文件需要编译成metal和opengl两个版本
- 移动端渲染:移动端需要在端上的渲染逻辑中指定模型不同mesh对应的材质,同时模型渲染需要考虑打光方向以及强度,这意味着每做一次光照效果调节都将花费一次代码编译时间。最后,由于发布端涉及安卓和苹果,本环节的时间花费会Double
- 材质验收:材质验收是材质产出的最后一步,在上线前需要同设计师反复确认以及修改。由于设计师只能在测试机上进行验收,设计师需要同开发者对齐彼此的时间从而导致验收时间受影响或者延长
流程优化
首先,材质编辑和材质渲染不在同一平台。这意味着材质文件在多个平台编译的时间开销。其次,移动端欠缺迅速校正光照的能力,由于移动端视口大小的限制,只能观察到场景的有限范围,没办法对光源位置进行操作和进行光强调节。结合这两个特点,考虑将材质渲染迁移至PC端,由于PC端场景尺寸足够大可以很方便的调节光照,同时因为材质编辑和材质渲染皆在PC端上完成从而可以节省多平台的材质文件编译时间。同时filament引擎保证了在多端上渲染效果也是一致的,因此通过在PC端渲染的结果等同于移动端。
最后是材质验收,考虑到filament的多平台能力,可以基于一份材质编辑工具代码编译出windows、mac可运行的程序,编辑好的材质可以由开发者导出材质包给设计师,设计师在自己的电脑上通过移植后的材质编辑工具运行出来的渲染效果完成验收,减少因多人协作带来需时间对齐所造成的花销。同时,设计师也可以使用材质编辑工具的材质编辑能力,自行产出材质,提高材质产出生产力。
至此,Filament材质编辑工具要达到的目标如下:
- 材质编辑和材质渲染统一迁移至PC平台
- PC平台和移动端基于同个材质的渲染效果达到一致
- 材质编辑工具的多平台发布能力,开发者和设计师都可以基于自己所在平台去操作工具,完成材质编辑、材质验收等流程
- 材质编辑工具可针对编辑好的材质导出移动端可直接运行的材质,并且移动端的1渲染逻辑是与模型、材质文件本身解耦
原理
材质编辑工具由GUI和渲染引擎组成,它的主要原理就是材质编辑之后如何实现渲染效果的实时预览。根据filament官方给出的代码,filament渲染引擎可以通过共享contex的方式与ImGui进行结合,由ImGui完成按钮等交互组件的绘制,而filament进行模型、材质的渲染。ImGui组件响应用户操作后,再将改动同步到filament,从而filament根据用户操作实时反馈渲染效果。
主要功能
材质编辑工具的主要功能如下:
- 材质编辑
- 模型材质指定
- 工具操作数据持久化
- 模型优化和纹理压缩
- 材质导出
- 材质导入
实现
GUI
filament渲染引擎是一款跨平台的PBR渲染引擎,而实现一个基于PC端的PBR材质编辑工具,除了渲染引擎,还需要GUI库。Filament Creator采用的是ImGui库,ImGui库采用c++实现,具有可移植、

本文介绍了如何通过Filament Creator优化PBR材质编辑流程,将编辑和渲染迁移至PC,统一平台并实现移动端一致渲染。工具着重于材质编辑、光照调整和多平台发布,以减少时间和协作成本,提升真实感和生产力。
最低0.47元/天 解锁文章
571





