30 lines
938 B
PostScript
30 lines
938 B
PostScript
|
/**
|
||
|
* @ Version: SCREEN SPACE SHADERS - UPDATE 22
|
||
|
* @ Description: Volumetric Blur Phase
|
||
|
* @ Modified time: 2024-11-19 00:06
|
||
|
* @ Author: https://www.moddb.com/members/ascii1457
|
||
|
* @ Mod: https://www.moddb.com/mods/stalker-anomaly/addons/screen-space-shaders
|
||
|
*/
|
||
|
|
||
|
#include "common.h"
|
||
|
|
||
|
Texture2D vol_buffer;
|
||
|
|
||
|
uniform float4 blur_setup; // Buffer Res [ x:width | y:height | z:scale | w:offset size ]
|
||
|
|
||
|
float4 main ( p_screen I ) : SV_Target
|
||
|
{
|
||
|
float4 Blur = 0;
|
||
|
|
||
|
// Scale sample to use the linear filtering
|
||
|
float2 tc = I.tc0.xy * blur_setup.ww;
|
||
|
float2 offset = ((blur_setup.zz + 0.5f) / (blur_setup.xy / blur_setup.ww));
|
||
|
|
||
|
Blur += vol_buffer.SampleLevel(smp_rtlinear, tc + offset, 0);
|
||
|
Blur += vol_buffer.SampleLevel(smp_rtlinear, tc - offset, 0);
|
||
|
offset = float2(-offset.x, offset.x);
|
||
|
Blur += vol_buffer.SampleLevel(smp_rtlinear, tc + offset, 0);
|
||
|
Blur += vol_buffer.SampleLevel(smp_rtlinear, tc - offset, 0);
|
||
|
|
||
|
return Blur / 4.0f;
|
||
|
}
|