
## ShaderMaterial class

A shader material allows to describe the material by external rendering engine or shader language.
[`ShaderMaterial`](/3d/python-net/aspose.threed.shading/shadermaterial) uses [`ShaderTechnique`](/3d/python-net/aspose.threed.shading/shadertechnique) to describe the concrete rendering details, 
and the most suitable one will be used according to the final rendering platform.
For example, your [`ShaderMaterial`](/3d/python-net/aspose.threed.shading/shadermaterial) instance can have two technique, one is defined by HLSL, and another is defined by GLSL
Under non-window platform the GLSL should be used instead of HLSL



**Inheritance:** [`ShaderMaterial`](/3d/python-net/aspose.threed.shading/shadermaterial) → 
[`Material`](/3d/python-net/aspose.threed.shading/material) → 
[`A3DObject`](/3d/python-net/aspose.threed/a3dobject)



The ShaderMaterial type exposes the following members:

### Constructors
| Constructor | Description |
| :- | :- |
| [`__init__(self)`](/3d/python-net/aspose.threed.shading/shadermaterial/__init__/#) | Initializes a new instance of the [`ShaderMaterial`](/3d/python-net/aspose.threed.shading/shadermaterial) class. |
| [`__init__(self, name)`](/3d/python-net/aspose.threed.shading/shadermaterial/__init__/#system.string) | Initializes a new instance of the [`ShaderMaterial`](/3d/python-net/aspose.threed.shading/shadermaterial) class. |


### Properties
| Property | Description |
| :- | :- |
| [name](/3d/python-net/aspose.threed.shading/shadermaterial/name) | Gets or sets the name. |
| [properties](/3d/python-net/aspose.threed.shading/shadermaterial/properties) | Gets the collection of all properties. |
| [MAP_SPECULAR](/3d/python-net/aspose.threed.shading/shadermaterial/map_specular) | Used in [`Material.set_texture`](/3d/python-net/aspose.threed.shading/material/set_texture) to assign a specular texture mapping. |
| [MAP_DIFFUSE](/3d/python-net/aspose.threed.shading/shadermaterial/map_diffuse) | Used in [`Material.set_texture`](/3d/python-net/aspose.threed.shading/material/set_texture) to assign a diffuse texture mapping. |
| [MAP_EMISSIVE](/3d/python-net/aspose.threed.shading/shadermaterial/map_emissive) | Used in [`Material.set_texture`](/3d/python-net/aspose.threed.shading/material/set_texture) to assign a emissive texture mapping. |
| [MAP_AMBIENT](/3d/python-net/aspose.threed.shading/shadermaterial/map_ambient) | Used in [`Material.set_texture`](/3d/python-net/aspose.threed.shading/material/set_texture) to assign a ambient texture mapping. |
| [MAP_NORMAL](/3d/python-net/aspose.threed.shading/shadermaterial/map_normal) | Used in [`Material.set_texture`](/3d/python-net/aspose.threed.shading/material/set_texture) to assign a normal texture mapping. |
| [techniques](/3d/python-net/aspose.threed.shading/shadermaterial/techniques) | Gets all available techniques defined in this material. |


### Methods
| Method | Description |
| :- | :- |
| [`remove_property(self, property)`](/3d/python-net/aspose.threed.shading/shadermaterial/remove_property/#aspose.threed.property) | Removes a dynamic property. |
| [`remove_property(self, property)`](/3d/python-net/aspose.threed.shading/shadermaterial/remove_property/#system.string) | Remove the specified property identified by name |
| [`get_property(self, property)`](/3d/python-net/aspose.threed.shading/shadermaterial/get_property/#system.string) | Get the value of specified property |
| [`set_property(self, property, value)`](/3d/python-net/aspose.threed.shading/shadermaterial/set_property/#system.string-system.object) | Sets the value of specified property |
| [`find_property(self, property_name)`](/3d/python-net/aspose.threed.shading/shadermaterial/find_property/#system.string) | Finds the property.
<br/>It can be a dynamic property (Created by CreateDynamicProperty/SetProperty) 
<br/>or native property(Identified by its name) |
| [`get_texture(self, slot_name)`](/3d/python-net/aspose.threed.shading/shadermaterial/get_texture/#system.string) | Gets the texture from the specified slot, it can be material's property name or shader's parameter name |
| [`set_texture(self, slot_name, texture)`](/3d/python-net/aspose.threed.shading/shadermaterial/set_texture/#system.string-aspose.threed.shading.texturebase) | Sets the texture to specified slot |



### See Also
* module [`aspose.threed.shading`](..)
* class [`A3DObject`](/3d/python-net/aspose.threed/a3dobject)
* class [`Material`](/3d/python-net/aspose.threed.shading/material)
* class [`ShaderMaterial`](/3d/python-net/aspose.threed.shading/shadermaterial)
* class [`ShaderTechnique`](/3d/python-net/aspose.threed.shading/shadertechnique)
