filament Use IBL

1. 在 sample_full_pbr 的例子中,直接使用 IBL 时候,sample_full_pbr参数的如下

-i :设置IBL的目录

-m : 物体的PBR材质贴图

例如:

sample -m assets/models/PreviewSphere_Fabric -i ./envs/Studio_05 assets/models/PreviewSphere_Fabric/PreviewSphere.obj

 

2. 利用 cgmen 来生成 IBL 所需要的数据,cgmen 生成的重要数据有:

diffuse indirect(SH),specular indirect(dfg, specular cubemap rgbm 一系列文件) 

cgmen的参数:

--no-mirror :是否镜像

--format : 输出的格式大多数都是rgbm

--ibl-dfg : 生成 dfg 的 目录

例如:

--ibl-dfg test_dfg.png --no-mirror --format rgbm --type cubemap  --deploy ./test assets/Studio_05.exr

 

需要注意的就是:

a. dfg texture 在 filament 是直接写死了一张,不会因为 环境图 变化而变化,

因为在filament 的 CMakelists.txt 里面看到

set(output_path "${GENERATION_ROOT}/generated/data/dfg.inc")
add_custom_command(
        OUTPUT ${output_path}
        COMMAND cmgen --quiet --ibl-dfg-multiscatter --ibl-dfg-cloth --ibl-dfg=${output_path}
        DEPENDS cmgen
        COMMENT "Generating DFG LUT ${output_path}"

 

而且 所有的DFG 都是使用

E:\filament\out\cmake-release\filament\generated\data\dfg.inc 这一张,filament写死了, 看代码 DFG.cpp 可以找到证据

 

b. dfg texture 一定要 clamp。

 

 

 

 

 

 

 

你可能感兴趣的:(filament)