Minecraft的ShaderTextures
我相信部分人接触新版本后,对 setShaderTexture 有很多不解,基本抄原版代码实现功能。
RenderSystem 中的 shaderTextures 预留的有 12 个,都代表什么呢?
1 是 OverlayTexture
OverlayTexture 是 “覆盖纹理”,负责实体受伤和爬行者爆炸时的效果。
2 是 LightTexture
可以用 RenderDoc 查看 Sampler2:
lightMap 的纹理有 16 x 16,FULL_LIGHT 对应的坐标为 (15,15)。
因此,若光照大于 FULL_LIGHT,则会出现各种问题,这取决于当前管线的着色器的行为。
lightMap 的横轴为 block,纵轴为 sky,观察导出的 lightMap 可以看出,在 MC 原版的行为中,若方块光足够强则可以无视天光的影响。
Minecraft的ShaderTextures
http://tt432.github.io/Minecraft的ShaderTextures/