Minecraft是如何进行光照处理的?

27

我熟悉的只有漫反射光照模型,但这看起来比那个要复杂得多。

4个回答

30

每个方块都有一个从15到0的光照级别。每个级别比上面的级别少20%。如果一个方块包含一个光源,则该方块获得该光源的亮度,否则它会比最亮的相邻方块少1个等级。

阳光是特殊的,它没有竖直衰减。


3
这只是一个思路,相邻的方块(通过角落连接的方块)在这个算法中会被视为邻居吗? - Jess
@Ben 在这个计算中,对角线块不是相邻的。 - Bradley A. Tetreault
你确定Minecraft与延迟着色无关吗? - McLovin

24
虽然Loren的回答大体上是正确的,但我想补充一下:Minecraft Wiki 有进一步的信息。
日光和月光的工作原理是通过使没有实心方块覆盖的空气和玻璃方块发光,并与当前亮度(白天为15,晚上为7,在黄昏/黎明之间)同步。
Loren提到的衰减意味着等级0仍具有0.8¹⁵·100%=3.5%的亮度(引用自我的Minecraft Wiki编辑)。
Beta 1.3引入的平滑照明是通过使用相邻方块的光值生成渐变来实现的。

我认为平滑照明是通过对于每个角落取相邻的方块来实现的。 - eap314

2
Minecraft中的光源如下所列:当然,在雷暴期间的阳光和地狱的光是例外情况:如果光强低于7,实体将会生成。这两个光强均大于7,但是生物仍会生成,因为在地狱中,它表现得像夜晚一样,而且由于雷暴改变了白天的“时间”,生物确实会生成。
Beacon  15
End Portal Block    15
Fire    15
Glowstone   15
Jack o'Lantern  15
Lava    15
Redstone Lamp, when powered 15
Sea Lantern 15
Torch   14
Furnace, when active    13
Glowing Obsidian    12
Nether Portal Block 11
Redstone Ore, when touched  9
Ender Chest 7
Redstone Torch, when on 7
Brewing Stand   1
Brown Mushroom  1
Dragon Egg  1
End Portal block    1

其他

Sunlight    15
Sunlight, during Rain or Snowfall   12
Sunlight, during a Thunderstorm 10
Moonlight   4

(引自此网站:https://minecraft.gamepedia.com/Light#Sources_of_light)

光是 Minecraft 中一个重要的元素,它可以影响玩家、怪物和植物。光源可以通过放置火把、熔岩桶、红石灯等方块来获得。光源还可以从天空和一些方块中传播出来。光的亮度范围是 0 到 15,其中 0 表示完全黑暗,15 表示最亮。

光源对游戏有很大的影响,它可以防止怪物生成、加速作物生长、提高动物产量等。因此,在 Minecraft 中,了解光源的来源和使用方法非常重要。


2
如果你将光源放在一个平坦的黑暗地方,你会得到一个45度旋转的光的正方形,中心在光源处。 大小等于中间的光值 自然光值如下:
晴天:15 雨天:12 带雷的雨天:10 夜晚:4 夜晚有雨/雷声:4
请注意,雷雨会像夜晚一样运作-你可以睡觉,怪物会生成等等。
如果这个答案得到1分,那就是一个记录!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接