#version 330 core uniform sampler2D crate_texture; uniform sampler2D face_texture; uniform float mix_ratio; in vec2 texture_coordinates; out vec4 frag_colour; void main() { frag_colour = mix(texture(crate_texture, texture_coordinates), texture(face_texture, texture_coordinates), mix_ratio); // sample from the texture at the provided coordinates and multiply by colour }