Browse Source

Adjust the size of the shadows HZB

Panagiotis Christopoulos Charitos 2 years ago
parent
commit
4a9a43116d
1 changed files with 3 additions and 3 deletions
  1. 3 3
      AnKi/Renderer/ShadowMapping.cpp

+ 3 - 3
AnKi/Renderer/ShadowMapping.cpp

@@ -70,11 +70,11 @@ Error ShadowMapping::initInternal()
 		RendererString name;
 		name.sprintf("DirLight HZB #%d", i);
 
-		UVec2 size(m_tileResolution >> chooseDirectionalLightShadowCascadeDetail(i),
-				   m_tileResolution >> chooseDirectionalLightShadowCascadeDetail(i));
+		const U32 cascadeResolution = (m_tileResolution * (1 << (kTileAllocHierarchyCount - 1))) >> chooseDirectionalLightShadowCascadeDetail(i);
+		UVec2 size(min(cascadeResolution, 1024u));
 		size /= 2;
 
-		m_cascadeHzbRtDescrs[i] = getRenderer().create2DRenderTargetDescription(size.x(), size.y(), Format::kR32_Sfloat, name);
+		m_cascadeHzbRtDescrs[i] = getRenderer().create2DRenderTargetDescription(size.x(), size.y(), Format::kR16_Sfloat, name);
 		m_cascadeHzbRtDescrs[i].m_mipmapCount = U8(computeMaxMipmapCount2d(m_cascadeHzbRtDescrs[i].m_width, m_cascadeHzbRtDescrs[i].m_height));
 		m_cascadeHzbRtDescrs[i].bake();
 	}