在Minecraft Java版中,染色玻璃可以改变信标光柱的颜色,除了16种染色玻璃的颜色外,通过多个染色玻璃的纵向叠加可以实现更多颜色。

信标光柱染色机制

信标光柱从下往上的第一个染色玻璃决定光柱的初始颜色。

附:纹理漫反射颜色值

名称 id 颜色值 编号
白色 white #F9FFFE 0
橙色 orange #F9801D 1
品红色 magenta #C74EBD 2
淡蓝色 light_blue #3AB3DA 3
黄色 yellow #FED83D 4
黄绿色 lime #80C71F 5
粉红色 pink #F38BAA 6
灰色 gray #474F52 7
淡灰色 light_gray #9D9D97 8
青色 cyan #169C9C 9
紫色 purple #8932B8 a
蓝色 blue #3C44AA b
棕色 brown #835432 c
绿色 green #5E7C16 d
红色 red #B02E26 e
黑色 black #1D1D21 f

当遇到第二个染色玻璃时,当前层的信标光柱颜色为上一层信标光柱颜色和当前层染色玻璃颜色的平均混合。如第一层为红色(176,46,38),第二层为蓝色(60,68,170),则第二层的信标光柱颜色为:(176+60)/2=118, (46+68)/2=57, (38+170)/2=104, #763968。

若第三层染色玻璃为橙色(249,128,29),则第三层的信标光柱颜色为:(118+249)/2=183.5, (57+128)/2=92.5, (104+29)/2=66.5, #B75C42。

从第二层开始,每一层的信标光柱颜色都是上一层的信标光柱颜色和当前层的染色玻璃颜色的平均混合。

信标光柱显示

通过上一节计算出的信标光柱颜色并不是最终在游戏中显示的颜色。在游戏资源中有一张纹理贴图:

/assets/minecraft/textures/entity/beacon_beam.png

用计算出的颜色值与这张纹理混合,就是最终在游戏中渲染出的信标光柱。

信标颜色大全

使用穷举法可以计算出各种染色玻璃排列下信标光柱的颜色。

第一列“生颜色”是与beacon_beam纹理混合前的颜色,第二列“渲染颜色”是生颜色与默认纹理混合后最终在游戏中渲染的颜色。

第三列染色玻璃排列使用上面的颜色列表中的颜色编号,最左边为游戏中最下边的染色玻璃。

高版本游戏(1.21+)使用整数计算混合颜色,低版本使用浮点数计算,最终在游戏中呈现的颜色有细微差别。本文提供的是高版本。

信标_1.21.zip (压缩后50.5 MiB)