public void preload(RenderManager renderManager, Geometry geometry) {
        if (technique == null) {
            selectTechnique(TechniqueDef.DEFAULT_TECHNIQUE_NAME, renderManager);
        }
        TechniqueDef techniqueDef = technique.getDef();
        Renderer renderer = renderManager.getRenderer();
        EnumSet<Caps> rendererCaps = renderer.getCaps();

        if (techniqueDef.isNoRender()) {
            return;
        }
        // Get world overrides
        SafeArrayList<MatParamOverride> overrides = geometry.getWorldMatParamOverrides();

        Shader shader = technique.makeCurrent(renderManager, overrides, null, null, rendererCaps);
        updateShaderMaterialParameters(renderer, shader, overrides, null);
        renderManager.getRenderer().setShader(shader);
    }
Preloads this material for the given render manager.
<p>
Preloading the material can ensure that when the material is first
used for rendering, there won't be any delay since the material has
been already been setup for rendering.

@param renderManager The render manager to preload for
@param geometry to determine the applicable parameter overrides, if any
jme3-core/src/main/java/com/jme3/material/Material.java