add game&rawdata
This commit is contained in:
parent
0133cd976c
commit
49b34b5546
45731 changed files with 709831 additions and 0 deletions
74
gamedata/shaders/r3/bloom_luminance_3.ps
Normal file
74
gamedata/shaders/r3/bloom_luminance_3.ps
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
#include "common.h"
|
||||
/*
|
||||
struct v2p
|
||||
{
|
||||
float4 tc0: TEXCOORD0; // Central
|
||||
float4 tc1: TEXCOORD1; // -1,+1
|
||||
float4 tc2: TEXCOORD2; // -2,+2
|
||||
float4 tc3: TEXCOORD3; // -3,+3
|
||||
float4 tc4: TEXCOORD4; // -4,+4
|
||||
float4 tc5: TEXCOORD5; // -5,+5
|
||||
float4 tc6: TEXCOORD6; // -6,+6
|
||||
float4 tc7: TEXCOORD7; // -7,+7
|
||||
};
|
||||
*/
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
uniform float4 MiddleGray;
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// perform 4x4 bilinear, 8x8p, the step (C)
|
||||
// c): 8x8p => 1x1p with exp
|
||||
|
||||
// native bilinear
|
||||
float sample( float2 tc )
|
||||
{
|
||||
// float4 data = tex2D(s_image,tc);
|
||||
float4 data = s_image.Sample( smp_rtlinear, tc );
|
||||
return dot( data, 1.h/4.h ); // sum components
|
||||
}
|
||||
|
||||
float4 main ( p_filter I ) : SV_Target
|
||||
{
|
||||
// sample
|
||||
float4 accum0;
|
||||
accum0.x = sample(I.Tex0);
|
||||
accum0.y = sample(I.Tex1);
|
||||
accum0.z = sample(I.Tex2);
|
||||
accum0.w = sample(I.Tex3);
|
||||
float4 accum1;
|
||||
accum1.x = sample(I.Tex4);
|
||||
accum1.y = sample(I.Tex5);
|
||||
accum1.z = sample(I.Tex6);
|
||||
accum1.w = sample(I.Tex7);
|
||||
float4 accum2;
|
||||
accum2.x = sample(I.Tex0.wz);
|
||||
accum2.y = sample(I.Tex1.wz);
|
||||
accum2.z = sample(I.Tex2.wz);
|
||||
accum2.w = sample(I.Tex3.wz);
|
||||
float4 accum3;
|
||||
accum3.x = sample(I.Tex4.wz);
|
||||
accum3.y = sample(I.Tex5.wz);
|
||||
accum3.z = sample(I.Tex6.wz);
|
||||
accum3.w = sample(I.Tex7.wz);
|
||||
|
||||
// perform accumulation
|
||||
float4 final;
|
||||
final.x = dot(accum0,1/4.h);
|
||||
final.y = dot(accum1,1/4.h);
|
||||
final.z = dot(accum2,1/4.h);
|
||||
final.w = dot(accum3,1/4.h);
|
||||
float result = dot(final, 1/4.h);
|
||||
|
||||
// OK
|
||||
float scale = MiddleGray.x / (result*MiddleGray.y + MiddleGray.z); // final
|
||||
// float scale_prev = tex2D (s_tonemap,I.tc0).x;
|
||||
float scale_prev = s_tonemap.Sample( smp_nofilter, I.Tex0 ).x;
|
||||
float rvalue = lerp (scale_prev,scale,MiddleGray.w);
|
||||
|
||||
// clamp (rvalue, 1.f/8.f, 2.0f);
|
||||
|
||||
clamp (rvalue, 1.f/128.f, 20.0f);
|
||||
|
||||
return rvalue ;
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue