private void applyOverrides(Renderer renderer, Shader shader, SafeArrayList<MatParamOverride> overrides, BindUnits bindUnits) {
        for (MatParamOverride override : overrides.getArray()) {
            VarType type = override.getVarType();

            MatParam paramDef = def.getMaterialParam(override.getName());

            if (paramDef == null || paramDef.getVarType() != type || !override.isEnabled()) {
                continue;
            }

            Uniform uniform = shader.getUniform(override.getPrefixedName());

            if (override.getValue() != null) {
                updateShaderMaterialParameter(renderer, type, shader, override, bindUnits, true);
            } else {
                uniform.clearValue();
            }
        }
    }
Select the technique to use for rendering this material.
<p>
Any candidate technique for selection (either default or named)
must be verified to be compatible with the system, for that, the
<code>renderManager</code> is queried for capabilities.

@param name The name of the technique to select, pass
{@link TechniqueDef#DEFAULT_TECHNIQUE_NAME} to select one of the default
techniques.
@param renderManager The {@link RenderManager render manager}
to query for capabilities.

@throws IllegalArgumentException If no technique exists with the given
name.
@throws UnsupportedOperationException If no candidate technique supports
the system capabilities.
jme3-core/src/main/java/com/jme3/material/Material.java