- Posts: 4
Forcing a color palette?
- Super Suit 12
-
Topic Author
- Offline
Less More
3 years 1 day ago #1 by Super Suit 12
Forcing a color palette? was created by Super Suit 12
I updated my version of reshade a while ago, and I don't see TuningPalette for the latest version.
I tried using the LUT shader and just using Aseprite to force the LUT.png file to use only the colors in the palette, and while this does something similar to what I want, it does this to gradients:
Upper is what it looks like ingame, lower is the same screenshot with the palette forced on it by Aseprite.
There's only one shade of grey in the palette, but as the color gets darker it starts to mix the colors.
Is there any good alternative to TuningPalette for this version, or is it updated and I just failed to find it?
I tried using the LUT shader and just using Aseprite to force the LUT.png file to use only the colors in the palette, and while this does something similar to what I want, it does this to gradients:
Upper is what it looks like ingame, lower is the same screenshot with the palette forced on it by Aseprite.
There's only one shade of grey in the palette, but as the color gets darker it starts to mix the colors.
Is there any good alternative to TuningPalette for this version, or is it updated and I just failed to find it?
Please Log in or Create an account to join the conversation.
- Super Suit 12
-
Topic Author
- Offline
Less More
- Posts: 4
3 years 1 day ago #2 by Super Suit 12
Replied by Super Suit 12 on topic Forcing a color palette?
ok for about the past hour and a half, i've been trying to get a LUT file that's got an exact color for every color... But if I put the tile number over a certain amount, it starts getting an error "2147942487" somewhere between 64 and 128.
Please Log in or Create an account to join the conversation.
- FierySwordswoman
-
- Offline
Less More
- Posts: 316
3 years 1 day ago - 3 years 1 day ago #3 by FierySwordswoman
Replied by FierySwordswoman on topic Forcing a color palette?
uh
Just use GIMP or Photoshop or something to convert the png from RGB to Indexed.
LUT only using colors from the Solarized (link) color palette
EDIT: Why are links the same color as plain text in this forum? And why can you not even color them manually...
Just use GIMP or Photoshop or something to convert the png from RGB to Indexed.
LUT only using colors from the Solarized (link) color palette
EDIT: Why are links the same color as plain text in this forum? And why can you not even color them manually...
Last edit: 3 years 1 day ago by FierySwordswoman.
Please Log in or Create an account to join the conversation.
- Super Suit 12
-
Topic Author
- Offline
Less More
- Posts: 4
3 years 1 day ago #4 by Super Suit 12
Replied by Super Suit 12 on topic Forcing a color palette?
Ah, thanks! Odd that Aseprite wouldn't save it as indexed when it's set to indexed color mode.
Please Log in or Create an account to join the conversation.
- Super Suit 12
-
Topic Author
- Offline
Less More
- Posts: 4
2 years 11 months ago - 2 years 11 months ago #5 by Super Suit 12
Replied by Super Suit 12 on topic Forcing a color palette?
Bump. Probably should've actually tested what you said, but I lost interest in the game (I have an attention span of about five seconds
)
Did what you said to index it through GIMP with only black and white, but I'm still getting some shades of grey inbetween.
EDIT: Looking at the Nostalgia shader, it seems like it would be a better idea to write some sort of program to pull colors out of an image and write up a new version of Nostalgia for each palette I want to use (this would also allow me to simply enable a different shader from my list, rather than swapping files around, and probably be faster anyways)

Did what you said to index it through GIMP with only black and white, but I'm still getting some shades of grey inbetween.
EDIT: Looking at the Nostalgia shader, it seems like it would be a better idea to write some sort of program to pull colors out of an image and write up a new version of Nostalgia for each palette I want to use (this would also allow me to simply enable a different shader from my list, rather than swapping files around, and probably be faster anyways)
Last edit: 2 years 11 months ago by Super Suit 12.
Please Log in or Create an account to join the conversation.
- matsilagi
-
- Offline
Less More
- Posts: 292
2 years 10 months ago #6 by matsilagi
Replied by matsilagi on topic Forcing a color palette?
What you need to do aside from using a palette, is to reduce the colors the game can reproduce.
What most classic games (and probably aseprite) does is tweak the image to only load 256 colors from a palette (reduce the channel to 8 bit then apply the palette)
What most classic games (and probably aseprite) does is tweak the image to only load 256 colors from a palette (reduce the channel to 8 bit then apply the palette)
Please Log in or Create an account to join the conversation.
- greenhand
-
- Offline
Less More
- Posts: 5
2 years 6 months ago #7 by greenhand
Replied by greenhand on topic Forcing a color palette?
I modified this version of the Nostalgia shader to fit the palette from Doom.
Enjoy!
Enjoy!
Warning: Spoiler!
#include "ReShade.fxh"
float4 PS_Nostalgia_DoomFX(float4 vpos : SV_Position, float2 texcoord : TEXCOORD) : SV_Target
{
float4 colorInput = tex2D(ReShade::BackBuffer, texcoord.xy);
float3 color = colorInput.rgb;
float3 palette[256]; //Palette from DoomF
//row 01
palette[0] = float3( 0., 0., 0. );
palette[1] = float3( 31., 23., 11. );
palette[2] = float3( 23., 15., 7. );
palette[3] = float3( 75., 75., 75. );
palette[4] = float3(255., 255., 255. );
palette[5] = float3( 27., 27., 27. );
palette[6] = float3( 19., 19., 19. );
palette[7] = float3( 11., 11., 11. );
palette[8] = float3( 7., 7., 7. );
palette[9] = float3( 47., 55., 31. );
palette[10] = float3( 35., 43., 15. );
palette[11] = float3( 23., 31., 7. );
palette[12] = float3( 15., 23., 0. );
palette[13] = float3( 79., 59., 43. );
palette[14] = float3( 71., 51., 35. );
palette[15] = float3( 63., 43., 27. );
//row 02 .
palette[16] = float3(255., 183., 183. );
palette[17] = float3(247., 171., 171. );
palette[18] = float3(243., 163., 163. );
palette[19] = float3(235., 151., 151. );
palette[20] = float3(231., 143., 143. );
palette[21] = float3(223., 135., 135. );
palette[22] = float3(219., 123., 123. );
palette[23] = float3(211., 115., 115. );
palette[24] = float3(203., 107., 107. );
palette[25] = float3(199., 99., 99. );
palette[26] = float3(191., 91., 91. );
palette[27] = float3(187., 87., 87. );
palette[28] = float3(179., 79., 79. );
palette[29] = float3(175., 71., 71. );
palette[30] = float3(167., 63., 63. );
palette[31] = float3(163., 59., 59. );
//row 03
palette[32] = float3(155., 51., 51. );
palette[33] = float3(151., 47., 47. );
palette[34] = float3(143., 43., 43. );
palette[35] = float3(139., 35., 35. );
palette[36] = float3(131., 31., 31. );
palette[37] = float3(127., 27., 27. );
palette[38] = float3(119., 23., 23. );
palette[39] = float3(115., 19., 19. );
palette[40] = float3(107., 15., 15. );
palette[41] = float3(103., 11., 11. );
palette[42] = float3( 95., 7., 7. );
palette[43] = float3( 91., 7., 7. );
palette[44] = float3( 83., 7., 7. );
palette[45] = float3( 79., 0., 0. );
palette[46] = float3( 71., 0., 0. );
palette[47] = float3( 67., 0., 0. );
//row 04
palette[48] = float3(255., 235., 223. );
palette[49] = float3(255., 227., 211. );
palette[50] = float3(255., 219., 199. );
palette[51] = float3(255., 211., 187. );
palette[52] = float3(255., 207., 179. );
palette[53] = float3(255., 199., 167. );
palette[54] = float3(255., 191., 155. );
palette[55] = float3(255., 187., 147. );
palette[56] = float3(255., 179., 131. );
palette[57] = float3(247., 171., 123. );
palette[58] = float3(239., 163., 115. );
palette[59] = float3(231., 155., 107. );
palette[60] = float3(223., 147., 99. );
palette[61] = float3(215., 139., 91. );
palette[62] = float3(207., 131., 83. );
palette[63] = float3(203., 127., 79. );
//row 05
palette[64] = float3(191., 123., 75. );
palette[65] = float3(179., 115., 71. );
palette[66] = float3(171., 111., 67. );
palette[67] = float3(163., 107., 63. );
palette[68] = float3(155., 99., 59. );
palette[69] = float3(143., 95., 55. );
palette[70] = float3(135., 87., 51. );
palette[71] = float3(127., 83., 47. );
palette[72] = float3(119., 79., 43. );
palette[73] = float3(107., 71., 39. );
palette[74] = float3( 95., 67., 35. );
palette[75] = float3( 83., 63., 31. );
palette[76] = float3( 75., 55., 27. );
palette[77] = float3( 63., 47., 23. );
palette[78] = float3( 51., 43., 19. );
palette[79] = float3( 43., 35., 15. );
//row 06
palette[80] = float3(239., 239., 239. );
palette[81] = float3(231., 231., 231. );
palette[82] = float3(223., 223., 223. );
palette[83] = float3(219., 219., 219. );
palette[84] = float3(211., 211., 211. );
palette[85] = float3(203., 203., 203. );
palette[86] = float3(199., 199., 199. );
palette[87] = float3(191., 191., 191. );
palette[88] = float3(183., 183., 183. );
palette[89] = float3(179., 179., 179. );
palette[90] = float3(171., 171., 171. );
palette[91] = float3(167., 167., 167. );
palette[92] = float3(159., 159., 159. );
palette[93] = float3(151., 151., 151. );
palette[94] = float3(147., 147., 147. );
palette[95] = float3(139., 139., 139. );
//row 07
palette[96] = float3(131., 131., 131. );
palette[97] = float3(127., 127., 127. );
palette[98] = float3(119., 119., 119. );
palette[99] = float3(111., 111., 111. );
palette[100] = float3(107., 107., 107. );
palette[101] = float3( 99., 99., 99. );
palette[102] = float3( 91., 91., 91. );
palette[103] = float3( 87., 87., 87. );
palette[104] = float3( 79., 79., 79. );
palette[105] = float3( 71., 71., 71. );
palette[106] = float3( 67., 67., 67. );
palette[107] = float3( 59., 59., 59. );
palette[108] = float3( 55., 55., 55. );
palette[109] = float3( 47., 47., 47. );
palette[110] = float3( 39., 39., 39. );
palette[111] = float3( 35., 35., 35. );
//row 08
palette[112] = float3(119., 255., 111. );
palette[113] = float3(111., 239., 103. );
palette[114] = float3(103., 223., 95. );
palette[115] = float3( 95., 207., 87. );
palette[116] = float3( 91., 191., 79. );
palette[117] = float3( 83., 175., 71. );
palette[118] = float3( 75., 159., 63. );
palette[119] = float3( 67., 147., 55. );
palette[120] = float3( 63., 131., 47. );
palette[121] = float3( 55., 115., 43. );
palette[122] = float3( 47., 99., 35. );
palette[123] = float3( 39., 93., 27. );
palette[124] = float3( 31., 67., 23. );
palette[125] = float3( 23., 51., 15. );
palette[126] = float3( 19., 35., 11. );
palette[127] = float3( 11., 23., 7. );
//row 09
palette[128] = float3(191., 167., 143. );
palette[129] = float3(183., 159., 135. );
palette[130] = float3(175., 151., 127. );
palette[131] = float3(167., 143., 119. );
palette[132] = float3(159., 135., 111. );
palette[133] = float3(155., 127., 107. );
palette[134] = float3(147., 123., 99. );
palette[135] = float3(139., 115., 91. );
palette[136] = float3(131., 107., 87. );
palette[137] = float3(123., 99., 79. );
palette[138] = float3(119., 95., 75. );
palette[139] = float3(111., 87., 67. );
palette[140] = float3(103., 83., 63. );
palette[141] = float3( 95., 75., 55. );
palette[142] = float3( 87., 67., 51. );
palette[143] = float3( 83., 63., 47. );
//row 10
palette[144] = float3(159., 131., 99. );
palette[145] = float3(143., 119., 83. );
palette[146] = float3(131., 107., 75. );
palette[147] = float3(119., 95., 63. );
palette[148] = float3(103., 83., 51. );
palette[149] = float3( 91., 71., 43. );
palette[150] = float3( 79., 59., 35. );
palette[151] = float3( 67., 51., 27. );
palette[152] = float3(123., 127., 99. );
palette[153] = float3(111., 115., 87. );
palette[154] = float3(103., 107., 79. );
palette[155] = float3( 91., 99., 71. );
palette[156] = float3( 83., 87., 59. );
palette[157] = float3( 71., 79., 51. );
palette[158] = float3( 63., 71., 43. );
palette[159] = float3( 55., 63., 39. );
//row 11
palette[160] = float3(255., 255., 115. );
palette[161] = float3(235., 219., 87. );
palette[162] = float3(215., 187., 67. );
palette[163] = float3(195., 155., 47. );
palette[164] = float3(175., 123., 31. );
palette[165] = float3(155., 91., 19. );
palette[166] = float3(135., 67., 7. );
palette[167] = float3(115., 43., 0. );
palette[168] = float3(255., 255., 255. );
palette[169] = float3(255., 219., 219. );
palette[170] = float3(255., 187., 187. );
palette[171] = float3(255., 155., 155. );
palette[172] = float3(255., 123., 123. );
palette[173] = float3(255., 95., 95. );
palette[174] = float3(255., 63., 63. );
palette[175] = float3(255., 31., 31. );
//row 12
palette[176] = float3(255., 0., 0. );
palette[177] = float3(239., 0., 0. );
palette[178] = float3(227., 0., 0. );
palette[179] = float3(215., 0., 0. );
palette[180] = float3(203., 0., 0. );
palette[181] = float3(191., 0., 0. );
palette[182] = float3(179., 0., 0. );
palette[183] = float3(167., 0., 0. );
palette[184] = float3(155., 0., 0. );
palette[185] = float3(139., 0., 0. );
palette[186] = float3(127., 0., 0. );
palette[187] = float3(115., 0., 0. );
palette[188] = float3(103., 0., 0. );
palette[189] = float3( 91., 0., 0. );
palette[190] = float3( 79., 0., 0. );
palette[191] = float3( 67., 0., 0. );
//row 13
palette[192] = float3(231., 231., 255. );
palette[193] = float3(199., 199., 255. );
palette[194] = float3(171., 171., 255. );
palette[195] = float3(143., 143., 255. );
palette[196] = float3(115., 115., 255. );
palette[197] = float3( 83., 83., 255. );
palette[198] = float3( 55., 55., 255. );
palette[199] = float3( 27., 27., 255. );
palette[200] = float3( 0., 0., 255. );
palette[201] = float3( 0., 0., 227. );
palette[202] = float3( 0., 0., 203. );
palette[203] = float3( 0., 0., 179. );
palette[204] = float3( 0., 0., 155. );
palette[205] = float3( 0., 0., 131. );
palette[206] = float3( 0., 0., 107. );
palette[207] = float3( 0., 0., 83. );
//row 14
palette[208] = float3(255., 255., 255. );
palette[209] = float3(255., 235., 219. );
palette[210] = float3(255., 215., 187. );
palette[211] = float3(255., 199., 155. );
palette[212] = float3(255., 179., 123. );
palette[213] = float3(255., 163., 91. );
palette[214] = float3(255., 143., 59. );
palette[215] = float3(255., 127., 27. );
palette[216] = float3(243., 115., 23. );
palette[217] = float3(235., 111., 15. );
palette[218] = float3(223., 103., 15. );
palette[219] = float3(215., 95., 11. );
palette[220] = float3(203., 87., 7. );
palette[221] = float3(195., 79., 0. );
palette[222] = float3(183., 71., 0. );
palette[223] = float3(175., 67., 0. );
//row 15
palette[224] = float3(255., 255., 255. );
palette[225] = float3(255., 255., 215. );
palette[226] = float3(255., 255., 179. );
palette[227] = float3(255., 255., 143. );
palette[228] = float3(255., 255., 107. );
palette[229] = float3(255., 255., 71. );
palette[230] = float3(255., 255., 35. );
palette[231] = float3(255., 255., 0. );
palette[232] = float3(167., 63., 0. );
palette[233] = float3(159., 55., 0. );
palette[234] = float3(147., 47., 0. );
palette[235] = float3(135., 35., 0. );
palette[236] = float3( 79., 59., 39. );
palette[237] = float3( 67., 47., 27. );
palette[238] = float3( 55., 35., 19. );
palette[239] = float3( 47., 27., 11. );
//row 16
palette[240] = float3( 0., 0., 83. );
palette[241] = float3( 0., 0., 71. );
palette[242] = float3( 0., 0., 59. );
palette[243] = float3( 0., 0., 47. );
palette[244] = float3( 0., 0., 35. );
palette[245] = float3( 0., 0., 23. );
palette[246] = float3( 0., 0., 11. );
palette[247] = float3( 0., 0., 7. );
palette[248] = float3(255., 159., 67. );
palette[249] = float3(255., 231., 75. );
palette[250] = float3(255., 123., 255. );
palette[251] = float3(255., 0., 255. );
palette[252] = float3(207., 0., 207. );
palette[253] = float3(159., 0., 155. );
palette[254] = float3(111., 0., 107. );
palette[255] = float3(167., 107., 107. );
float3 diff = color;
float dist = dot(diff,diff); //squared distance
float closest_dist = dist;
float3 closest_color = float3(0.0,0.0,0.0);
for (int i = 1 ; i <= 255 ; i++)
{
diff = color - (palette/255.0);
dist = dot(diff,diff); //squared distance
if (dist < closest_dist){ //ternary would also work here
closest_dist = dist;
closest_color = palette/255.0;
}
}
colorInput.rgb = closest_color; //return the pixel
return colorInput; //return the pixel
}
technique Nostalgia_DoomFX
{
pass Nostalgia__DoomFX_Pass
{
VertexShader = PostProcessVS;
PixelShader = PS_Nostalgia_DoomFX;
}
}
float4 PS_Nostalgia_DoomFX(float4 vpos : SV_Position, float2 texcoord : TEXCOORD) : SV_Target
{
float4 colorInput = tex2D(ReShade::BackBuffer, texcoord.xy);
float3 color = colorInput.rgb;
float3 palette[256]; //Palette from DoomF
//row 01
palette[0] = float3( 0., 0., 0. );
palette[1] = float3( 31., 23., 11. );
palette[2] = float3( 23., 15., 7. );
palette[3] = float3( 75., 75., 75. );
palette[4] = float3(255., 255., 255. );
palette[5] = float3( 27., 27., 27. );
palette[6] = float3( 19., 19., 19. );
palette[7] = float3( 11., 11., 11. );
palette[8] = float3( 7., 7., 7. );
palette[9] = float3( 47., 55., 31. );
palette[10] = float3( 35., 43., 15. );
palette[11] = float3( 23., 31., 7. );
palette[12] = float3( 15., 23., 0. );
palette[13] = float3( 79., 59., 43. );
palette[14] = float3( 71., 51., 35. );
palette[15] = float3( 63., 43., 27. );
//row 02 .
palette[16] = float3(255., 183., 183. );
palette[17] = float3(247., 171., 171. );
palette[18] = float3(243., 163., 163. );
palette[19] = float3(235., 151., 151. );
palette[20] = float3(231., 143., 143. );
palette[21] = float3(223., 135., 135. );
palette[22] = float3(219., 123., 123. );
palette[23] = float3(211., 115., 115. );
palette[24] = float3(203., 107., 107. );
palette[25] = float3(199., 99., 99. );
palette[26] = float3(191., 91., 91. );
palette[27] = float3(187., 87., 87. );
palette[28] = float3(179., 79., 79. );
palette[29] = float3(175., 71., 71. );
palette[30] = float3(167., 63., 63. );
palette[31] = float3(163., 59., 59. );
//row 03
palette[32] = float3(155., 51., 51. );
palette[33] = float3(151., 47., 47. );
palette[34] = float3(143., 43., 43. );
palette[35] = float3(139., 35., 35. );
palette[36] = float3(131., 31., 31. );
palette[37] = float3(127., 27., 27. );
palette[38] = float3(119., 23., 23. );
palette[39] = float3(115., 19., 19. );
palette[40] = float3(107., 15., 15. );
palette[41] = float3(103., 11., 11. );
palette[42] = float3( 95., 7., 7. );
palette[43] = float3( 91., 7., 7. );
palette[44] = float3( 83., 7., 7. );
palette[45] = float3( 79., 0., 0. );
palette[46] = float3( 71., 0., 0. );
palette[47] = float3( 67., 0., 0. );
//row 04
palette[48] = float3(255., 235., 223. );
palette[49] = float3(255., 227., 211. );
palette[50] = float3(255., 219., 199. );
palette[51] = float3(255., 211., 187. );
palette[52] = float3(255., 207., 179. );
palette[53] = float3(255., 199., 167. );
palette[54] = float3(255., 191., 155. );
palette[55] = float3(255., 187., 147. );
palette[56] = float3(255., 179., 131. );
palette[57] = float3(247., 171., 123. );
palette[58] = float3(239., 163., 115. );
palette[59] = float3(231., 155., 107. );
palette[60] = float3(223., 147., 99. );
palette[61] = float3(215., 139., 91. );
palette[62] = float3(207., 131., 83. );
palette[63] = float3(203., 127., 79. );
//row 05
palette[64] = float3(191., 123., 75. );
palette[65] = float3(179., 115., 71. );
palette[66] = float3(171., 111., 67. );
palette[67] = float3(163., 107., 63. );
palette[68] = float3(155., 99., 59. );
palette[69] = float3(143., 95., 55. );
palette[70] = float3(135., 87., 51. );
palette[71] = float3(127., 83., 47. );
palette[72] = float3(119., 79., 43. );
palette[73] = float3(107., 71., 39. );
palette[74] = float3( 95., 67., 35. );
palette[75] = float3( 83., 63., 31. );
palette[76] = float3( 75., 55., 27. );
palette[77] = float3( 63., 47., 23. );
palette[78] = float3( 51., 43., 19. );
palette[79] = float3( 43., 35., 15. );
//row 06
palette[80] = float3(239., 239., 239. );
palette[81] = float3(231., 231., 231. );
palette[82] = float3(223., 223., 223. );
palette[83] = float3(219., 219., 219. );
palette[84] = float3(211., 211., 211. );
palette[85] = float3(203., 203., 203. );
palette[86] = float3(199., 199., 199. );
palette[87] = float3(191., 191., 191. );
palette[88] = float3(183., 183., 183. );
palette[89] = float3(179., 179., 179. );
palette[90] = float3(171., 171., 171. );
palette[91] = float3(167., 167., 167. );
palette[92] = float3(159., 159., 159. );
palette[93] = float3(151., 151., 151. );
palette[94] = float3(147., 147., 147. );
palette[95] = float3(139., 139., 139. );
//row 07
palette[96] = float3(131., 131., 131. );
palette[97] = float3(127., 127., 127. );
palette[98] = float3(119., 119., 119. );
palette[99] = float3(111., 111., 111. );
palette[100] = float3(107., 107., 107. );
palette[101] = float3( 99., 99., 99. );
palette[102] = float3( 91., 91., 91. );
palette[103] = float3( 87., 87., 87. );
palette[104] = float3( 79., 79., 79. );
palette[105] = float3( 71., 71., 71. );
palette[106] = float3( 67., 67., 67. );
palette[107] = float3( 59., 59., 59. );
palette[108] = float3( 55., 55., 55. );
palette[109] = float3( 47., 47., 47. );
palette[110] = float3( 39., 39., 39. );
palette[111] = float3( 35., 35., 35. );
//row 08
palette[112] = float3(119., 255., 111. );
palette[113] = float3(111., 239., 103. );
palette[114] = float3(103., 223., 95. );
palette[115] = float3( 95., 207., 87. );
palette[116] = float3( 91., 191., 79. );
palette[117] = float3( 83., 175., 71. );
palette[118] = float3( 75., 159., 63. );
palette[119] = float3( 67., 147., 55. );
palette[120] = float3( 63., 131., 47. );
palette[121] = float3( 55., 115., 43. );
palette[122] = float3( 47., 99., 35. );
palette[123] = float3( 39., 93., 27. );
palette[124] = float3( 31., 67., 23. );
palette[125] = float3( 23., 51., 15. );
palette[126] = float3( 19., 35., 11. );
palette[127] = float3( 11., 23., 7. );
//row 09
palette[128] = float3(191., 167., 143. );
palette[129] = float3(183., 159., 135. );
palette[130] = float3(175., 151., 127. );
palette[131] = float3(167., 143., 119. );
palette[132] = float3(159., 135., 111. );
palette[133] = float3(155., 127., 107. );
palette[134] = float3(147., 123., 99. );
palette[135] = float3(139., 115., 91. );
palette[136] = float3(131., 107., 87. );
palette[137] = float3(123., 99., 79. );
palette[138] = float3(119., 95., 75. );
palette[139] = float3(111., 87., 67. );
palette[140] = float3(103., 83., 63. );
palette[141] = float3( 95., 75., 55. );
palette[142] = float3( 87., 67., 51. );
palette[143] = float3( 83., 63., 47. );
//row 10
palette[144] = float3(159., 131., 99. );
palette[145] = float3(143., 119., 83. );
palette[146] = float3(131., 107., 75. );
palette[147] = float3(119., 95., 63. );
palette[148] = float3(103., 83., 51. );
palette[149] = float3( 91., 71., 43. );
palette[150] = float3( 79., 59., 35. );
palette[151] = float3( 67., 51., 27. );
palette[152] = float3(123., 127., 99. );
palette[153] = float3(111., 115., 87. );
palette[154] = float3(103., 107., 79. );
palette[155] = float3( 91., 99., 71. );
palette[156] = float3( 83., 87., 59. );
palette[157] = float3( 71., 79., 51. );
palette[158] = float3( 63., 71., 43. );
palette[159] = float3( 55., 63., 39. );
//row 11
palette[160] = float3(255., 255., 115. );
palette[161] = float3(235., 219., 87. );
palette[162] = float3(215., 187., 67. );
palette[163] = float3(195., 155., 47. );
palette[164] = float3(175., 123., 31. );
palette[165] = float3(155., 91., 19. );
palette[166] = float3(135., 67., 7. );
palette[167] = float3(115., 43., 0. );
palette[168] = float3(255., 255., 255. );
palette[169] = float3(255., 219., 219. );
palette[170] = float3(255., 187., 187. );
palette[171] = float3(255., 155., 155. );
palette[172] = float3(255., 123., 123. );
palette[173] = float3(255., 95., 95. );
palette[174] = float3(255., 63., 63. );
palette[175] = float3(255., 31., 31. );
//row 12
palette[176] = float3(255., 0., 0. );
palette[177] = float3(239., 0., 0. );
palette[178] = float3(227., 0., 0. );
palette[179] = float3(215., 0., 0. );
palette[180] = float3(203., 0., 0. );
palette[181] = float3(191., 0., 0. );
palette[182] = float3(179., 0., 0. );
palette[183] = float3(167., 0., 0. );
palette[184] = float3(155., 0., 0. );
palette[185] = float3(139., 0., 0. );
palette[186] = float3(127., 0., 0. );
palette[187] = float3(115., 0., 0. );
palette[188] = float3(103., 0., 0. );
palette[189] = float3( 91., 0., 0. );
palette[190] = float3( 79., 0., 0. );
palette[191] = float3( 67., 0., 0. );
//row 13
palette[192] = float3(231., 231., 255. );
palette[193] = float3(199., 199., 255. );
palette[194] = float3(171., 171., 255. );
palette[195] = float3(143., 143., 255. );
palette[196] = float3(115., 115., 255. );
palette[197] = float3( 83., 83., 255. );
palette[198] = float3( 55., 55., 255. );
palette[199] = float3( 27., 27., 255. );
palette[200] = float3( 0., 0., 255. );
palette[201] = float3( 0., 0., 227. );
palette[202] = float3( 0., 0., 203. );
palette[203] = float3( 0., 0., 179. );
palette[204] = float3( 0., 0., 155. );
palette[205] = float3( 0., 0., 131. );
palette[206] = float3( 0., 0., 107. );
palette[207] = float3( 0., 0., 83. );
//row 14
palette[208] = float3(255., 255., 255. );
palette[209] = float3(255., 235., 219. );
palette[210] = float3(255., 215., 187. );
palette[211] = float3(255., 199., 155. );
palette[212] = float3(255., 179., 123. );
palette[213] = float3(255., 163., 91. );
palette[214] = float3(255., 143., 59. );
palette[215] = float3(255., 127., 27. );
palette[216] = float3(243., 115., 23. );
palette[217] = float3(235., 111., 15. );
palette[218] = float3(223., 103., 15. );
palette[219] = float3(215., 95., 11. );
palette[220] = float3(203., 87., 7. );
palette[221] = float3(195., 79., 0. );
palette[222] = float3(183., 71., 0. );
palette[223] = float3(175., 67., 0. );
//row 15
palette[224] = float3(255., 255., 255. );
palette[225] = float3(255., 255., 215. );
palette[226] = float3(255., 255., 179. );
palette[227] = float3(255., 255., 143. );
palette[228] = float3(255., 255., 107. );
palette[229] = float3(255., 255., 71. );
palette[230] = float3(255., 255., 35. );
palette[231] = float3(255., 255., 0. );
palette[232] = float3(167., 63., 0. );
palette[233] = float3(159., 55., 0. );
palette[234] = float3(147., 47., 0. );
palette[235] = float3(135., 35., 0. );
palette[236] = float3( 79., 59., 39. );
palette[237] = float3( 67., 47., 27. );
palette[238] = float3( 55., 35., 19. );
palette[239] = float3( 47., 27., 11. );
//row 16
palette[240] = float3( 0., 0., 83. );
palette[241] = float3( 0., 0., 71. );
palette[242] = float3( 0., 0., 59. );
palette[243] = float3( 0., 0., 47. );
palette[244] = float3( 0., 0., 35. );
palette[245] = float3( 0., 0., 23. );
palette[246] = float3( 0., 0., 11. );
palette[247] = float3( 0., 0., 7. );
palette[248] = float3(255., 159., 67. );
palette[249] = float3(255., 231., 75. );
palette[250] = float3(255., 123., 255. );
palette[251] = float3(255., 0., 255. );
palette[252] = float3(207., 0., 207. );
palette[253] = float3(159., 0., 155. );
palette[254] = float3(111., 0., 107. );
palette[255] = float3(167., 107., 107. );
float3 diff = color;
float dist = dot(diff,diff); //squared distance
float closest_dist = dist;
float3 closest_color = float3(0.0,0.0,0.0);
for (int i = 1 ; i <= 255 ; i++)
{
diff = color - (palette/255.0);
dist = dot(diff,diff); //squared distance
if (dist < closest_dist){ //ternary would also work here
closest_dist = dist;
closest_color = palette/255.0;
}
}
colorInput.rgb = closest_color; //return the pixel
return colorInput; //return the pixel
}
technique Nostalgia_DoomFX
{
pass Nostalgia__DoomFX_Pass
{
VertexShader = PostProcessVS;
PixelShader = PS_Nostalgia_DoomFX;
}
}
Please Log in or Create an account to join the conversation.