     float metallic = u_MetallicRoughnessValues.x;
 
     if (available(METALLIC_ROUGHNESS_MAP)) {
-	vec4 mr_sample = texture2D(u_MetallicRoughnessSampler, v_TexCoord);
+	vec4 mr_sample = texture(u_MetallicRoughnessSampler, v_TexCoord);
 	perceptual_roughness = mr_sample.g * perceptual_roughness;
 	metallic = mr_sample.b * metallic;
     }

    }

    if (available(OCCLUSION_MAP)) {
	float ao = texture2D(u_OcclusionSampler, v_TexCoord).r;
        color = mix(color, color * ao, u_OcclusionStrength);
    }

    if (available(EMISSIVE_MAP)) {
        vec3 emissive = texture2D(u_EmissiveSampler, v_TexCoord).rgb * u_EmissiveFactor;
        color += emissive;
    }



    vec3 n;
    if (available(NORMAL_MAP)) {
        n = texture(u_NormalSampler, v_TexCoord).rgb;
        n = normalize(tbn * ((2.0 * n - 1.0) * vec3(u_NormalScale, u_NormalScale, 1.0)));
    } else {
        n = tbn[2].xyz;
