-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
* 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...
Move specular funciton in commonlighting.hlsl
Fix issue in TextureNormalVariance
Fix issue with colorPicker not working in forward
Misc format/comment/code sharing