Light



Lighting in Minecraft affects visibility, Mob spawning, tree growth, and whether flowers and mushrooms will stay planted. Lighting can be provided by sunlight, torches, fire, lava, in-use furnaces, and other certain objects.

History
Minecraft has gone through many different ways to light the world. Classic’s model is simple and only checks whether a block is exposed to the sky. Indev’s model is more complex and considers a block’s distance from the nearest sunlight and from the nearest light-emitting block. Alpha’s model is a refinement of Indev’s, calculating sunlight and block-emitted light separately and using a different scale of light intensities. An earlier Beta update improved upon Alpha's model by adding the smooth lighting option, and in a later Beta update, the whole lighting engine was again rewritten to be much more efficient, have more detail, and is smooth in transition of lighting differentials.

Classic
In Classic, “sunlight” is emitted by the top edge of the map and will hit any block that is under it. It will pass through transparent blocks to light blocks underneath. Blocks that do not receive light are in a dim shadow that remains at the same level of brightness no matter how far they were from a light source.

Indev/Infdev
In Indev and Infdev versions there are 16 degrees of brightness, with a maximum of 15 for full daylight and a minimum of 0 for almost complete darkness. Brightness is a linear scale and represents its value divided by 15, so for example 15 is 100% ($15/15$) and 13 is 86.67% ($13/15$).

Each block that emits light has its own luminance value and the light value diminishes by one level each block from its source. If the neighbouring block already has a greater light value, it is ignored. The process is repeated for each block whose light value just changed.

During the day, sunlight has a maximum light value of 15. At dusk, it steadily decreases until it reaches a night-time minimum value of 4 representing moonlight. Sunlight is emitted by the top edge of the map, but does not diminish with distance from its “source”. A block lit by sunlight will be equally bright at any height or depth.

Alpha - Beta 1.2_02
Lighting in Alpha through pre-Beta 1.3 works as Indev and Infdev, except that the scale is different and is not linear.

Full daylight provides the maximum brightness of 15. Each value below this is 80% as bright as the one above it. For example, 14 is 80% as bright as sunlight, and 13 is 64% bright. This means that Level 0 still has 0.8¹⁵·100% = 3.5% of the maximum brightness.

Sunlight in Alpha have their own light array and a behind-the-scenes optimization to make dawn and dusk smoother: the amount of light from the sky is pre-calculated and saved along with the blocks, because it never needs to change except when blocks are added or removed. During dusk, nighttime, and dawn, a "darkness" value is subtracted from the sky to create the effects of different times of day.

In the Nether, light decreases by 10% each level, rather than the normal 20%. This means it will never be totally dark in the Nether. The minimum light value is 20.59%, providing a permanent dim ambiance equivalent to normal world's level 8.

Beta 1.3 - Beta 1.7.3
Lighting from Beta 1.3 to 1.7.3 works the same as how it was in Alpha, but is greater optimized to allow smooth lighting.

Beta 1.8 - Present
In Beta 1.8, a new lighting engine was implemented. The new engine has added and changed these following :
 * The lighting of an area is influenced by the type of light source that is lighting the block: Moonlight gives a blue tint, torches and lava give a reddish tint, and complete darkness and sunlight are the same as before.
 * Changes in lighting are now instant, and can be gradual as changes in the time of day and the state of rainfall now smoothly change the lighting value rather than individually updating the lighting of chunks one by one.
 * Using the new instant lighting, non-sunlight lighting now subtly flickers, although this feature is purely cosmetic and has no effect on gameplay.

Smooth Lighting
Smooth Lighting (technically known as ambient occlusion) is a lighting engine added in Beta 1.3, with the help of MrMessiah. This lighting engine is set on by default, and can be enabled or disabled by accessing Video Options from the Options menu.

The engine blends lighting to add semi-realistic shadows and glowing from light sources. It can give the illusion of an overall darker appearance. Before Beta 1.3, the feature could only be obtained by modifying the game with the help of MrMessiah's BetterLight mod.

Known Bugs

 * There are lighting bugs on ice and portal when Smooth Lighting is turned on, since the transparency is made by the game, not the textures.
 * The lighting on both still and flowing liquids are not smoothed when Smooth Lighting is on.
 * If turned off it will sometimes cause a bug where stairs will turn black.
 * Smooth lighting doesn't seem to have an effect on paintings.

Effects of light

 * Hostile mobs, excluding slimes, zombie pigmen and ghasts, require a light level of 7 or less to spawn.
 * The Halloween Update version 1.2.0 allowed monsters to spawn in higher light levels at lower depths, using the formula 16 - (Layer ÷ 8). At level 8 and below, mobs could spawn even in sunlight. Notch reverted mob spawning to the original method in version 1.2.1, saying, "it was far too annoying. I have plans on what to do with this."
 * Planted Flowers and Saplings will stay in the ground at light level 8 or higher. They will also stay in the ground if there are no blocks between them and the sky, regardless of light level.
 * Mushrooms only survive at light level 12 or less.
 * Snow and ice will melt at light level 12 or higher, and won't form at light levels above 10. Sunlight is ignored.
 * Trees will grow if the light in the block above a sapling is 9 or higher.
 * Crops will only grow in light level 9 or higher.
 * Grass will only spread in light level 4 or higher.
 * Ambience is triggered by chambers at least 3x3 that are entirely at light level 8 or lower.

Light and Non-Opaque Blocks


Transparent blocks do not affect the light spread, unlike solid ones which will stop the light from being transmitted any further. This includes glass, water, ice, portal interiors, and so forth. See Opacity for a full list.

Certain blocks will only allow light to pass through diffusely. These are water and ice, which reduce light by an additional 2 levels per block, and leaves, which diffuse sunlight but only reduce light by the normal 1 level per block.

Light-emitting blocks
The following values are the brightness of the block itself. The light emitted decreases by one for each square of distance from the light source. Glass does not diminish the light that passes through it, but water or ice reduces light that passes through it by 3 (2 for passing through +1 for normal block decrease). In Minecraft's source code, the luminescences are defined using the floating point values in the third column. In a weird quirk, these floating point numbers are fractions of 16, but are multiplied by 15 to get the integer light value. This means that both 0/16 and 1/16 (0.0 and 0.0625) correspond to the integer light value 0.

Bugs

 * There is a bug during terrain generation causing lighting to not be calculated, usually in the areas right off of direct sunlight. These areas will end up having a darkness of 1 when they shouldn't, and becasuse of that, enemy mobs can spawn when they normally shouldn't. When this glitch is encountered, a quick fix is to update the area by placing a light-emitting block next to the area. (This bug occurred prior to the 1.8 patch. The new lighting engine update fixed this bug and chunk updates are absent with light level changes.)