Figured I might as well attach me current preset. Can't figure out why Nostalgia doesn't work, and the DOS shader is left in for posterity.
Been using it for the past week or so when playing...I think I got it looking rather nice. Uses kingeric1992's SMAA as well as MaxTheUniqueGamer's Natural Bloom. The latter is disabled by default, as it makes the game stutter like mad for me. That 2GB of vRAM is feeling awfully small.
Super-late edit:
With the release o' Fallout 4's ENBEffect.fx file, I've decided to go ahead and try converting some of ReShade's effects. Starting with a few simple ones from the SweetFX shaders first.
Got "Vibrance" working and added a lil' something to manage the brightness of the colours. Also got "Levels" working, which was easy 'cause it was, uh, a couple lines.
I've hit a rather large snag, however, in converting the "Nostalgia" effect. There are two main problems:
The color gui variables have values between 0.0000 and 1.0000; I've no idea how to convert RGB values, that range from 0-255, to ENB colour values.
The second problem, is that I've no idea if I've converted the float3[16] array properly. I'm going to assume I haven't, as I'm trying to jam my Pascal-shaped-knowledge-blocks into the HLSL-shaped holes, so to speak.
Any tips that can be given? I tried searching Microsoft's site for documentation on arrays, but it's...Sparse, to say the least.
Here's my port of the Nostalgia effect (the prefix "N" stands for Nostalgia):
Code: Select all
if(bFiftyTiftyNostalgia)
{
float3 NColor = color.rgb;
float3 NPalette[16];
NPalette[0] = NBlack; //Black
NPalette[1] = NBlue; //Blue
NPalette[2] = NDYellowBrown; //Dark Yellow-Brown
NPalette[3] = NDRed; //Dark Red
NPalette[4] = NDGrey; //Dark Grey
NPalette[5] = NPurple; //Purple
NPalette[6] = NBrown; //Brown
NPalette[7] = NLPurple; //Light Purple
NPalette[8] = NPGrey; //Pale Grey
NPalette[9] = NGreen; //Green
NPalette[10] = NPRed; //Pale Red
NPalette[11] = NPCyan; //Pale Cyan
NPalette[12] = NLGrey; //Light Grey
NPalette[13] = NSnotGreen; //Snot-Green
NPalette[14] = NLimeGreen; //Lime-Green
NPalette[15] = NWhite; //White
float3 NDiff = NColor;
float NDist = dot(NDiff,NDiff);
float NClosestDist = NDist;
float3 NClosestColor = float3(0.0,0.0,0.0);
int Nint = 1;
for (Nint = 1 ; Nint <= 15 ; Nint++)
{
NDiff = NColor - (NPalette[Nint]/255.0); //difference
NDist = dot(NDiff,NDiff); //squared distance
if (NDist < NClosestDist) //ternary would also work here
{
NClosestDist = NDist;
NClosestColor = NPalette[Nint]/255.0;
}
}
color.rgb = NClosestColor;
}