|
|
@ -7,6 +7,8 @@ namespace UnityEngine.Rendering.HighDefinition |
|
|
public partial class HDRenderPipeline |
|
|
public partial class HDRenderPipeline |
|
|
{ |
|
|
{ |
|
|
private CacaoContext m_CacaoContext; |
|
|
private CacaoContext m_CacaoContext; |
|
|
|
|
|
private Vector2Int m_CacaoPrevResolution; |
|
|
|
|
|
private bool m_CacaoPrevDownsample; |
|
|
|
|
|
|
|
|
class RenderCacaoParameters |
|
|
class RenderCacaoParameters |
|
|
{ |
|
|
{ |
|
|
@ -47,6 +49,12 @@ namespace UnityEngine.Rendering.HighDefinition |
|
|
bilateralUpscale = runtimeShaders.cacaoBilateralUpscale, |
|
|
bilateralUpscale = runtimeShaders.cacaoBilateralUpscale, |
|
|
reinterleave = runtimeShaders.cacaoReinterleave, |
|
|
reinterleave = runtimeShaders.cacaoReinterleave, |
|
|
}); |
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Detect changes in resolution parameters and reinitialize context if necessary
|
|
|
|
|
|
if (parameters.resolution.x != m_CacaoPrevResolution.x || parameters.resolution.y != m_CacaoPrevResolution.y || parameters.downsample != m_CacaoPrevDownsample) |
|
|
|
|
|
{ |
|
|
|
|
|
m_CacaoContext.DestroyScreenSizeDependentResources(); |
|
|
|
|
|
|
|
|
m_CacaoContext.InitScreenSizeDependentResources(new Cacao.ScreenSizeInfo |
|
|
m_CacaoContext.InitScreenSizeDependentResources(new Cacao.ScreenSizeInfo |
|
|
{ |
|
|
{ |
|
|
@ -54,10 +62,12 @@ namespace UnityEngine.Rendering.HighDefinition |
|
|
Height = (uint)parameters.resolution.y, |
|
|
Height = (uint)parameters.resolution.y, |
|
|
UseDownsampledSsao = parameters.downsample, |
|
|
UseDownsampledSsao = parameters.downsample, |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
m_CacaoPrevResolution = parameters.resolution; |
|
|
|
|
|
m_CacaoPrevDownsample = parameters.downsample; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// TODO: init m_CacaoContext with data from parameters
|
|
|
// TODO: init m_CacaoContext with data from parameters
|
|
|
// TODO: detect changes in parameters and reinit m_CacaoContext if necessary
|
|
|
|
|
|
m_CacaoContext.UpdateSettings(parameters.settings); |
|
|
m_CacaoContext.UpdateSettings(parameters.settings); |
|
|
|
|
|
|
|
|
using (var builder = renderGraph.AddRenderPass<RenderCacaoPassData>("FidelityFX CACAO", out var passData, ProfilingSampler.Get(HDProfileId.AmbientOcclusion))) |
|
|
using (var builder = renderGraph.AddRenderPass<RenderCacaoPassData>("FidelityFX CACAO", out var passData, ProfilingSampler.Get(HDProfileId.AmbientOcclusion))) |
|
|
|