36 lines
835 B
GLSL
36 lines
835 B
GLSL
#version 330 core
|
|
|
|
in vec2 v_texcoord;
|
|
in vec3 v_fragpos;
|
|
in vec3 v_normal;
|
|
|
|
uniform sampler2D u_tex;
|
|
uniform sampler2D u_tex1;
|
|
uniform sampler2D u_tex2;
|
|
|
|
uniform vec2 u_xz_mult;
|
|
|
|
layout (location = 0) out vec4 o_color;
|
|
layout (location = 1) out vec4 o_normal;
|
|
|
|
void main() {
|
|
vec2 txc = vec2(v_texcoord.x, 1.0 - v_texcoord.y);
|
|
|
|
vec2 tc1 = v_fragpos.xz * u_xz_mult.x;
|
|
vec2 tc2 = v_fragpos.xz * u_xz_mult.y;
|
|
|
|
vec4 color_mask = texture(u_tex, txc);
|
|
vec4 color_xz1 = texture(u_tex1, tc1);
|
|
vec4 color_xz2 = texture(u_tex2, tc2);
|
|
|
|
|
|
// vec4 object_color_4 = mix(color_xz1, color_xz2, color_mask.a);
|
|
// if (object_color_4.a < 0.5) discard;
|
|
|
|
vec3 object_color = mix(color_xz1.rgb, color_xz2.rgb * color_mask.rgb, color_mask.a);
|
|
o_color = vec4(object_color, 1.0);
|
|
o_normal = vec4(v_normal, 1.0);
|
|
|
|
|
|
}
|