## CreateShadersFromMaterialPreset

### Introduced

v8.0 (2010)

### Description

Adds one or more Shader(s) to a render tree created from a material preset.

### Scripting Syntax

    oReturn = CreateShadersFromMaterialPreset( [PresetObj], [Container] );

### Return Value

The first Shader that was connected to the material.

### Parameters

Parameter | Type | Description
--- | --- | ---
PresetObj | String or a material preset object (see SIGetPreset) | Default Value: The ArgumentHandler may be able to resolve this value.
Container | SelectionList or Selection | Default Value: If no argument is specified, the current selection is used.

### Examples

#### JScript Example

    /*
            This example demonstrates how to use the CreateShadersFromMaterialPreset command.
            A Material Preset is loaded as a shader tree and connected to the material.
    */
    NewScene( null, false );
    CreatePrim( "Sphere", "MeshSurface" );
    CreateProjection( "sphere", siTxtSpherical, null, null, "Texture_Projection" );
    IncreaseSubdivision();
    IncreaseSubdivision();
    SelectObj( "sphere", null, true );
    SetValue( "sphere.polymsh.geom.subdivu", 15 );
    SetValue( "sphere.polymsh.geom.subdivv", 15 );
    strPresetPath = XSIUtils.BuildPath( Application.InstallationPath(siFactoryPath),
            "Data", "DSPresets", "Materials", "Art", "im_art5.Preset" );
    oShader = CreateShadersFromMaterialPreset( strPresetPath, "Sources.Materials.DefaultLib.Scene_Material" );
    Application.LogMessage( oShader.FullName );
    SIConnectShaderToCnxPoint( oShader, "Sources.Materials.DefaultLib.Scene_Material.surface", false );

### See Also

CreateShaderFromPreset CreateShaderFromCLSID CreateShaderFromProgID CreateShaderCompound NestShaders UnnestShaders AddShaderCompoundPort RemoveShaderCompoundPort MoveShaderCompoundPort RenameShaderCompoundPort ExportShaderCompound ImportShaderCompound ExplodeShaderCompound SetShaderCompoundPropertiesEx GetShaderCompoundProperties EditShaderCompoundPPGLogic