38 lines
873 B
HLSL
38 lines
873 B
HLSL
#include "common.hlsli"
|
|
|
|
uniform float4 m_hud_params;
|
|
uniform float4 m_zoom_deviation;
|
|
|
|
struct v2p
|
|
{
|
|
float2 tc0: TEXCOORD0;
|
|
float3 tc1: TEXCOORD1;
|
|
float4 c0: COLOR0;
|
|
};
|
|
|
|
float4 main(v2p I, float4 pos2d : SV_POSITION) : SV_Target
|
|
{
|
|
if (m_hud_params.y * m_hud_params.a < 0.0001f) {
|
|
return 0.0f;
|
|
}
|
|
|
|
float2 coords = I.tc0;
|
|
coords.x *= 0.5f;
|
|
|
|
float4 base2 = s_base.Sample(smp_base, coords);
|
|
coords.x += 0.5f;
|
|
|
|
float4 t_base = s_base.Sample(smp_base, coords);
|
|
|
|
t_base = lerp(base2, t_base, m_zoom_deviation.z);
|
|
t_base.xyz = detonemap(t_base.xyz);
|
|
|
|
float4 t_vp2 = s_image[pos2d.xy];
|
|
|
|
float alpha = m_hud_params.y * m_hud_params.a;
|
|
t_vp2 *= saturate(alpha * 2.0f - 1.0f);
|
|
|
|
float3 final = lerp(t_vp2.xyz, t_base.xyz, t_base.a);
|
|
return float4(final.xyz, saturate(alpha * 2.0f));
|
|
}
|
|
|