TSR_ECS/main/shaders/basic.fs
2023-12-25 18:47:55 +01:00

98 lines
2.7 KiB
GLSL

#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);
// }