Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
e4c171d
Removed some GCAlloc when creating probes
JulienIgnace-Unity Nov 27, 2020
76f58c0
Stop updating volume system for Lighting Override when not necessary.
JulienIgnace-Unity Nov 27, 2020
53bdbf0
Merge branch 'master' of https://github.com/Unity-Technologies/Graphi…
JulienIgnace-Unity Dec 16, 2020
d15aa3e
Removed C++ change dependency
JulienIgnace-Unity Dec 16, 2020
2fe900c
Used new API to disable terrain data deletion for reflection cameras.
JulienIgnace-Unity Dec 16, 2020
77bae01
Fixed Render Graph immediate mode. (#3033)
JulienIgnace-Unity Jan 8, 2021
47bd6c2
Fix issue with shadow mask and area lights (#3019)
FrancescoC-unity Jan 8, 2021
88daab3
Fix issue with capture callback (now includes post processing results…
pmavridis Jan 8, 2021
4313b48
[HDRP] Fix decal draw order for ShaderGraph decal materials (#3018)
alelievr Jan 8, 2021
a9c4c27
Fixed various Look Dev issues after exiting Playmode (#2956)
JulienIgnace-Unity Jan 11, 2021
d358740
Merge branch 'master' into hd/bugfix
sebastienlagarde Jan 11, 2021
11b5984
Merge branch 'master' into hd/bugfix
sebastienlagarde Jan 11, 2021
a22cfa4
StackLit: Fix SG surface option property block to only display energy…
slunity Jan 12, 2021
a3c36a5
Fixed missing BeginCameraRendering call for custom render mode of a C…
sebastienlagarde Jan 12, 2021
48f912b
Merge branch 'hd/bugfix' of https://github.com/Unity-Technologies/Gra…
JulienIgnace-Unity Jan 12, 2021
d932606
Fix wrong merge
JulienIgnace-Unity Jan 12, 2021
3aa5fa5
Merge branch 'master' of https://github.com/Unity-Technologies/Graphi…
JulienIgnace-Unity Mar 22, 2021
8d89719
Fixed C++ API change
JulienIgnace-Unity Mar 22, 2021
3a3c002
Merge branch 'master' of https://github.com/Unity-Technologies/Graphi…
JulienIgnace-Unity Mar 26, 2021
858b661
Use new no alloc API to retrieve active terrain list.
JulienIgnace-Unity Mar 26, 2021
332af8b
Merge branch 'master' of https://github.com/Unity-Technologies/Graphi…
JulienIgnace-Unity Apr 29, 2021
711d170
Fixed API change
JulienIgnace-Unity Apr 29, 2021
83cb5aa
Merge branch 'master' of https://github.com/Unity-Technologies/Graphi…
JulienIgnace-Unity May 7, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ class IBLFilterGGX : IBLFilterBSDF
const int k_DefaultPlanarResolution = 512;
// Intermediate variables
Vector4 currentScreenSize = new Vector4(1.0f, 1.0f, 1.0f, 1.0f);
MaterialPropertyBlock m_MaterialPropertyBlock = new MaterialPropertyBlock();


public IBLFilterGGX(HDRenderPipelineRuntimeResources renderPipelineResources, MipGenerator mipGenerator)
{
Expand Down Expand Up @@ -138,23 +140,22 @@ void FilterCubemapCommon(CommandBuffer cmd,

m_convolveMaterial.SetTexture("_GgxIblSamples", m_GgxIblSampleData);

var props = new MaterialPropertyBlock();
props.SetTexture("_MainTex", source);
props.SetFloat("_InvOmegaP", invOmegaP);
m_MaterialPropertyBlock.SetTexture("_MainTex", source);
m_MaterialPropertyBlock.SetFloat("_InvOmegaP", invOmegaP);

for (int mip = 1; mip < (int)EnvConstants.ConvolutionMipCount; ++mip)
{
props.SetFloat("_Level", mip);
m_MaterialPropertyBlock.SetFloat("_Level", mip);

for (int face = 0; face < 6; ++face)
{
var faceSize = new Vector4(source.width >> mip, source.height >> mip, 1.0f / (source.width >> mip), 1.0f / (source.height >> mip));
var transform = HDUtils.ComputePixelCoordToWorldSpaceViewDirectionMatrix(0.5f * Mathf.PI, Vector2.zero, faceSize, worldToViewMatrices[face], true);

props.SetMatrix(HDShaderIDs._PixelCoordToViewDirWS, transform);
m_MaterialPropertyBlock.SetMatrix(HDShaderIDs._PixelCoordToViewDirWS, transform);

CoreUtils.SetRenderTarget(cmd, target, ClearFlag.None, mip, (CubemapFace)face);
CoreUtils.DrawFullScreen(cmd, m_convolveMaterial, props);
CoreUtils.DrawFullScreen(cmd, m_convolveMaterial, m_MaterialPropertyBlock);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1216,29 +1216,31 @@ internal void UpdateCurrentSky(SkyManager skyManager)
visualSky.skySettings = SkyManager.GetSkySetting(volumeStack);
visualSky.cloudSettings = SkyManager.GetCloudSetting(volumeStack);

// Now, see if we have a lighting override
// Update needs to happen before testing if the component is active other internal data structure are not properly updated yet.
VolumeManager.instance.Update(skyManager.lightingOverrideVolumeStack, volumeAnchor, skyManager.lightingOverrideLayerMask);
if (VolumeManager.instance.IsComponentActiveInMask<VisualEnvironment>(skyManager.lightingOverrideLayerMask))
lightingSky = visualSky;

if (skyManager.lightingOverrideLayerMask != 0)
{
SkySettings newSkyOverride = SkyManager.GetSkySetting(skyManager.lightingOverrideVolumeStack);
CloudSettings newCloudOverride = SkyManager.GetCloudSetting(skyManager.lightingOverrideVolumeStack);
// Now, see if we have a lighting override
// Update needs to happen before testing if the component is active other internal data structure are not properly updated yet.
VolumeManager.instance.Update(skyManager.lightingOverrideVolumeStack, volumeAnchor, skyManager.lightingOverrideLayerMask);

if ((m_LightingOverrideSky.skySettings != null && newSkyOverride == null) ||
(m_LightingOverrideSky.cloudSettings != null && newCloudOverride == null))
if (VolumeManager.instance.IsComponentActiveInMask<VisualEnvironment>(skyManager.lightingOverrideLayerMask))
{
// When we switch from override to no override, we need to make sure that the visual sky will actually be properly re-rendered.
// Resetting the visual sky hash will ensure that.
visualSky.skyParametersHash = -1;
}
SkySettings newSkyOverride = SkyManager.GetSkySetting(skyManager.lightingOverrideVolumeStack);
CloudSettings newCloudOverride = SkyManager.GetCloudSetting(skyManager.lightingOverrideVolumeStack);

m_LightingOverrideSky.skySettings = newSkyOverride;
m_LightingOverrideSky.cloudSettings = newCloudOverride;
lightingSky = m_LightingOverrideSky;
}
else
{
lightingSky = visualSky;
if ((m_LightingOverrideSky.skySettings != null && newSkyOverride == null) ||
(m_LightingOverrideSky.cloudSettings != null && newCloudOverride == null))
{
// When we switch from override to no override, we need to make sure that the visual sky will actually be properly re-rendered.
// Resetting the visual sky hash will ensure that.
visualSky.skyParametersHash = -1;

m_LightingOverrideSky.skySettings = newSkyOverride;
m_LightingOverrideSky.cloudSettings = newCloudOverride;
lightingSky = m_LightingOverrideSky;
}
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ internal static HDRenderPipeline currentPipeline
RenderStateBlock m_AlphaToMaskBlock;

readonly List<CustomPassVolume> m_ActivePassVolumes = new List<CustomPassVolume>(6);
readonly List<Terrain> m_ActiveTerrains = new List<Terrain>();

// Detect when windows size is changing
int m_MaxCameraWidth;
Expand Down Expand Up @@ -1081,13 +1082,13 @@ protected override void Render(ScriptableRenderContext renderContext, Camera[] c
if (newCount != m_FrameCount)
{
m_FrameCount = newCount;
m_ProbeCameraCache.ClearCamerasUnusedFor(2, Time.frameCount);
HDCamera.CleanUnused();
}

#if ENABLE_NVIDIA && ENABLE_NVIDIA_MODULE
m_DebugDisplaySettings.nvidiaDebugView.Update();
#endif
Terrain.GetActiveTerrains(m_ActiveTerrains);

// This syntax is awful and hostile to debugging, please don't use it...
using (ListPool<RenderRequest>.Get(out List<RenderRequest> renderRequests))
Expand Down Expand Up @@ -1453,15 +1454,19 @@ ref List<HDProbe.RenderData> renderDatas
for (int j = 0; j < cameraSettings.Count; ++j)
{
var camera = m_ProbeCameraCache.GetOrCreate((viewerTransform, visibleProbe, j), Time.frameCount, CameraType.Reflection);
var additionalCameraData = camera.GetComponent<HDAdditionalCameraData>();

var settingsCopy = m_Asset.currentPlatformRenderPipelineSettings.dynamicResolutionSettings;
settingsCopy.forcedPercentage = 100.0f;
settingsCopy.forceResolution = true;
DynamicResolutionHandler.UpdateAndUseCamera(camera, settingsCopy);

if (additionalCameraData == null)
foreach (var terrain in m_ActiveTerrains)
terrain.SetKeepUnusedCameraRenderingResources(camera.GetInstanceID(), true);

if (!camera.TryGetComponent<HDAdditionalCameraData>(out var additionalCameraData))
{
additionalCameraData = camera.gameObject.AddComponent<HDAdditionalCameraData>();
}
additionalCameraData.hasPersistentHistory = true;

// We need to set a targetTexture with the right otherwise when setting pixelRect, it will be rescaled internally to the size of the screen
Expand Down