Here's a Palletizer shader
- greenhand
- Topic Author
Less
More
This Palette is from DOOM (1993) I would VERY much like to see some of you put some effort into making other pallets from other games! anyway here's one from me as a gesture of good will.
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.