浏览代码

Moved indirect lighting multipliers to MaterialUtilities

/main
Antoine Lelievre 6 年前
当前提交
89a7cb75
共有 4 个文件被更改,包括 7 次插入10 次删除
  1. 5
      com.unity.render-pipelines.high-definition/HDRP/Lighting/LightLoop/LightLoop.cs
  2. 4
      com.unity.render-pipelines.high-definition/HDRP/Material/Lit/Lit.hlsl
  3. 4
      com.unity.render-pipelines.high-definition/HDRP/Material/MaterialUtilities.hlsl
  4. 4
      com.unity.render-pipelines.high-definition/HDRP/Material/StackLit/StackLit.hlsl

5
com.unity.render-pipelines.high-definition/HDRP/Lighting/LightLoop/LightLoop.cs


// Build light data
var envLightData = new EnvLightData();
float indirectSpecularMultiplier = VolumeManager.instance.stack.GetComponent<IndirectLightingController>().indirectSpecularIntensity;
envLightData.multiplier = probe.multiplier;
envLightData.multiplier = probe.multiplier * indirectSpecularMultiplier;
envLightData.influenceExtents = probe.influenceExtents;
envLightData.blendNormalDistancePositive = probe.blendNormalDistancePositive;
envLightData.blendNormalDistanceNegative = probe.blendNormalDistanceNegative;

void PushGlobalParams(HDCamera hdCamera, CommandBuffer cmd)
{
IndirectLightingController indirectLightVolume = VolumeManager.instance.stack.GetComponent< IndirectLightingController >();
IndirectLightingController indirectLightVolume = VolumeManager.instance.stack.GetComponent<IndirectLightingController>();
Vector4 indirectLightData = new Vector4(indirectLightVolume.indirectDiffuseIntensity, indirectLightVolume.indirectSpecularIntensity, 0, 0);
using (new ProfilingSample(cmd, "Push Global Parameters", CustomSamplerId.TPPushGlobalParameters.GetSampler()))

4
com.unity.render-pipelines.high-definition/HDRP/Material/Lit/Lit.hlsl


// Subsurface scattering mode
float3 modifiedDiffuseColor = GetModifiedDiffuseColorForSSS(bsdfData);
// Apply volume indirect multipler
builtinData.bakeDiffuseLighting *= _IndirectLightingMultiplier.x;
lighting.indirect.specularReflected *= _IndirectLightingMultiplier.y;
// Apply the albedo to the direct diffuse lighting (only once). The indirect (baked)
// diffuse lighting has already multiply the albedo in ModifyBakedDiffuseLighting().
// Note: In deferred bakeDiffuseLighting also contain emissive and in this case emissiveColor is 0

4
com.unity.render-pipelines.high-definition/HDRP/Material/MaterialUtilities.hlsl


else
#endif
{
// Apply control from the indirect lighting volume settings - This is apply here so we don't affect emissive
// color in case of lit deferred for example and avoid material to have to deal with it
builtinData.bakeDiffuseLighting *= _IndirectLightingMultiplier.x;
builtinData.backBakeDiffuseLighting *= _IndirectLightingMultiplier.x;
#ifdef MODIFY_BAKED_DIFFUSE_LIGHTING
ModifyBakedDiffuseLighting(V, posInput, surfaceData, builtinData);
#endif

4
com.unity.render-pipelines.high-definition/HDRP/Material/StackLit/StackLit.hlsl


// Subsurface scattering mode
float3 modifiedDiffuseColor = GetModifiedDiffuseColorForSSS(bsdfData);
// Apply volume indirect multipler
builtinData.bakeDiffuseLighting *= _IndirectLightingMultiplier.x;
lighting.indirect.specularReflected *= _IndirectLightingMultiplier.y;
// Apply the albedo to the direct diffuse lighting (only once). The indirect (baked)
// diffuse lighting has already multiply the albedo in ModifyBakedDiffuseLighting().

正在加载...
取消
保存