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, Jack 'o' Lantern, fire, lava, in-use furnaces, locked chests, Nether portals, redstone lamps, and certain other objects.

History
Minecraft has an extensive history when it comes to lighting. Classic’s lighting 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 be 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 are 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.

Minecraft - Pocket Edition currently features non-Smooth Lighting.

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 has its 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 ambience 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 - 1.3.2


In Beta 1.8, a new lighting engine was implemented. The new engine has added and changed the 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.
 * Sunset is much more intense and realistic than before, and its intensity dims if the player turns away from it.
 * At extreme depths, black fog closes in. At the bedrock level, a torch can no longer be seen from 11 squares distance. This effect is inhibited by proximity to open sky (i.e. the degree to which the place where you are standing would be lit by sunlight), whether or not the sun is currently up. Digging a shaft from the surface down to your room will allow you to see far, even at bedrock level.
 * When inside the void, lighting operates similar to Classic, where objects in the void will remain at a constant brightness, regardless of how far they travel away from a light source, provided that they remain directly underneath an opening into the void. The brightness of the particular "column" of space is based on the current light level at level 0, the bottom bedrock layer. This applies to all entities, as well as particles.
 * Additionally, sitting in the void underneath a shaft which allows sunlight directly into it will remove the void fog, regardless to whether is it daytime or not.

Future
Starting with 12w39a, Dinnerbone fixed lighting bugs involving slabs, stairs, and black patches, and began overhauling the lighting systems such as changing the lighting of blocks to allow for directional lighting. Some minor issues still occur with smooth lighting and stairs.

Due to severe bugs involving world generation, Dinnerbone reverted these changes and says he will work on it for 1.5. Although world generation issues were temporarily fixed, he has decided not to include these changes yet.

In 13w06a, the change log lists improved lighting optimisations, but it is unclear what these are. It is expected that in the coming snapshots, many of the features seen in 12w39a will return.

Smooth lighting
Smooth lighting (which includes ambient occlusion as well as interpolating lighting across block faces) is the 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 darkens inside corners, resulting in small spaces appearing much darker. Before Beta 1.3, the feature could only be obtained by modifying the game with the help of MrMessiah's BetterLight mod.

Bugs

 * There are lighting bugs on ice and portals when Smooth Lighting is turned on, since the transparency is made by the game, not the textures.
 * The shading on both still and flowing liquids is not smoothed when Smooth Lighting is on.
 * Smooth lighting doesn't seem to have an effect on paintings. This may be because they are entities.
 * Glass, if placed directly on another surface, will cast a shadow.
 * Smooth lighting doesn't affect players and items when moving from block to block.
 * On rare occasions light can render in areas with no light emitting objects whatsoever. This possibly happens when older Minecraft version worlds are loaded into newer versions.
 * Sometimes when finding a generated structure with torches (or another light source) the torches will be visible in darkness but not give off any light

Effects of light

 * Note that light is not cumulative; the light level for a given block will be the maximum light level provided by any source including the sky.
 * Snow and ice will melt at light level 12 or higher, and won't form at light levels above 10. Sunlight is ignored.
 * Mushrooms only survive at light level 12 or less. Mushrooms in light level higher than 12 will only stay planted if they are on a mycelium block.
 * Spiders and Cave Spiders will only become hostile at light level 11 or lower.
 * Blazes require light level 11 or less to spawn.
 * Silverfish spawn in light level 11 or lower, except on top of stone blocks, where they can spawn at any light level. They also cannot spawn within a 5 block distance of any player. These restrictions only apply when spawning from a monster spawner, and not from a Silverfish block.
 * Trees will grow if the light in the block above a sapling is 9 or higher. Saplings in light level lower than 9 will uproot unless they are exposed to direct moonlight.
 * Crops will only grow in light level 9 or higher. Crops in light level of lower than 9 will uproot unless they are exposed to direct moonlight.
 * Flowers only survive in light level 8 or higher. Flowers in light level lower than 8 will drop as an item unless they are exposed to direct moonlight.
 * Grass will only spread from grass blocks in light level 4 or higher to dirt blocks in light level 9 or higher. Mycelium follows the same rule.
 * Ambience is triggered by chambers at least 3x3 that are entirely at light level 8 or lower.
 * Hostile mobs, excluding slimes, silverfish, and Nether mobs, require a light level of 7 or less to spawn.
 * The Halloween Update version Alpha 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 Alpha 1.2.1, saying, "it was way too annoying. I have plans on what to do with this."

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.

Half slabs are listed as a transparent block in the opacity list, however they do not conduct light. If placed adjacent to a light emitting block, the exposed face of the half will be lit at the proper level, but light will be blocked from travelling any further.

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.

Light-filtering blocks
The following values are the amount each block decreases the light value. The light emitted decreases by one for each square of distance from the light source, more depending on the block it passes through. 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).

Trivia

 * Hostile mobs can spawn in areas where there should be light, but there isn't. This is because the game thinks there is a light level of 0.
 * Smooth Lighting is not apparent on the top of water or on paintings.
 * A 21 x 21 square of opaque material is enough to spawn mobs in the shadow underneath.
 * If Zombies or Skeletons are in water or in the low light levels caused by trees, they can survive through the daytime.