- 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
- Shader opaque compute doens't work
- Seems that if we disable clustered for forward, the fallback have some
conflict with tiling (not a use mode as the fallback is just a debug
mode but should not happen).
- Add a thin material option on SSS profile
- Shadow was not working anymore with transmission due to merge conflict
with shadow branch
- Done a pass of format on file in Lit directory
- Share constant for number of profile between c#a and hlsl
- Rename Thin Material in Thin objects
- Merge enable transmission and enable thin material in transmission
type
- re-add human head
- fix thin transmission test scene
- Instead of wasting one value in materialId (only 4 availabe, we reuse
the matid standard and the value in the specular), it allow to have 2
matId free.
- Optimize the code with shader features for materialID
Remove FeatureFlags file and move them to Lit.hlsl as they are related
to the material, so each deferred material can define its own
"optimization" with material classification. also the material know the
cost of light features. + simplify code of gettings material features
* 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...