165 lines
3.3 KiB
HLSL
165 lines
3.3 KiB
HLSL
/*
|
|
menbeffectinternals.fx : MariENB 3 base internal variables.
|
|
(C)2015 Marisa Kirisame, UnSX Team.
|
|
Part of MariENB 3, the personal ENB of Marisa for Fallout 4.
|
|
Released under the GNU GPLv3 (or later).
|
|
*/
|
|
/*
|
|
dithering threshold maps
|
|
don't touch unless you know what you're doing
|
|
*/
|
|
static const float checkers[4] =
|
|
{
|
|
1.0,0.0,
|
|
0.0,1.0
|
|
};
|
|
#define d(x) x/4.0
|
|
static const float ordered2[4] =
|
|
{
|
|
d(0),d(2),
|
|
d(4),d(2)
|
|
};
|
|
#undef d
|
|
#define d(x) x/9.0
|
|
static const float ordered3[9] =
|
|
{
|
|
d(2),d(6),d(3),
|
|
d(5),d(0),d(8),
|
|
d(1),d(7),d(4)
|
|
};
|
|
#undef d
|
|
#define d(x) x/16.0
|
|
static const float ordered4[16] =
|
|
{
|
|
d( 0),d( 8),d( 2),d(10),
|
|
d(12),d( 4),d(14),d( 6),
|
|
d( 3),d(11),d( 1),d( 9),
|
|
d(15),d( 7),d(13),d( 5)
|
|
};
|
|
#undef d
|
|
#define d(x) x/64.0
|
|
static const float ordered8[64] =
|
|
{
|
|
d( 0),d(48),d(12),d(60),d( 3),d(51),d(15),d(63),
|
|
d(32),d(16),d(44),d(28),d(35),d(19),d(47),d(31),
|
|
d( 8),d(56),d( 4),d(52),d(11),d(59),d( 7),d(55),
|
|
d(40),d(24),d(36),d(20),d(43),d(27),d(39),d(23),
|
|
d( 2),d(50),d(14),d(62),d( 1),d(49),d(13),d(61),
|
|
d(34),d(18),d(46),d(30),d(33),d(17),d(45),d(29),
|
|
d(10),d(58),d( 6),d(54),d( 9),d(57),d( 5),d(53),
|
|
d(42),d(26),d(38),d(22),d(41),d(25),d(37),d(21)
|
|
};
|
|
#undef d
|
|
/* standard stuff */
|
|
float4 Timer;
|
|
float4 ScreenSize;
|
|
float AdaptiveQuality;
|
|
float4 Weather;
|
|
float4 TimeOfDay1;
|
|
float4 TimeOfDay2;
|
|
float4 tempF1;
|
|
float4 tempF2;
|
|
float4 tempF3;
|
|
float4 tempInfo1;
|
|
float4 Params01[6];
|
|
/*
|
|
attempting to figure what each param does:
|
|
0 unused
|
|
x unused
|
|
y unused
|
|
z unused
|
|
w unused
|
|
1 bloom/adaptation related
|
|
x ?
|
|
y ?
|
|
z ?
|
|
w ?
|
|
2 imagespace grading
|
|
x vibrance?
|
|
y unused
|
|
z multiplier 1?
|
|
w multiplier 2?
|
|
3 imagespace tint
|
|
x tint r
|
|
y tint g
|
|
z tint b
|
|
w tint value
|
|
4 coord multipliers for low quality texture sampling, I guess
|
|
x unused
|
|
y unused
|
|
z bloom coord multiplier x
|
|
w bloom coord multiplier y
|
|
5 imagespace fade
|
|
x fade r
|
|
y fade g
|
|
z fade b
|
|
w fade value
|
|
*/
|
|
/* samplers and textures */
|
|
Texture2D TextureColor;
|
|
Texture2D TextureBloom;
|
|
Texture2D TextureAdaptation;
|
|
Texture2D TextureDepth;
|
|
Texture2D TextureNoise2
|
|
<
|
|
string ResourceName = "menbnoise1.png";
|
|
>;
|
|
Texture2D TextureNoise3
|
|
<
|
|
string ResourceName = "menbnoise2.png";
|
|
>;
|
|
Texture2D TextureLUT
|
|
<
|
|
#ifdef LUTMODE_LEGACY
|
|
string ResourceName = "menblutpreset.png";
|
|
#endif
|
|
#ifdef LUTMODE_16
|
|
string ResourceName = "menblut16.png";
|
|
#endif
|
|
#ifdef LUTMODE_64
|
|
string ResourceName = "menblut64.png";
|
|
#endif
|
|
>;
|
|
SamplerState Nearest
|
|
{
|
|
Filter = MIN_MAG_MIP_POINT;
|
|
AddressU = Clamp;
|
|
AddressV = Clamp;
|
|
MaxLod = 0;
|
|
MipLodBias = 0;
|
|
};
|
|
SamplerState Linear
|
|
{
|
|
Filter = MIN_MAG_MIP_LINEAR;
|
|
AddressU = Clamp;
|
|
AddressV = Clamp;
|
|
MaxLod = 0;
|
|
MipLodBias = 0;
|
|
};
|
|
SamplerState Noise2
|
|
{
|
|
Filter = MIN_LINEAR_MAG_MIP_POINT;
|
|
AddressU = Wrap;
|
|
AddressV = Wrap;
|
|
MaxLod = 0;
|
|
MipLodBias = 0;
|
|
};
|
|
SamplerState Noise3
|
|
{
|
|
Filter = MIN_MAG_MIP_LINEAR;
|
|
AddressU = Wrap;
|
|
AddressV = Wrap;
|
|
MaxLod = 0;
|
|
MipLodBias = 0;
|
|
};
|
|
/* whatever */
|
|
struct VS_INPUT_POST
|
|
{
|
|
float3 pos : POSITION;
|
|
float2 txcoord0 : TEXCOORD0;
|
|
};
|
|
struct VS_OUTPUT_POST
|
|
{
|
|
float4 pos : SV_POSITION;
|
|
float2 txcoord0 : TEXCOORD0;
|
|
};
|