One of the main features performed in Wave Engine 2.0 is the rewriting of the Material library. To afford tasks like the New Deferred Rendering, we soon realized that we needed to improve the existing material library.
All materials has been changed to work properly with the new Visual Editor, and work with the New Lighting System, so this is the new Materials list:
- Standard Material
- DualTexture Material
- Environment Material
The standard material is the new general purpose material. Itreplaces the old BasicMaterial, and allows to add the following texture channels:
- Diffuse: Specifies the surface color.
- Normal: Changes the surface to a normal texture level. Gives the model the appearance to have more detail than it really has.
- Specular: Specifies the surfaces’ specularity
- Ambient (IBL): A cubemap texture specifies the general illumination.
- Emissive: Controls which parts of the material will appear to glow.
Additionally you can set several properties of the material as you can see in the following image:
With the DualTexture Material, you can set two Diffuse textures at the same time, allowing to control how that textures will be blended. Each texture uses a separate UVW channel, so you can afford several common techniques like LightingMap (specify the light/shadows of the scene using a texture).
The choices to blend the two textures are the following:
- Multiplicative: Multiply the second image onto the first. This is useful to apply a Lighting Map
- Additive: Sets the additive blend. Adds the second image onto the first image.
- Mask: Applies an alpha blend of the second image onto the first.
The Environment Material is useful to create reflective surfaces. The key feature is the usage of a cubemap texture to specify the model reflection.
Additionally, you can change the Diffuse and Normal material appearance, and control how the reflection affects the model.
Now you can create your own materials that will be affected by light. We have created a Material subclass called DeferredMaterial that allows programmers to control how each Render Passes of the Light Pre Pass technique that will be rendered.