#version 330 core in vec2 v_texcoord; // in vec3 v_fragpos; in vec3 v_normal; uniform sampler2D u_tex; // uniform mat4 u_model; // uniform mat4 u_view; // uniform mat4 u_proj; // uniform int u_no_light; // uniform float u_alpha; layout (location = 0) out vec4 o_color; layout (location = 1) out vec4 o_normal; void main() { vec4 object_color_4 = texture(u_tex, vec2(v_texcoord.x, 1.0 - v_texcoord.y)); if (object_color_4.a < 0.5) discard; vec3 object_color = object_color_4.rgb; o_color = vec4(object_color, 1.0); o_normal = vec4(gl_FrontFacing ? v_normal : (v_normal * -1.0), 1.0); // o_normal = vec4(v_normal, 1.0); // o_normal = vec4(v_normal * -1.0, 1.0); } // //----------------------------------- // #version 330 core // //#define ALPHA_DITHER // in vec2 Texcoord; // in vec3 FragPosF; // in vec3 Normal; // // in float Dist; // uniform sampler2D tex; // uniform vec3 lightPos; // uniform mat4 model; // uniform mat4 view; // uniform mat4 proj; // uniform int NoLight; // uniform float alpha; // out vec4 FragColor; // // out float FragPos; // out vec4 FragNormal; // #ifdef ALPHA_DITHER // float bayer[64] = float[64] ( // 0.000000, 0.500000, 0.125000, 0.625000, 0.031250, 0.531250, 0.156250, 0.656250, // 0.750000, 0.250000, 0.875000, 0.375000, 0.781250, 0.281250, 0.906250, 0.406250, // 0.187500, 0.687500, 0.062500, 0.562500, 0.218750, 0.718750, 0.093750, 0.593750, // 0.937500, 0.437500, 0.812500, 0.312500, 0.968750, 0.468750, 0.843750, 0.343750, // 0.046875, 0.546875, 0.171875, 0.671875, 0.015625, 0.515625, 0.140625, 0.640625, // 0.796875, 0.296875, 0.921875, 0.421875, 0.765625, 0.265625, 0.890625, 0.390625, // 0.234375, 0.734375, 0.109375, 0.609375, 0.203125, 0.703125, 0.078125, 0.578125, // 0.984375, 0.484375, 0.859375, 0.359375, 0.953125, 0.453125, 0.828125, 0.328125 // ); // int intmod(int a, int b) { // return a - ((a / b) * b); // } // float map(float value, float min1, float max1, float min2, float max2) { // return min2 + (value - min1) * (max2 - min2) / (max1 - min1); // } // #endif // void main() { // vec4 objectColor4 = texture(tex, vec2(Texcoord.x, 1.0 - Texcoord.y)); // vec3 objectColor = objectColor4.rgb; // #ifdef ALPHA_DITHER // ivec2 iPoz = ivec2(gl_FragCoord.xy); // int bx = intmod(iPoz.x, 8); // int by = intmod(iPoz.y, 8); // // if (objectColor4.a < 0.25 || alpha < bayer[bx * 8 + by]) discard; // if (map(objectColor4.a, 0.0, 1.0, -0.05, 1.2) * alpha < bayer[bx * 8 + by]) discard; // #else // if (objectColor4.a < 0.25) discard; // #endif // FragColor = vec4(objectColor, 1.0); // // FragPos = gl_FragCoord.z; //vec4(FragPosF, /*Dist*/ gl_FragCoord.z); // FragNormal = vec4(Normal, NoLight == 1 ? 0.0 : 1.0); // }