User:Joabroyt/sandbox/Opacity



Opacity (and its inverse, transparency) are properties of blocks which affect how the game renders it and other nearby blocks, as well as how is handled.

Properties
The primary purpose of opacity is to tell the game engine if it needs to render other blocks behind that block; an opaque block completely obscures the view behind it, while a transparent block does not. Thus, transparency applies not only to solid blocks like ice and glass, but also to blocks like cacti, stairs, chests, and single slabs, which are not considered full blocks. By this definition, transparency does not imply that a block is actually see-through, which is a quality of the item texture specified by the game or resource pack.

Water that is completely surrounded by water or opaque blocks does not have a current. However, if one of the surrounding blocks is transparent, the water shows a downward current on its side, like a waterfall, although swim speed through that water remains unchanged.

Lighting
Opacity also affects how light propagates through the world. Opaque blocks completely prevent light from traveling through them, while transparent blocks generally diminish the light by one light level per block (these value can be overridden however, and there are several exceptions).

The growth of grass blocks is linked to the amount of light in the blocks directly above them. A grass block can be killed by placing an opaque or partially transparent block above it.

Some transparent blocks can reduce or block light, according to type:
 * and do not reduce the light passing through them, i.e. there is no additional modifier. In other words, light passes through them as if it were air.
 * is set to completely block light propagation. This is often unnoticeable since lava has the maximum light level of 15, but can be observed in cases where lava blocks skylight propagation.
 * ,, , s, s, and s do not have any extra effect on block light, but they do diffuse sky light.
 * $$, water and ice have a -1 modifier to light propagation, on top of the normal decrease of 1 per block.
 * The light level from sunlight or moonlight is the same in each block of air in the column of air above the highest obstruction in the column. When placed, water, ice, leaves, slime blocks, honey blocks, and cobwebs obstruct that light column so that the lowest air block above the leaves acts as other light sources do.
 * Sunlight is attenuated by leaves and each vertical layer of leaf blocks attenuates the light further.

Trivia

 * In the Nether, the spawn point is always on top of an opaque block. This can be seen if the player used a respawn anchor to set their spawn in the Nether.
 * If an opaque block is given transparent pixels in an edited texture, then instead of showing the block behind it through the transparent part, it simply fills in the area with white. However, currently X-ray texture packs could be created using the blocks custom models feature.