- Rename lit.shader to defaultLit.shader,this one is the one written by
hand, others are generated by shader graph
- Rename littemplate to litcommon to be less confusing
- update all the scene because of renaming above
- pepare a directory with ShaderPass that are common code for a given
pass. (currently no vertex shader here)
- Add EnvTemplate to generate various combinaison of cube texarray and
simple cube for evaluteBSDF_env
- Rename class/file
- Introduce concept of FragInput
-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
-
- 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).
- rename _LinearFogOoRange as _LinearFogOneOverRange
- add _BLENDMODE_ACCURATE_LIGHTING keyword
- change _ENABLE_FOG to _ENABLE_TRANSPARENT_FOG
- update test scene
- fix issue with refractoinMask not correct by default- rename
_LinearFogOoRange as _LinearFogOneOverRange
- add _BLENDMODE_ACCURATE_LIGHTING keyword
- change _ENABLE_FOG to _ENABLE_TRANSPARENT_FOG
- update test scene
- Change alpha blend mode to One / InvSrc alpha and the multiplication
is done in the shader. Avoid precision issue
- Make a comment ApplyBlendMode function
- Update test scene
- Fix an issue with the UI and the Popup of blend mode
- Create clearColorAllBlack to have color with alpha channel with 0 for
clear.
- Add shadowmask and occlusion probe sampling functions
- Add various debug feature for shadow mask
- Refactor GBuffer manager
- Add SHADOWS_SHADOWMASK keyword to our various lit and debug shader
- In deferred, SHADOWS_SHADOWMASK add an extra GBuffer
- Create a BakeLightingData that contain bakeDiffuseLighting +
bakeShadowMask
- Update all lightLoop call with this new BakeLightingData struct, pass
it to EvaluateBSDF_XXX function
- Move #pragma multi_compile from .shader to pass that require it
(unsure if this save variant)
Improved the visualisation of mip ratio to handle mip reduction.
Improved the mip level count visualisation now mip streaming shown more clearly in other mip debug mode
Moved common shader functions to HLSL file
Rename EnableSSSAndTransmission as EnableSubsurfaceScattering and
EnableTransmission
Note: Disabling Transmission doesn't save the ALU if it is enabled in
the profile
+ Add supportSubsurfaceScattering in UI
+ Small cosmetic rearrangement at the beginning of lit.hlsl
* 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