Simple ‘Shadeless’ (Flat Lit) Materials In Blender

Link, Like, Share.

In legacy versions of Blender is was possible to create materials that didn’t respond to scene lighting by enabling the Shadeless option within the Materials properties. The effect of this meant materials then rendered shadeless, or flat lit/full bright because scene lighting had no affected on the mesh self-shading (but not shadows). As this setting is no longer available it has to be achieved indirectly using an Emission node.

Design note: shading vs shadowsShading only affects objects and surfaces locally (self) and refers to the way meshes discolour, or self-shade, relative to light source; structure further away or obscured from a light source, appears darker than those closer facing. This helps delineate the three-dimensional structure of individual objects. Shadows on the other hand affect everything in a scene (global) and are typically projected relative to a light source. They help describe an objects shape and position relative to an environment.

Download: KatsBits – Shaderless Material (c. 500 KB | *.blend, *.tga).

Shadeless Node Setup

To set up a Shaderless material in Blender in either Material Preview or Rendered display mode, in Shading Workspace first create a standard material with the necessary properties and image assets, for example a Principled BSDF with a Base Color linked to Material Output. To this arrangement, from the Add [1] menu select Shader then drop in a Mix Shader node and an Emission node – Add » Shader » Mix Shader and Add » Shader » Emission [2].

Important: in this context the Emission property of Principled BSDF won’t work due to the way this would otherwise result in an incorrectly structured material hieratical.

Next, to the Shader inputs of the Mix Shader, link the BSDF output of Principled BSDF to one, and the Emission output of Emission to the other. This mixes the two inputs together based on the Fac value, 0.500 so 50/50. Finally, link the Shader output from the Mix Shader to the Surface input of the Material Output node.

Emission nodes
The basic nodes needed for a simple Shaderless materials; in Shading workspace Add [1] an Emission and Mix Shader [2] node.

Shaderless Node tree
Link the nodes together to Principled BSDF (BSDF output) and Emission (Emission output) are connected to the Mix Shader (Shader output) [3], which in turn links through to Material Output (Surface input).

Image Texture or Base Color

Once the nodes have been connected, depending on what should be rendered as the surface or diffuse/color aspect of the material visible in the scene, the node setup and properties might need adjustment.

Important: the nature of emission in the context means it may completely overwhelm any other properties, images or effects associated with the overall material, for example normal maps rely on light sources to function, with Emission in place this may nullify the effect.

Base Color

If the materials diffuse is just a color set in Principled BSDF using Base Color [4], first take note of the colour values, e.g. RGB 0.800/0.500/0.000 (yellow-ish orange), then in the Emission node change Color [5] to similarly mirror Base Color, i.e. both Base Color and Color values would be RGB 0.800/0.500/0.000. Once done, depending on how shaderless the material needs to be, change Fac(tor) to 0.000 for the full shaderless effect [6].

Design note: setting up shaderless materials in this way effectively nullifies the Base Color input of Principled BSDF, especially when Fac is fully engaged, so it can be disconnected unless other shader properties are in used.

Emission Color
Mix Shader Fac
Image-top: if using Base Color for the material [4], the values need to be mirrored in the Emission node [5] – this overrides Principled BSDF. Image-bottom: once the colour is mirrored, to get the full shderless effect set the Fac value on the Mix Shader node to 0.000 – self-shading will be effectively disabled.

Image Texture

If a materials surface appearance is defined by a bitmap associated with an Image Texture node that’s linked through Principled BSDF, in the Image Texture node disconnect Color output and (re)connect to it to the Color input of the Emission node [7] – this determines the colours seen in the scene. Then depending on the degree of shaderlessness, change Fac on the Mix Shader to 0.000 [8], enabling the full, image defined, shaderless effect.

Design note: using Emission in this way nullifies other material effects that might be associated with Principled BSDF, so it can be disconnected without issue.

Shaderless Image Texture
Shaderless images
Image-top: for materials with diffuse defined by an Image texture node and associated image, link Color output to the Color input of Emission [7]. Image-bottom, set Fac to 0.000 in the Mix Shader to fully enable the shaderless effect – self-shading will be similarly nullified along with other material effects.

Shaderless & Cycles

For basic shaderless materials in Cycles render engine no special set up is needed, the same nodes and connections will function for both EEVEE and Cycles.

Shaderless Cycles
The setup for shaderless materials in EEVEE also work without modification in Cycles [9] render engine.

Shaderless & Blender 4.(X)

No special setup or modification of a basic shaderless material is needed for Blender 4.(x) or above.

Shaderless Blender 4.(x)
Shaderless materials don’t need any special setup or modification to work in Blender 4.(x).

Export Shadeless Materials

While it is possible to export shadeless materials from Blender when they’re assigned to a mesh object, imported into third-party applications, files may be not work due to any number of organisational and/or technical differences between Blender and the app being used. In other words, although the third-part environment may have an Emission effect, using it for shaderless materials might conflict with a proprietary system available for that purpose, or confuse an existing Emission system due to the way Blender has configured or organised the Emission node within the file. Some testing then, may be necessary.

Toon Shader

A shaderless material can be used to create a simple and cheap ‘toon outline‘ shader effect. To do this, first make a duplicate of the object to be toon shaded and increase its size (S) relative to the width of the line desired, e.g. Scale: x 1.25. Next, add a material and set the Base Color as desired for the outline, e.g. black or RGB 0/0/0, then scroll down and click the check box for Backface Culling [10] to enable, and set Shadow Mode to None [11]. Finally, in Edit Mode select the mesh and invert the faces using Flip [12] – Mesh » Normals » Flip.

Design note: Backface Culling disable both sides of the mesh being rendered and setting Shadow Mode to None prevents the outline object casting shadows onto other objects in the scene.

Once the outline object(s) is prepped, in Shading Workspace update the materials node tree relative to basing the effect on either a Base Color or Image Texture node, e.g. set the Emission nodes Color [13] to ‘black’, RGB/HSV 0.000, and then Fac on the Mix Shader to 0.000 [14]. This then results in a ‘toon outline’ around a parent object that does not cast shadows, does not react to scene or object lighting/illumination, and outlines relative to the viewer/camera.

Toon Shader Backface Culling
Once a basic material is assigned make sure that Backface Culling is enabled [10], Shadow Mode is set to None [11], before then inverting the object using Flip [12] (turns mesh inside out) – the object will still react to scene/object lighting at this point.

Toon Shader Nodes
Once the outline object is prepped, in Shading Workspace set up the node tree as described above, e.g. set the Emission nodes Color to ‘black’ [13] then the Mix Shaders Fac [14] value to 0.000 enabling the full shaderless outline effect.

Link, Like, Share.