Material editor is designed for materials customization. When used for 3D objects, materials determine how these objects will interact with lighting.
New material can be created as a separate resource or inside existing object. Read more about creating resources. When creating a material, one needs to specify various parameters that will be described below.
By default, when material is created, a new "Shader graph" nested component is added. This component is a Flow Graph, and designed for setting up textures of material, and specifying how do those mix up. On the screenshot below, two tabs are opened in the MyMaterial.material document. The first one ('Root object') - is material object, second (Shader graph) is a Flow Graph.
To edit material parameters, one needs to click on the material node title.
|Blend Mode||Defines how/if the rendered object is blended with the content of the render target.|
|Two Sided||Whether the material use double-sided rendering.|
|Shading Model||The reflection mode of the incoming light.|
|Base Color||Diffuse albedo for non-metallic surfaces, and specular color for metallic surfaces.|
|Metallic||Whether a surface appears to be dielectric (0.0) or conductor (1.0). Often used as a binary value (0 or 1).|
|Roughness||Perceived smoothness (1.0) or roughness (0.0) of a surface. Smooth surfaces exhibit sharp reflections.|
|Reflectance||Fresnel reflectance at normal incidence for dielectric surfaces. This directly controls the strength of the reflections.|
|Normal||The material normals. This property is intented to be used with normal mapping.|
|Displacement||The height offset that is specified by the texture.|
|Displacement Scale||The scale for Displacement.|
|Ambient Occlusion||Defines how much of the light is accessible to a surface point.|
|Emissive||The color and intensity of light emitted from the surface.|
|Opacity||The opacity of the surface.|
|Opacity Mask Threshold||Transparency threshold for Masked mode.|
|Clear Coat||Strength of the clear coat layer.|
|Clear Coat Roughness||Perceived smoothness or roughness of the clear coat layer.|
|Clear Coat Normal||A detail normal used to perturb the clear coat layer using bump mapping (normal mapping).|
|Anisotropy||Amount of anisotropy.|
|Anisotropy Direction||Local surface direction. Used by anisotropic materials only.|
|Anisotropy Direction Basis||The direction basis. Used by anisotropic materials only.|
|Thickness||Object thickness. Used for subsurface scattering only.|
|Subsurface Power||Amount of subsurface scattering.|
|Sheen Color||Specular tint to create two-tone specular fabrics.|
|Subsurface Color||Tint for the diffuse color after scattering and absorption through the material.|
|Shininess||The shininess of material.|
|Position Offset||Vertices position offset. Performed in vertex shader.|
|Ray Tracing Reflection||Amount of ray-tracing reflection. Used for screen space reflection.|
|Receive Shadows||Whether the surface receive shadows from other sources.|
|Receive Decals||Whether it is possible to apply decals the surface.|
|Advanced Blending||Enables advanced blending mode. In this mode, it is possible to configure blending for each channel separately.|
|Affect Base Color||Whether to write the Base Color.|
|Affect Metallic||Whether to write the Metallic.|
|Affect Roughness||Whether to write the Roughness.|
|Affect Reflectance||Whether to write the Reflectance.|
|Affect Ambient Occlusion||Whether to write the Ambient Occlusion.|
|Affect Emissive||Whether to write the Emissive.|
|Affect Geometry||Whether to write the normals, height data.|
In order to bind a texture to specific material parameter, one needs to do two things. First one should find texture in resources, and drag it to graph editor. As a result, texture will appear as a node of the graph.
Second, one should connect RGBA channel of a texture to a Base Color of material.
Besides textures, one can use logical blocks for building material.
There is special filtering mode called Shaders at Resources Window.
In this mode only types that supported in material editor are shown.
This objects could be dragged to material editor workspace in the same way as textures.
With Shader Parameter component one can pass dynamic parameters to material. This parameters could be picked from any kind of sources. For example it could be time, or some parameters of scene objects.
First, drag Shader Parameter to a workspace.
Next, set up data source. In this example Engine time is used as a data source (All types\NeoAxis\EngineApp\EngineTime).
Shader scripts provides the ability to use shader code in materials and fullscreen effects.
Material can be assigned to different types of objects. In this section it is described how to assign material to a 3D model in the scene.
If you haven't saved your material yet, now is the time to do this. One can save document by clicking Save button or by pressing Ctrl+S.
In order to assign material, one needs to pick material in Resources window, then drag & drop material on 3D model.