sampler PBRSampler { filtering anisotropic max_anisotropy 8 } sampler PBRLUTSampler { filtering none tex_address_mode clamp } sampler PBRIBLSampler { tex_address_mode clamp filtering trilinear } sampler PBRSSAOSampler { tex_address_mode clamp filtering none } abstract material Filament { set $Albedo white.png set $AmbientOcclusion white.png set $Normal normal_disabled.png set $Emissive black.png set $MetalRoughness white.png set $BRDFLUT "dfgLUTmultiscatter.dds 2d 0" set $IBL_SPECULAR black.png technique { pass { // These are safe to override. texture_unit Albedo { texture $Albedo sampler_ref PBRSampler } texture_unit AmbientOcclusion { texture $AmbientOcclusion tex_coord_set 1 sampler_ref PBRSampler } texture_unit Normal { texture $Normal sampler_ref PBRSampler } texture_unit Emissive { texture $Emissive sampler_ref PBRSampler } texture_unit MetalRoughness { texture $MetalRoughness sampler_ref PBRSampler } // You should not override these. texture_unit BRDFLUT { texture $BRDFLUT sampler_ref PBRLUTSampler } texture_unit IBL_SPECULAR { texture $IBL_SPECULAR cubic gamma sampler_ref PBRIBLSampler } texture_unit SSAO { texture $AmbientOcclusion tex_coord_set 1 sampler_ref PBRSampler } /* texture_unit SSAO { content_type compositor SSAO/GBuffer blurred_occlusion 0 sampler_ref PBRSSAOSampler } */ vertex_program_ref PBR_filament_vs { } fragment_program_ref PBR_filament_fs { // PBR parameters param_named u_BaseColorFactor float4 1 1 1 1 param_named u_NormalScale float 1 param_named u_EmissiveFactor float3 1 1 1 param_named u_MetallicRoughnessValues float2 1 1 param_named u_OcclusionStrength float 1 } } } }