Skip to content

[URP] Decal fixes #5384

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 26 commits into from
Oct 7, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
a2e4eb6
switching _CameraDepthTexture to R32Float and accommodating some stuf…
jonuuukas Jul 29, 2021
80af9be
some changes to the Foundation Project for Repro project (to be rever…
jonuuukas Jul 29, 2021
d1cef12
Revert "some changes to the Foundation Project for Repro project (to …
jonuuukas Jul 29, 2021
d39e96d
disable fbfetch on DbufferDeferred decals
jonuuukas Aug 3, 2021
c149ec9
adding IsTransientAttachment to ScriptableRenderPass/NativeRenderPass…
jonuuukas Aug 5, 2021
8ce5f7c
Fixed decals to work with native render pass [case 1353141]
lukaschod Aug 11, 2021
cdcc881
Adding changelog entry
lukaschod Aug 11, 2021
14ec8d2
Leftover
lukaschod Aug 12, 2021
933f089
making depthOnly pass compatible to render color texture and changing…
jonuuukas Aug 12, 2021
624f0a1
Merge branch 'master' into universal/depth-copy-as-color
jonuuukas Aug 12, 2021
377d987
Fixing decal+native renderpass+decal+deferred scenario
lukaschod Aug 13, 2021
d887392
fix after updating trunk
jonuuukas Aug 13, 2021
6accb1c
merge fix - change descriptor for DepthOnly configureTarget to the co…
jonuuukas Aug 13, 2021
ee6e7d4
enabling depthbuffer for depth copy and adding additional override fo…
jonuuukas Aug 16, 2021
399ee75
formatting fixes
jonuuukas Aug 16, 2021
68d3938
terrain shader passes depthonly pass fix to output clippos
jonuuukas Aug 17, 2021
4f9cbd7
adding depth copy for renderpass as well and changing how fake depth …
jonuuukas Aug 17, 2021
165f4d5
some cleanup and refactoring and enabling Renderpass for SS forward d…
jonuuukas Aug 17, 2021
4dead85
Merge branch 'universal/depth-copy-as-color' of github.com:Unity-Tech…
lukaschod Aug 18, 2021
4635bfb
Fixing decals rendering to be correct with render scale. [1353885]
lukaschod Aug 18, 2021
b1ec31e
Cleanup
lukaschod Aug 18, 2021
e8b738d
Cleanup
lukaschod Aug 19, 2021
cc903b2
Cleanup
lukaschod Aug 19, 2021
18e804f
Changing to correct normal sampling for decal shadergraph
lukaschod Sep 6, 2021
9319551
Merge branch 'universal/staging' of github.com:Unity-Technologies/Gra…
lukaschod Oct 7, 2021
1af0f36
Merge branch 'universal/staging' into universal/decal-fixes
phi-lira Oct 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
2 changes: 2 additions & 0 deletions com.unity.render-pipelines.universal/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Fixed an issue where Unlit and ParticlesUnlit shaders did not have HDR color selection for albedo [case 1283767](https://issuetracker.unity3d.com/issues/built-in-unlit-particle-shader-has-hdr-color-selection-for-albedo-urp-unlit-particles-do-not)
- Fixed overwriting of preview camera background color. [case 1357004](https://issuetracker.unity3d.com/product/unity/issues/guid/1361557/)
- Fixed ShadowCaster now requires varying normalWS to include changed normals from vertex shader in shader graph.
- Fixed decals to work with native render pass [case 1353141](https://issuetracker.unity3d.com/issues/urp-decals-are-not-visible-in-game-view-after-modifying-urp-asset-properties)
- Fixed decals to work with render scale [1353885](https://issuetracker.unity3d.com/issues/urp-builtin-to-urp-render-pipeline-converter-freezes-the-editor-when-converting-rendering-settings)
- Fixed typo in numIterationsEnclosingSphere api name

## [13.0.0] - 2021-09-01
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,17 @@ internal class DBufferRenderPass : ScriptableRenderPass
private int m_DBufferCount;
private ProfilingSampler m_ProfilingSampler;

private RenderTargetHandle m_DBufferDepth;
private RenderTargetHandle m_CameraDepthTexture;
private RenderTargetHandle m_CameraDepthAttachment;

internal DeferredLights deferredLights { get; set; }
private bool isDeferred => deferredLights != null;
internal RenderTargetIdentifier[] dBufferColorIndentifiers { get; private set; }
internal RenderTargetIdentifier dBufferDepthIndentifier { get; private set; }
internal RenderTargetIdentifier cameraDepthTextureIndentifier { get; private set; }
internal RenderTargetIdentifier cameraDepthAttachmentIndentifier { get; private set; }

internal RenderTargetHandle dBufferDepth => m_DBufferDepth;
internal RenderTargetHandle cameraDepthTexture => m_CameraDepthTexture;
internal RenderTargetHandle cameraDepthAttachment => m_CameraDepthAttachment;

public DBufferRenderPass(Material dBufferClear, DBufferSettings settings, DecalDrawDBufferSystem drawSystem)
{
Expand All @@ -51,9 +56,9 @@ public DBufferRenderPass(Material dBufferClear, DBufferSettings settings, DecalD
dBufferColorIndentifiers[dbufferIndex] = new RenderTargetIdentifier(s_DBufferNames[dbufferIndex]);
m_DBufferCount = dBufferCount;

dBufferDepthIndentifier = new RenderTargetIdentifier(s_DBufferDepthName);
cameraDepthTextureIndentifier = new RenderTargetIdentifier("_CameraDepthTexture");
cameraDepthAttachmentIndentifier = new RenderTargetIdentifier("_CameraDepthAttachment");
m_DBufferDepth.Init(s_DBufferDepthName);
m_CameraDepthTexture.Init("_CameraDepthTexture");
m_CameraDepthAttachment.Init("_CameraDepthAttachment");
}

public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData)
Expand Down Expand Up @@ -97,12 +102,12 @@ public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderin
depthDesc.depthStencilFormat = renderingData.cameraData.cameraTargetDescriptor.depthStencilFormat;
depthDesc.msaaSamples = 1;

cmd.GetTemporaryRT(Shader.PropertyToID(s_DBufferDepthName), depthDesc);
depthIdentifier = dBufferDepthIndentifier;
cmd.GetTemporaryRT(m_DBufferDepth.id, depthDesc);
depthIdentifier = m_DBufferDepth.Identifier();
}
else
{
depthIdentifier = deferredLights.DepthAttachmentIdentifier;
depthIdentifier = m_CameraDepthAttachment.Identifier();
}

ConfigureTarget(dBufferColorIndentifiers, depthIdentifier);
Expand Down Expand Up @@ -184,7 +189,7 @@ public override void OnCameraCleanup(CommandBuffer cmd)
}

if (!isDeferred)
cmd.ReleaseTemporaryRT(Shader.PropertyToID(s_DBufferDepthName));
cmd.ReleaseTemporaryRT(m_DBufferDepth.id);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,6 @@ private void RecreateSystemsIfNeeded(ScriptableRenderer renderer, in CameraData
m_ScreenSpaceSettings = GetScreenSpaceSettings();

m_CopyDepthMaterial = CoreUtils.CreateEngineMaterial(m_CopyDepthPS);
m_CopyDepthPass = new CopyDepthPass(RenderPassEvent.AfterRenderingPrePasses, m_CopyDepthMaterial);

m_DBufferClearMaterial = CoreUtils.CreateEngineMaterial(m_DBufferClear);

Expand Down Expand Up @@ -370,7 +369,6 @@ private void RecreateSystemsIfNeeded(ScriptableRenderer renderer, in CameraData
switch (m_Technique)
{
case DecalTechnique.ScreenSpace:
m_CopyDepthPass = new CopyDepthPass(RenderPassEvent.AfterRenderingOpaques, m_DBufferClearMaterial);
m_DecalDrawScreenSpaceSystem = new DecalDrawScreenSpaceSystem(m_DecalEntityManager);
m_ScreenSpaceDecalRenderPass = new DecalScreenSpaceRenderPass(m_ScreenSpaceSettings, intermediateRendering ? m_DecalDrawScreenSpaceSystem : null);
break;
Expand All @@ -379,12 +377,12 @@ private void RecreateSystemsIfNeeded(ScriptableRenderer renderer, in CameraData

m_DeferredLights = universalRenderer.deferredLights;

m_CopyDepthPass = new CopyDepthPass(RenderPassEvent.AfterRenderingOpaques, m_DBufferClearMaterial);
m_DrawGBufferSystem = new DecalDrawGBufferSystem(m_DecalEntityManager);
m_GBufferRenderPass = new DecalGBufferRenderPass(m_ScreenSpaceSettings, intermediateRendering ? m_DrawGBufferSystem : null);
break;

case DecalTechnique.DBuffer:
m_CopyDepthPass = new CopyDepthPass(RenderPassEvent.AfterRenderingPrePasses, m_CopyDepthMaterial);
m_DecalDrawDBufferSystem = new DecalDrawDBufferSystem(m_DecalEntityManager);
m_DBufferRenderPass = new DBufferRenderPass(m_DBufferClearMaterial, m_DBufferSettings, m_DecalDrawDBufferSystem);

Expand Down Expand Up @@ -466,15 +464,17 @@ public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingD
if (universalRenderer.actualRenderingMode == RenderingMode.Deferred)
{
m_CopyDepthPass.Setup(
new RenderTargetHandle(m_DBufferRenderPass.cameraDepthAttachmentIndentifier),
new RenderTargetHandle(m_DBufferRenderPass.cameraDepthTextureIndentifier)
m_DBufferRenderPass.cameraDepthAttachment,
m_DBufferRenderPass.cameraDepthTexture
);

m_CopyDepthPass.AllocateRT = false;
}
else
{
m_CopyDepthPass.Setup(
new RenderTargetHandle(m_DBufferRenderPass.cameraDepthTextureIndentifier),
new RenderTargetHandle(m_DBufferRenderPass.dBufferDepthIndentifier)
m_DBufferRenderPass.cameraDepthTexture,
m_DBufferRenderPass.dBufferDepth
);
}
m_CopyDepthPass.MssaSamples = 1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ void SetPerCameraShaderVariables(CommandBuffer cmd, ref CameraData cameraData)
cmd.SetGlobalVector(ShaderPropertyId.zBufferParams, zBufferParams);
cmd.SetGlobalVector(ShaderPropertyId.orthoParams, orthoParams);

cmd.SetGlobalVector(ShaderPropertyId.screenSize, new Vector4(cameraWidth, cameraHeight, 1.0f / cameraWidth, 1.0f / cameraHeight));
cmd.SetGlobalVector(ShaderPropertyId.screenSize, new Vector4(scaledCameraWidth, scaledCameraHeight, 1.0f / scaledCameraWidth, 1.0f / scaledCameraHeight));
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,8 @@
"serializedMesh": {
"m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}",
"m_Guid": ""
}
},
"preventRotation": false
},
"m_Path": "Shader Graphs",
"m_GraphPrecision": 1,
Expand Down Expand Up @@ -329,9 +330,9 @@
"m_CustomColors": {
"m_SerializableColors": []
},
"m_TextureType": 0,
"m_TextureType": 1,
"m_NormalMapSpace": 0,
"m_DisableGlobalMipBias": false
"m_EnableGlobalMipBias": true
}

{
Expand Down Expand Up @@ -889,7 +890,7 @@
},
"m_TextureType": 0,
"m_NormalMapSpace": 0,
"m_DisableGlobalMipBias": false
"m_EnableGlobalMipBias": true
}

{
Expand Down