# Metallic-only PBR effect
# This effect specifically handles metallic textures correctly
# Ensures metallic texture is not confused with diffuse texture

fragment:
    defines: |
        #define USE_METALLIC_TEXTURE_ONLY 1
        #define DONT_FETCH_DEFAULT_TEXTURES 0

    inout: |
        uniform sampler2D p3d_Texture5;  // Metallic texture only

    material: |
        // Only handle metallic texture, ignore others to avoid confusion
        #if USE_METALLIC_TEXTURE_ONLY
            // Sample metallic from p3d_Texture5
            float sampled_metallic = texture(p3d_Texture5, texcoord).x;
            
            // Direct control: texture value directly controls metallic
            // This gives Blender-like behavior where texture has full control
            m.metallic = sampled_metallic;
            
            // Clamp to valid range
            m.metallic = clamp(m.metallic, 0.0, 1.0);
            
            // Keep other properties from material (no texture interference)
            m.basecolor = mInput.color;  // Use material color, not texture
            m.roughness = mInput.roughness;
            m.specular_ior = mInput.specular_ior;
            m.shading_model_param0 = mInput.arbitrary0;
            
        #else
            // Fallback to material values only
            m.basecolor = mInput.color;
            m.roughness = mInput.roughness;
            m.metallic = mInput.metallic;
            m.specular_ior = mInput.specular_ior;
            m.shading_model_param0 = mInput.arbitrary0;
        #endif
