add game&rawdata
This commit is contained in:
parent
0133cd976c
commit
49b34b5546
45731 changed files with 709831 additions and 0 deletions
54
gamedata/shaders/r2/model_scope_lense_lerp.ps.hlsl
Normal file
54
gamedata/shaders/r2/model_scope_lense_lerp.ps.hlsl
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
#include "common.hlsli"
|
||||
|
||||
struct v2p
|
||||
{
|
||||
float2 tc0: TEXCOORD0; // base
|
||||
float3 tc1: TEXCOORD1; // environment
|
||||
float4 c0: COLOR0; // sun.(fog*fog)
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
float resize(float input, float factor, float offset)
|
||||
{
|
||||
return (input-0.5f+offset) / factor+0.5f-offset;
|
||||
}
|
||||
|
||||
// Pixel
|
||||
uniform float4 screen_res;
|
||||
uniform float4 m_hud_params;
|
||||
uniform float4 m_zoom_deviation;
|
||||
|
||||
uniform sampler2D s_vp2;
|
||||
|
||||
float4 main ( v2p I ) : COLOR
|
||||
{
|
||||
// Ïðîèçâîäèì âûáîðêó ïðàâîé è ëåâîé ïîëîâèí òåêñòóðû ñ ñåòêîé
|
||||
float2 coords = I.tc0;
|
||||
coords.x *= 0.5;
|
||||
float4 base2 = tex2D(s_base, coords);
|
||||
coords.x += 0.5;
|
||||
float4 t_base = tex2D(s_base, coords);
|
||||
// Ìèêñóåì ïîëîâèíêè â ñîîòâåòñòâèè ñ òåêóùèì óðîâíåì ïîäñâåòêè
|
||||
t_base = lerp(base2, t_base, m_zoom_deviation.z);
|
||||
|
||||
//ñäâèã îò ñîñòîÿíèÿ îðóæèÿ
|
||||
I.tc0.x = I.tc0.x+m_zoom_deviation.x;
|
||||
I.tc0.y = I.tc0.y+m_zoom_deviation.y;
|
||||
|
||||
// Ðàñòÿãèâàåì êàðòèíêó â ëèíçå òàê, ÷òîáû íà ëþáîì ðàçðåøåíèè ýêðàíà áûëè ïðàâèëüíûå ïðîïîðöèè
|
||||
I.tc0.x = resize(I.tc0.x, screen_res.x/screen_res.y, 0);
|
||||
float4 t_vp2 = tex2D(s_vp2, I.tc0);
|
||||
|
||||
float2 offset = distance(I.tc0, float2( .5f, .5f )) * float2(m_hud_params.z, m_hud_params.z);
|
||||
|
||||
// Àááåðàöèÿ
|
||||
t_vp2.r = tex2D( s_vp2, I.tc0+offset).r;
|
||||
t_vp2.b = tex2D( s_vp2, I.tc0-offset).b;
|
||||
|
||||
// Ìèêñóåì âñ¸ è ñîáèðàåì ôèíàëüíóþ êàðòèíêó
|
||||
float3 final = lerp(t_vp2, t_base, t_base.a);
|
||||
|
||||
// out
|
||||
return float4(final.r, final.g, final.b, min(m_hud_params.y, m_hud_params.a));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue