OptiFineDoc翻译 custom_lightmaps.txt

===============================================
OptiFine的自定义光照贴图的说明
基于McPatcher的自定义光照贴图
===============================================

自定义光照贴图
================

OptiFine让你可以自定义游戏中的光照。

原版光照是如何工作的
=============================

每个方块都有两个范围为0到15的光照等级,一个是天空亮度,另一个是方块亮度。
被阳光直射的方块具有值为15的天空亮度,与之毗邻的位于阴影下的方块的天空亮度为14,以此类推。
深埋地下,且远离任何能看到天空的方块的方块的天空亮度为0。方块亮度也类似。
一个火把方块的光照等级为14 (荧石为15) ,每远离一个方块,光照等级下降1。

为了生成你在游戏中实际看见的光照,Minecraft使用了一张16x16的光照贴图。它的两个轴分别对应两个种类的16个光照等级。
如果一个方块具有方块亮度x和天空亮度y,那么坐标 (x,y) 就会作为它的光照贴图坐标。
光照贴图不在游戏的任何文件夹内,但每一帧都会生成。
两个变量影响光照贴图,一天中的时间和火把的闪烁。
通过让整个光照贴图变暗或变亮,Minecraft实现了黄昏/黎明的过渡和火把闪烁,而不是通过调整天空/火把的亮度。

自定义光照
===============

为了创造自定义光照,你需要为每个世界新建一个光照贴图调色板:

    Nether: assets/minecraft/optifine/lightmap/world-1.png
    Overworld: assets/minecraft/optifine/lightmap/world0.png
    The End: assets/minecraft/optifine/lightmap/world1.png

对于overworld(主世界)你还可以创建可选的降雨和雷暴天气调色板:

    Overworld rain: assets/minecraft/optifine/lightmap/world0_rain.png
    Overworld thunder: assets/minecraft/optifine/lightmap/world0_thunder.png
    
只有在定义了主世界调色板时,降雨和雷暴天气调色板才生效。

每个调色板都可以是任意宽度,但高度必须是32或64像素。如果高度为64像素,下半部分将用于夜视效果,这将于稍后讨论。
在32行像素中,上面16行代表阳光,下面16行代表火把的光。
两个列,上半部分的16个像素和下半部分的16个像素,被选择来形成最终用于渲染的16x16光照图的轴线。


模板: images/lightmap_template.png
(由于OptiFine提供的示例看不出对应的颜色了,请参阅images/译者补充的图片/lightmap_sample.png,来源于https://bitbucket.org/prupe/mcpatcher/wiki/Lightmaps)

蓝色代表夜晚,橙色代表黄昏/黎明,青色代表白天,黄色代表闪电
在上半部分,左边代表夜晚,右边代表白天,其间有黄昏/黎明的过渡。
调色板的最右边代表闪电。重申,调色板没有指定宽度,
但是更宽意味着过渡中更多的细节空间。

火把的工作原理类似,但在这种情况下,x坐标只是一个模拟火把闪烁的随机值。
沿x轴的变化将决定火炬闪烁有多明显。
要使火把光线完全稳定,没有闪烁,就要让每一行的所有像素具有相同的颜色。

光照贴图在三个世界 (主世界, 下界, 末地) 中的工作方法都是一样的,但是由于在下界和末地没有昼夜,
"一天中的时间" 值为常量。对于这些世界你可以简单地给0-15行相同的颜色。

夜视效果
==================

在原版游戏中,夜视效果是通过 1.0 / max(R,G,B) 缩放RGB值计算的。
例如,(0.2, 0.3, 0.6) 在除以 0.6之后会变亮为 (0.333, 0.5, 1.0)。
你可以用高度为64像素而不是32像素的自定义光照贴图覆盖这个行为。
需要提供四种调色板而不是两种: normal sun, normal torch, nightvision sun, nightvision torch. 
除了使用32-47行和48-63行,生成光照贴图的方式完全相同。

参考文献
==========
https://bitbucket.org/prupe/mcpatcher/wiki/Lightmaps

评论

此博客中的热门博文

OptiFineDoc翻译 cem_animation.txt

OptiFineDoc翻译 cem_model.txt