Minecraft的ShaderTextures

我相信部分人接触新版本后,对 setShaderTexture 有很多不解,基本抄原版代码实现功能。

RenderSystem 中的 shaderTextures 预留的有 12 个,都代表什么呢?

1 是 OverlayTexture

OverlayTexture 是 “覆盖纹理”,负责实体受伤和爬行者爆炸时的效果。

2 是 LightTexture

可以用 RenderDoc 查看 Sampler2:
RenderDoc

lightMap 的纹理有 16 x 16,FULL_LIGHT 对应的坐标为 (15,15)。

因此,若光照大于 FULL_LIGHT,则会出现各种问题,这取决于当前管线的着色器的行为。

lightMap 的横轴为 block,纵轴为 sky,观察导出的 lightMap 可以看出,在 MC 原版的行为中,若方块光足够强则可以无视天光的影响。


Minecraft的ShaderTextures
http://tt432.github.io/Minecraft的ShaderTextures/
作者
秦千久
发布于
2023年7月8日
许可协议