Only supports base unlit material parameters with the addition of : analytical lights with a diffuse lambert BSDF, interpolated geometric normal and double sided option.
- Fix an issue in the UI with Remap and Range
- Add detail normal and smoothness map (overlay for smoothness)
- Fix compilation issue with GetGGXAnisotropicModifiedNormalAndRoughness refactor
-Make the AO and SO path clean since we're forward based (no more double occlusion and occlusion on emissive).
-Configurable per-lobe specular occlusion on environment lights and debug options. Also use GTAOMultiBounce tint in the context of vertical layering.
(Enabling SO is orthogonal to bentnormals presence, the choosen algo for the data-based occlusion will use the normal or bentnormal if present)
-Bentnormal map which piggy backs on all normal map parameters (add UI code to allow this too)
-Fix GGX energy compensation term application
-Reuse some Lit shader_feature keywords
-SpecularColor mode now selectable
-Dual specular lobe has two parametrization: direct and hazy gloss (Barla et al. 2018-07)
-UI changes to support multiple parametrizations and also avoid useless keyword switching in some instances
-Additional note on specular occlusion and anisotropy
* HDRP: Add support of light layering for forward (first draft)
TODO:
- Test instancing
- Check perf
- add an option to disable light layer support + in frameSettings
- add deferred rendering support (mean add an optional extra GBuffer)
* Add LightLinking support (version 1 - compile)
This PR add support of LightLayers feature.
To use it, setup mask renderingLayers on renderers and LightLayers on a lights. If a logical and of both give a non 0 value, the light is apply, otherwise it isn't.
This mean that by default LightLayers is 1 and RenderingLayers is 1. Then user can say LightLayers is only 2 and it will only affect renderingLayers with 2 or 3 mask value.
LightLayers require an extra GBuffer in deferred, mean it have extra bandwidth and memory cost.
LightLayers once enabled in HDRPAsset with SupportLightLayers can be control by FrameSettings. Mean a camera can enable extra RT only for an in game cinematic.
This PR refactor...
- Shader code change: Rename GetBakedDiffuseLighting to ModifyBakedDiffuseLighting. This function now handle lighting model for transmission too. Lux meter debug mode is factor outisde.
- Shader code change: GetBakedDiffuseLighting is not call anymore in GBuffer or forward pass, including the ConvertSurfaceDataToBSDFData and GetPreLightData, this is done in ModifyBakedDiffuseLighting now
- Shader code change: Added a backBakeDiffuseLighting to BuiltinData to handle lighting for transmission
- Shader code change: Material must now call InitBuiltinData (Init all to zero + init bakeDiffuseLighting and backBakeDiffuseLighting ) and PostInitBuiltinData
- Update shader graph associate code