Skip to content

Commit 0d6f973

Browse files
pema99Evergreen
authored andcommitted
Fix meta for terrains in HDRP
https://jira.unity3d.com/browse/UUM-71171 The meta pass of the default HDRP terrain shader (TerrainLit.shader) is currently broken. It always outputs black albedo, resulting in no bounced lighting whatsoever. This was a regression introduced in this PR https://github.cds.internal.unity3d.com/unity/unity/pull/20840, which moved around some shader includes, but neglected to update the Terrain shader according. The bug is essentially that the meta pass is incorrectly using camera-relative rendering. This fix is to restore the missing include in the terrain shader.
1 parent b107b46 commit 0d6f973

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLitTemplate.hlsl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727
#endif
2828
#ifdef SCENESELECTIONPASS
2929
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl"
30+
#elif SHADERPASS == SHADERPASS_LIGHT_TRANSPORT
31+
// Use Unity's built-in matrices for meta pass rendering
32+
#define SCENEPICKINGPASS
33+
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl"
3034
#endif
3135
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl"
3236

Tests/SRPTests/Projects/HDRP_Tests/Assets/Tests/LightBaker/InputExtractionMaterials.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,12 @@ public class MetaPassSceneTest
1919
public string ObjectName { get; set; } // Object for which to test the metaPass data
2020
public MetaPassType MetaPassType { get; set; } = MetaPassType.Albedo;
2121
public int TextureCount { get; set; }
22+
public float RMSEThreshold { get; set; } = 0.0001f;
2223
public override string ToString() { return $"{SceneName}-{ObjectName}-{MetaPassType}"; }
2324
};
2425

2526
internal class InputExtractionMaterials
2627
{
27-
private static readonly float metaPassRMSETolerance = 0.0001f;
28-
2928
Texture2D ConvertVector4ImageToRGBAHalfTexture(uint width, uint height, Vector4[] textureData)
3029
{
3130
Texture2D texture = new((int)width, (int)height, TextureFormat.RGBAHalf, false);
@@ -53,8 +52,8 @@ Texture2D ConvertVector4ImageToRGBAHalfTexture(uint width, uint height, Vector4[
5352
new() { SceneName = "Metapass_BasicMaterials", ObjectName = "albedoTexTiling23", MetaPassType = MetaPassType.Albedo , TextureCount = 13 },
5453
new() { SceneName = "Metapass_BasicMaterials", ObjectName = "emissiveTexOffset_p5p3", MetaPassType = MetaPassType.Emission , TextureCount = 13 },
5554
new() { SceneName = "Metapass_BasicMaterials", ObjectName = "albedoTexOffset_p5p3", MetaPassType = MetaPassType.Albedo , TextureCount = 13 },
56-
new() { SceneName = "BakedLightingTerrainAlbedo-editor", ObjectName = "Terrain", MetaPassType = MetaPassType.Albedo , TextureCount = 3 },
57-
new() { SceneName = "BakedLightingTerrainAlbedo-editor", ObjectName = "TerrainOffset", MetaPassType = MetaPassType.Albedo , TextureCount = 3 }
55+
new() { SceneName = "BakedLightingTerrainAlbedo-editor", ObjectName = "Terrain", MetaPassType = MetaPassType.Albedo , TextureCount = 3, RMSEThreshold = 0.03f },
56+
new() { SceneName = "BakedLightingTerrainAlbedo-editor", ObjectName = "TerrainOffset", MetaPassType = MetaPassType.Albedo , TextureCount = 3, RMSEThreshold = 0.03f }
5857
};
5958

6059
[Test, Category("Graphics")]
@@ -108,7 +107,7 @@ public void MetaPassTemplateTests([ValueSource(nameof(metaPassTests))]MetaPassSc
108107
ActivePixelTests = ImageComparisonSettings.PixelTests.None,
109108
ActiveImageTests = ImageComparisonSettings.ImageTests.RMSE,
110109
IncorrectPixelsThreshold = 1.0f / (actualTexture2D.width * actualTexture2D.height),
111-
RMSEThreshold = metaPassRMSETolerance
110+
RMSEThreshold = metaPassTest.RMSEThreshold,
112111
};
113112

114113
try

Tests/SRPTests/Projects/HDRP_Tests/Assets/Tests/LightBaker/Scenes/BakedLightingTerrainAlbedo-editor.unity

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ Terrain:
191191
m_PreserveTreePrototypeLayers: 0
192192
m_DeringLightProbesForTrees: 1
193193
m_ReceiveGI: 1
194-
m_ScaleInLightmap: 0.0512
194+
m_ScaleInLightmap: 1
195195
m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0}
196196
m_GroupingID: 0
197197
m_RenderingLayerMask: 1
@@ -556,8 +556,12 @@ Light:
556556
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
557557
m_UseBoundingSphereOverride: 0
558558
m_UseViewFrustumForShadowCasterCull: 1
559+
m_ForceVisible: 0
559560
m_ShadowRadius: 0
560561
m_ShadowAngle: 0
562+
m_LightUnit: 1
563+
m_LuxAtDistance: 1
564+
m_EnableSpotReflector: 1
561565
--- !u!114 &700898409
562566
MonoBehaviour:
563567
m_ObjectHideFlags: 0
@@ -788,7 +792,7 @@ Terrain:
788792
m_PreserveTreePrototypeLayers: 0
789793
m_DeringLightProbesForTrees: 1
790794
m_ReceiveGI: 1
791-
m_ScaleInLightmap: 0.0512
795+
m_ScaleInLightmap: 1
792796
m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0}
793797
m_GroupingID: 0
794798
m_RenderingLayerMask: 1
@@ -864,6 +868,7 @@ MeshRenderer:
864868
m_RayTraceProcedural: 0
865869
m_RayTracingAccelStructBuildFlagsOverride: 0
866870
m_RayTracingAccelStructBuildFlags: 1
871+
m_SmallMeshCulling: 1
867872
m_RenderingLayerMask: 1
868873
m_RendererPriority: 0
869874
m_Materials:
@@ -1174,6 +1179,7 @@ MeshRenderer:
11741179
m_RayTraceProcedural: 0
11751180
m_RayTracingAccelStructBuildFlagsOverride: 0
11761181
m_RayTracingAccelStructBuildFlags: 1
1182+
m_SmallMeshCulling: 1
11771183
m_RenderingLayerMask: 1
11781184
m_RendererPriority: 0
11791185
m_Materials:
@@ -1321,8 +1327,12 @@ Light:
13211327
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
13221328
m_UseBoundingSphereOverride: 0
13231329
m_UseViewFrustumForShadowCasterCull: 1
1330+
m_ForceVisible: 0
13241331
m_ShadowRadius: 0
13251332
m_ShadowAngle: 0
1333+
m_LightUnit: 1
1334+
m_LuxAtDistance: 1
1335+
m_EnableSpotReflector: 1
13261336
--- !u!114 &1665680526
13271337
MonoBehaviour:
13281338
m_ObjectHideFlags: 0

0 commit comments

Comments
 (0)