int numColors = 256; int[] preComputed = new int[numColors]{-16744602, -16744602, -16678810, -16613274, -16547482, -16481946, -16416154, -16350618, -16284826, -16219290, -16153498, -16087962, -16022170, -15956634, -15890842, -15825306, -15759514, -15693978, -15628186, -15562650, -15496858, -15431322, -15365530, -15299994, -15234202, -15168666, -15102874, -15037338, -14971546, -14906010, -14840218, -14774682, -14708890, -14643354, -14577562, -14512026, -14446234, -14380698, -14314906, -14249370, -14183578, -14118042, -14052250, -13986714, -13920922, -13855386, -13789594, -13724058, -13658266, -13592730, -13526938, -13461402, -13395610, -13330074, -13264282, -13198746, -13132954, -13067418, -13001626, -12936090, -12870298, -12804762, -12738970, -12673434, -12607642, -12542106, -12476314, -12410778, -12344986, -12279450, -12213658, -12148122, -12082330, -12016794, -11951002, -11885466, -11819674, -11754138, -11688346, -11622810, -11557018, -11491482, -11425690, -11360154, -11294362, -11228826, -11163034, -11097498, -11031706, -10966170, -10900378, -10834842, -10769050, -10703514, -10637722, -10572186, -10506394, -10440858, -10375066, -10309530, -10243738, -10178202, -10112410, -10046874, -9981082, -9915546, -9849754, -9784218, -9718426, -9652890, -9587098, -9521562, -9455770, -9390234, -9324442, -9258906, -9193114, -9127578, -9061786, -8996250, -8930458, -8864922, -8799130, -8733594, -8667802, -8602266, -8536474, -8470938, -8339610, -8273818, -8208282, -8142490, -8076954, -8011162, -7945626, -7879834, -7814298, -7748506, -7682970, -7617178, -7551642, -7485850, -7420314, -7354522, -7288986, -7223194, -7157658, -7091866, -7026330, -6960538, -6895002, -6829210, -6763674, -6697882, -6632346, -6566554, -6501018, -6435226, -6369690, -6303898, -6238362, -6172570, -6107034, -6041242, -5975706, -5909914, -5844378, -5778586, -5713050, -5647258, -5581722, -5515930, -5450394, -5384602, -5319066, -5253274, -5187738, -5121946, -5056410, -4990618, -4925082, -4859290, -4793754, -4727962, -4662426, -4596634, -4531098, -4465306, -4399770, -4333978, -4268442, -4202650, -4137114, -4071322, -4005786, -3939994, -3874458, -3808666, -3743130, -3677338, -3611802, -3546010, -3480474, -3414682, -3349146, -3283354, -3217818, -3152026, -3086490, -3020698, -2955162, -2889370, -2823834, -2758042, -2692506, -2626714, -2561178, -2495386, -2429850, -2364058, -2298522, -2232730, -2167194, -2101402, -2035866, -1970074, -1904538, -1838746, -1773210, -1707418, -1641882, -1576090, -1510554, -1444762, -1379226, -1313434, -1247898, -1182106, -1116570, -1050778, -985242, -919450, -853914, -788122, -722586, -656794, -591258, -525466, -459930, -394138, -328602, -262810, -197274, -131482, -65946, -154}; private void setLutTexture() { int lutTextureID = glGenTextures(); glActiveTexture(GL_TEXTURE2); glBindTexture(GL_TEXTURE_1D, lutTextureID); glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA32I, numColors, 0, GL_RGBA, GL_INT, getPreComputedBuffer()); glBindTexture(GL_TEXTURE_1D, 0); } public int[] getPreComputedBuffer() { int[] buffer = new int[this.numColors*4]; int pixelIndex = 0; for (int i = 0; i < numColors; i++) { int[] rgba = intToRGBAInts(preComputed[i]); buffer[pixelIndex] = rgba[0]; buffer[pixelIndex + 1] = rgba[1]; buffer[pixelIndex + 2] = rgba[2]; buffer[pixelIndex + 3] = rgba[3]; pixelIndex += 4; } return buffer; } public int[] intToRGBAInts (int rgba) { int alpha = (rgba >> 24) & 0xFF; int red = (rgba >> 16) & 0xFF; int green = (rgba >> 8) & 0xFF; int blue = (rgba) & 0xFF; return new int[]{red, green, blue, alpha}; }