#version 130 void main(void) { gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; int depth = int(gl_Position.z); if (depth > 10000 || depth < 800) { depth = 0; } int y = depth % 256; int u = depth / 256; int C = y - 16; int D = u - 128; int E = -128; int r = (298 * C + 409 * E + 128) / 256; int g = (298 * C - 100 * D - 208 * E + 128) / 256; int b = (298 * C + 515 * D + 128) / 256; if (r < 0) { r = 0; } if (g < 0) { g = 0; } if (b < 0) { b = 0; } if (r > 255) { r = 255; } if (g > 255) { g = 255; } if (b > 255) { b = 255; } float fRed = float(r) / 256; float fGreen = float(g) / 256; float fBlue = float(b) / 256; gl_FrontColor = vec4(fRed, fGreen, fBlue, 1.0); }