Use the Emissive Material Input

Choose your OS:

During the course of project development, the need might arise for a Self-Illuminated Material or glowing Material. Inside of Unreal Engine 4(UE4), Self-Illuminated Materials are known as Emissive Materials. In the following How-to guide, we will be covering how you setup your Materials to use the Emissive input as well as how you can use the Emissive input to actually light the world that you are creating.

Emissive Glow

Emissive Glow or in UE4, Emissive Materials, give artists a very cheap and effective way to give the illusion that a Material is casting light when it really is not. Emissive Materials do this by allowing artist to push the values of the Emissive input higher than 1.0 which will push the Material into the HDR range, giving off a Bloom effect that you might see when looking at a very bright light source.

Lit & Unlit Emissive Materials

Emissive Materials are self-illuminating which means that they can be used with both Lit and Unlit Shading Models. However whenever possible, Emissive Materials should use the Unlit Shading Model as it will result in a shader that is cheaper to render. There is also no visual difference between the two different Shading Models in terms of how the Emissive is rendered. So whenever possible, use the Unlit Shading Mode as it will be cheaper.

EM_Shading_Model.png

  • When to use the Lit Shading Model: You should use the Lit Shading Model if your Emissive Material has to be used in combination with other shader inputs like the Base Color input or the Normal Map input. An example of this would be if you were creating a Material for a gun that had lights on it. You will still want to use the Lit Shading Model so that the Normal map and other shader inputs would still work with the lighting in the level.

  • When to use the Unlit Shading Model: You should use the Unlit Shading Model if your Emissive Material does not have to use the other shader inputs. An example of this would be if you are using the Emissive Material strictly to simulate light source such as a light card or the surface area of a light bulb.

Emissive Material Creation

Creating Emissive Materials is no different than creating any other Material inside of UE4. The following section will cover all that is needed to setup up any Material to make use of the Emissive input.

All of the content that is used in the following sections can be found if you include the Starter Content with your project. While the techniques that are shown here will work with any Textures, if you want to follow along, please make sure that your project does include the Starter Content.

  1. First use the mouse to Right-Click in the Content Browser and then from the Create Basic Asset section of the pop-up Menu, select Material. Once selected, a new Material will be created, name the Material Emissive_Material.

  2. Once the Material has been created open it up by using the Left Mouse Button and Double-Clicking on the Material in the Content Browser. Once open add the following Material Expression nodes and Textures.

    • Vector Parameter x 2

    • Scalar Parameter x 2

    • Texture - T_Tech_Panel_M

    • Texture - T_Tech_Panel_N

    EM_Adding_Nodes_&_Textures_To_Material.png

    If you cannot find the Tech_Panel textures that are used in this How-to, that means that you might have forgotten to include the Starter Content with your project. To find this content, you can create another project, make sure to include the Start Content, and then use the Migrate Tool to move the textures from that project into your project.

  3. Now that the Material Expression nodes have been added, it is now time to start to set the Material up. The first thing that needs to be done is that the Material Expression nodes need to be named and filled in with data. Here is a list of names and values that we are going to be using.

    • Vector Parameter - Base_Color - 1, 1, 1

    • Vector Parameter - Emissive_Color - 1, 0, 0

    • Scalar Parameter - Roughness - 0.5

    • Scalar Parameter - Emissive_Strength - 1.0

    When completed, you should have something that looks like the following.

    EM_Naming_Nodes.png

  4. With the Material Expression nodes now labeled and filled in, it is now time to start to wire everything together. The most important part to make sure to wire up correctly is the Emissive input as without that, no Emissive will work. When completed, your Material should look like the following.

    EM_Completed_Material.png

  5. Now that the Material is wired up, make sure to Compile and Save the Material by pressing both the Apply and Save buttons at the top of the Material editor. Once that has been completed, you can then close the Material.

    EM_Save_&_Compile.png

  6. Now that the Material has been compiled and closed, find the Material in the Content Browser and then Right-Click on the Material and chose the Create Material Instance option to make a Material Instance from the Emissive_Material Material.

    EM_Create_New_Material_Instance.png

  7. Once the Material Instance has been created, open it up by Double-Clicking on it with the Left Mouse Button. Once it is open, have a look at the Parameter Groups section. In this section, you will find all of the controls that were exposed in the Parent Material like Emisive_Color and Emissive_Strength.

    EM_Emissive_Material_Instance.png

  8. To change a parameter, you must first enable the parameter by using the Left Mouse Button to click on the checkmark box that is next to the name of the parameter you want to enable. After clicking, a check mark should be added to the box and both the name and the input area will no longer be grayed out. Now it is just a matter of inputting the values that you want to use and saving the Material Instance.

Texture or Scalar For Emissive Input

You can input Textures, numbers, or a combination of both into the Emissive Input. What you input really depends on the needs of the Material. If the Emissive Material is just to simulate light , then using a numeric value instead of a texture is the way to go. However if you want to simulate lights on an object, using a texture as a Emissive Mask is the way to go as you can define in the Mask Texture exactly which parts should be illuminated. In the example above, we used Emissive Masking as we used a texture to define where the Emissive parts of the Materials should be.

Testing Map Creation

  1. Before we go any further, we need to first set up a little testing room so that we can see the Emissive Material in action. To do this, create a new level by going File -> New Level and choose the Default option from the new level dialogue box.

    EM_Create_New_Level.png

    You can also create a new level by pressing CRTL + N on the keyboard.

  2. Once the level has been created, take the existing floor, SM_Template_Map_Floor, and duplicate it 4 times by first selecting it and then pressing CRTL + W on the keyboard 4 times. Once you have all of the floors duplicated arrange them so that they form a room that is open on one side and has a bit of a gap in the roof to make for some interesting lighting conditions. When completed, your room should look something like this. EM_Testing_Level.png

  3. When the room is completed, make sure to save your work by pressing CTRL + S on the keyboard to save your work.

Emissive Materials in Action

  1. With the room setup, it is now time to add some meshes for testing. Inside of the Starter Content folder, there is a folder labeled Shapes. Inside of that folder, you will find a mesh named Shape_Cube. Select the Shape_Cube with your Left Mouse Button and then drag the mesh from the Content Browser into the level releasing the Left Mouse Button when the mesh is over the level viewport. This will place the mesh in the level.

    EM_Adding_Test_Box.png

  2. Now that the mesh has been added to level, it is time to apply the Emissive Material to it. To do this, locate the Emissive Material folder in the Content Browser. Once you find it, select the Material Instance with the Left Mouse Button and then drag the Material Instance from the Content Browser onto the Shape_Cube mesh.

    EM_Applying_Material_Instance.png

  3. Once the Material Instance has been applied to the Shape_Cube mesh, open up the Material Instance by Double-Clicking on it with the Left Mouse Button. Once open, we can then start to adjust the parameters of the Material Instance to affect the way our Emissive looks. For example, if we adjust the Emissive_Strength, we can control the influence of the Emissive. Here are some examples of what happens when we set the Emissive_Strength to a value of 0 on the left, 1 in the middle, and 25 on the right.

    EM_Different_Emissive_Values.png

  4. You can also change the color of the Emissive by changing the Emissive_Color Vector Parameter. Here are some examples of what changing the color of the Emissive looks like.

    EM_Different_Emissive_Color.png

Using Emissive Materials to Light the World

This feature is only available in Unreal Engine build 4.6 and later.

Unreal Engine 4 now has the ability to use the Emissive input in your Material to help illuminate the world. To enable this functionality, all you have to do is make sure that you have something going into the Emissive input in the Material and then place that Material on an object in the world. After you build the light, you should see that static objects in the world now look like they have been illuminated by the Emissive input of your Material. Here is an example of using a yellow Emissive light to illuminate a dark part of our testing level with yellow light. EM_Emissive_Material_Light.png

Controlling Emissive Influence on the World

When using the Emissive input to light the world, you might find that the effect is either too subtle or too powerful. To fix this, any Materials that are created should have a way to adjust the influence of the Emissive light being cast into the world. In the shader that we created above, this parameter was called Emissive_Strength. By Increasing the Emissive_Strength, you will increase the amount of light that is cast into the world when building light. Decreasing the Emissive_Strength, you will lessen the amount of light that is cast into the world. In the image below, you can see how increasing the Emissive_Strength increases the Emissive effect on the world. On the left, the Emissive_Strength was set to a value of 1.0. In the middle, the Emissive_Strength was set to a value of 10.0, and finally on the right, the Emissive_Strength was set to a value of 100.0.

EM_Emissive_Lighting_World.png

Turning on or off Emissive Influence on the World

In some cases, you might want to or not want to have the Emissive Material cast lighting into the world. To enable or disable this feature, follow the following steps.

  1. To accomplish this, first select the mesh that you do not want to cast light from the Emissive in the world.

  2. Then in the Details panel, under the Lighting section, check the box that says Use Emissive for Static Lighting by using the Left Mouse Button and clicking on it.

    EM_Turn_Off_Use_As_SL.png

    By default, Use Emissive for Static Lighting is disabled on all meshes that you place inside of the world. If you want to use it, you will always have to enable it.

  3. Here are the results of a mesh that has had the Use Emissive for Static Lighting disabled on the left and enabled on the right. EM_SL_Off_On.png

In order to see the effects the Emissive will have on the world, you need to build your level lighting. If you do not do this, your changes will not be seen. This also means that whenever you make a change to the Emissive Material you will also need to re-build lighting to see the changes.

Emissive Influence & Bloom

You might notice that as you increase the strength of your Emissive input inside your Material Instance, the bloom that is generated from the Emissive sections of the Material will get brighter and brighter. One way to tone down the effect of the Bloom without turning down the values inside of your Material Instance is to adjust the Bloom setting on the Post Process Volume.

EM_Bloom_On_PP.png

Adjusting this value will help to compensate when you push the Emissive values very high to get more static light from the Emissive Material cast in the world. In the image below, on the left-hand side, you can see what happens when the Emissive value is pushed to a very high number, 100, and the Bloom is not adjusted for. In the image on the right-hand side, the Bloom setting was tweaked from 1 to 0.1. This will still allow the Emissive to cast lots of static light into the world and also not blow out the Bloom.

EM_Tweak_PP.png

Conclusion

Adding Emissive Glow to any Material is very cheap and effective way to simulate a light source without adding any new lights. However keep in mind that when using Emissive Glow the Emissive Glow will not illuminate dynamic objects, like characters, the same way that lights will. Also remember to tweak the Bloom setting on the Post Process volume if your glow is too intense.

Tags