private static Matrix4x4 ApplyBiasMatrix(Matrix4x4 proj, Matrix4x4 view)
{
if (SystemInfo.usesReversedZBuffer)
{
proj.m20 = -proj.m20;
proj.m21 = -proj.m21;
proj.m22 = -proj.m22;
proj.m23 = -proj.m23;
}
Matrix4x4 worldToShadow = proj * view;
var textureScaleAndBias = Matrix4x4.identity;
textureScaleAndBias.m00 = 0.5f;
textureScaleAndBias.m11 = 0.5f;
textureScaleAndBias.m22 = 0.5f;
textureScaleAndBias.m03 = 0.5f;
textureScaleAndBias.m23 = 0.5f;
textureScaleAndBias.m13 = 0.5f;
return textureScaleAndBias * worldToShadow;
}
Media is too big
VIEW IN TELEGRAM
ладно, пока так
half4 MainLightShadowsData; //light strength, shadowBias, normalBias
half4 _MainLightShadowDistanceFade; //max distance, fadeWidth, 0, 0,
half fade = 1.0 - saturate ((distance (IN.positionWS, _WorldSpaceCameraPos.xyz) - _MainLightShadowDistanceFade.x) / _MainLightShadowDistanceFade.y );
shadow = LerpWhiteTo(shadow, MainLightShadowsData.x * fade);
🔥1
Media is too big
VIEW IN TELEGRAM
что Юнити предлагает в
ShadowSamplingTent.hlsl
ShadowSamplingTent.hlsl
This media is not supported in your browser
VIEW IN TELEGRAM
если забыть про RendererListDesc.rendererConfiguration
сделал так:
_mpb = context.renderGraphPool.GetTempMaterialPropertyBlock();
_mpb.SetVector(_filterID, _filter);
_mpb.SetTexture(_sourceTextureID, data.ColorSource);
cmd.SetRenderTarget( data.BlurPyramid[0], RenderBufferLoadAction.DontCare, RenderBufferStoreAction.Store);
cmd.ClearRenderTarget(RTClearFlags.ColorDepth, Color.clear);
cmd.DrawProcedural( Matrix4x4.identity, _bloomMaterial, 0, MeshTopology.Triangles,3, 1, _mpb);
normal map gbuffer:
-- deault LDR color format
-- A2B10G10R10_UNormPack32
-- deault LDR color format
-- A2B10G10R10_UNormPack32