- Modify shader generator to automatically generate define from struct
- Add attribute to be able to control display name and enum start value
- Refactor the whole debugging code for debug view material properties
- Rename a few thing
- Add PrelightData concept: variable that you can precompute ahead of
calling the lighting loop
- Various stuff related to that: BRDF recomputed LambdaV version etc...
-fix issue with spotAngle that have been change in the light component
- remove undesired unrachable code warning
- create a proper shader config system (previous one was nor working)
- Change concept of material gbuffer to also include lighting, remove
all lighting buffer macro, bakeDiffuseLighting now pass to encode to
gbuffer
- deferred material is now in charge of all material RT format, lighting
buffer included
- velocity buffer is independt of deferred material
- add first start of distortion
- update velocity buffer management + add velocity pass
-
- Rename all "loop" name to "pipeline" name for FPTL/Basic/HD
- Update all include in HDRenderPipeline to match C++ #include path that
is Asset/ScriptableRenderPipeline
Caution: This PR require the new C++ code
- Now Depth buffer is not copied anymore on PS4
- On other platform, depth buffer is used only once and the copy is used as a texture in all shader that need it. Depth Buffer Render Target is no longer changed.
- Debug Diffuse Lighting albedo override now works correctly for SSS materials.
- GBuffer debug now only shows GBuffer enabled material (no more forward only materials)
- Changed previous fix of PS4 crash in ShaderPassForward (it caused debug lighting for transparent objects to break).
Old code require to use _CameraDepthTexture name, we have change it to
MainDepthTexture a while ago because of bug due to usage of
GetTemporaryRT, as we don't use GetTemporaryRT anymore we can now come
back to the original name
* 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...