MineGraph Docs Help

基岩版光影 发展和轶事

阅前须知

相比 Java 版光影的发展路程,基岩版光影可谓是相当有着传奇色彩的,其基本均属于原创光影,并且国内作品在国外也有着一定地位。因此我们将其单独提出了一篇文档来介绍。

由于其“传奇色彩”,再加上 基岩版光影圈的混乱程度,难免会出现“历史是胜利者书写的”,以及史料丢失的情况。我们会尽力尝试给大家一个减少非必要主观性和偏见的历史介绍,也欢迎向我们提出修改建议。

此文档中仅着墨于移动平台(包括原携带版)和 Win10 平台光影发展史。

如果你想更深入地了解国外基岩版光影,可以前往 百度贴吧 - minecraftpe吧 - 【持续更新】转自国外光影渲染~各种版本~ 了解。

渲染龙之前:脚镣之舞

总述

最早的基岩版光影基于 OpenGL ES 的 GLSL Android / IOS 或 DirectX 的 HLSL Windows 10 。由于接口限制,基岩版光影可以实现的效果非常少(甚至比 JE 1.16 之后的原版资源包着色器还少),并且为 向前渲染管线 1 ,但仍可以通过一系列奇技淫巧实现基于物理的渲染。平和的日子就这样过去,直到 SDGP 宣布胎死腹中,而微软宣布和英伟达为 Minecraft 基岩版带来光线追踪。

[1] 在每个着色器中,立即在传入的几何体上计算诸如阴影和反射等效果。

第一阶段:启程

第一缕光

关于基岩版史上第一个光影,有两种说法。它们同样仅有着最基础的调色和基于天空光照的阴影效果,已无法考证具体细节。

目前能找到最早的历史痕迹,是在 2014.4.2 发布于 MCPEDL 平台的第一个光影模组 Star's Shader Mod(本文简称 SSM)。
这个光影最早可能出现于 2013 年的 PE 0.7 ,而 MCPEDL 平台于 2014 年创立。但其性质存在一些争议,有人认为它和以后的光影不是一种东西,而是接近某种 JS 1 和光影的结合体。

来源于贴吧的记载 则表明,在 2014.11.14 发布于 MCPE Master 平台的第一个光影 Ryfol's amazing OpenGL ES 3.0 Shader (本文简称 RAS)是更加公认的第一个光影。

[1] 即 JavaScript ,能修改游戏的脚本插件,类似于模组但功能较少。

Shader1-1.jpg
Star's Shader Mod

Shader1-2.jpg
Ryfol's amazing OpenGL ES 3.0 Shader

国内光影的起步

国内的第一个光影,一说是苦力怕光影(CSPE / Creeper Shader PE),但由于资料缺失故无法考证。根据苦力怕本人所述,当时的手机 SOC 硬件图形接口支持并不完善,缺少 OpenGL ES 3.0,导致有很多手机连前文第一个光影 1 都无法运行。苦力怕本人也是如此,因而才有了苦力怕光影。

在这个阶段,各个光影的发展相对比较独立,同时发展比较平缓,并没有太大事件的发生。

[1] 指 RAS。SSM 基于 OpenGL ES 2.0。

CSPE0.14.jpg
早期苦力怕光影

第二阶段:危机与成型

第一次光影危机

在 0.15 版本,Mojang 对资源包内置着色器进行了大幅度的更改,使得整个国际光影圈陷入了一段时间的沉寂期,许多昔日王者也在此版本落幕,是渲染龙危机之前光影圈损失最大的一次危机。

这或许也是国产光影最艰难的一段时期。一大批老牌国产光影倒下。就算是苦力怕也不例外,光影不更新,本人更是长期消失。在国产仅存的几个光影以「次 时代特效」东山再起后,又不幸偶遇国外同时期 KMPE、SEUS PE 1 等一系列强如怪物的光影。

[1] 也就是 GLSL PE 光影。由 巴西裸男 Gabriel Paixão 创作,其与 Java 版的 SEUS 光影并无关系,后来在 Java 版光影作者们的讨伐下将名称改回 GLSL PE。

KMPE.jpg
KMPE 光影,基岩版首创天空层噪声云、水反云

SEUS.jpg
SEUS PE 光影,凭借着特制的水反云,在当时被誉为 伪水反、真 SEUS

再度启程

随着苦力怕光影持续进取,赶在了下一次光影危机之前,再次跟上了国际光影发展的梯队。不过此时国内的其他光影已经转变成了低配光影,仍是国产光影在整个发展史中比较黑暗的时期。

伴随着国内外光影圈在这几个版本的发展,于 1.2 版本,光影效果已基本成型,大家都开始应用了天空层噪声云和水波。在物理渲染引入之前那漫长的时代里,基本也只是对云和水以及其他一些细节上再进行效果增强了。

CSPE1.2.jpg
BE 1.2 时期的苦力怕光影

第三阶段:二次危机&黄金时代

第二次光影危机

BE 1.4 ~ 1.5 ,随着两部分水域更新的到来,Mojang 改变了水面渲染方式,导致所有光影的水面检测失效。

在此阶段弃坑的作者数量并没有第一次危机时那么多,不过也在短期内造成了不小的影响,让各家光影无水可用。

新鲜血液与光影圈「导师」

伴随 BE 0.15 时代光影圈的消沉离去已久,光影圈已经很久没有新人作者和第二个高端光影了。在这个时代,终于迎来了两位不师从别人,与前代光影圈无直接关系的全新作者,他们是 闲事杂谈关于本人 (这真的是他们的 ID),分别带来了 ABC 光影与 DSPE 光影。这两位光影作者因为在之后收了众多徒弟,为光影圈带来了新的发展热潮,被现代光影圈认为是两位“导师”。

随着上面二位作者的收徒,很多对光影有兴趣的新作者们都加入了光影圈,带来了许多新的著名光影,形成了前所未有的光影热潮。由于 DSPE 本身也有师从 ABC 的部分,所以当时这些受教导的光影们组成了一个不算正式意义上的联盟。后来以 ABC 和 DSPE 光影为主的光影圈管理组成立,宣传和防盗版等事从单个光影拓展到了多个光影共同负责。

现代基岩版光影圈的光影、管理组和合作理念其实很多也是从这个体系继承过来的。不过在当时单干的光影实际仍然不少,例如苦力怕、高乐高与青木源一众。并且由于 CSPE 误判 ABC 光影抄袭,导致了新旧光影圈的暗中对立,现在已经和解。

ABC.jpg
ABC 光影

DSPE.jpg
DSPE 光影

BE 1.7 ~ 1.8 版本之间,Mojang 又更新了部分代码,导致光影再次失效。不过此次问题非常小,作者们迅速就能解决问题。网易版甚至做了特殊兼容,使得光影作者不需要在网易版解决这个问题,可以直接无缝过渡。

插曲:光影付费与版权意识

在这个时期,大多数的国内基岩版光影都是付费的,因此产生了很多不愉快的事件。CSPE 成立了自己的“法务部”,而 ABC-DSPE 体系光影圈则共同联盟对抗外传。到了后期 ABC-DSPE 体系光影圈也产生了专门反外传的部门,称“MAIO”。其职能还拓展到了管控国外光影被恶意搬运到网易版类的事件,可惜越到后期越无能为力,于是有了后来的“HSPE 怒斥网易”事件。

特效再进化与 Win10 版适配潮

在此阶段的后期,光影总体特效迎来了再次进化,甚至出现了体积云与视差水等效果。此时基岩版光影效果已经逐渐接近瓶颈,并且很多光影作者都有了电脑,所以一些国内外作者们开始向 Windows 10 平台基岩版发展。

Tint
Tint Shader,由青木源制作。不过也仅仅是 PC 的性能让云水内卷再上了一个台阶而已。

Super Duper 图形包

SDGP 是一个官方已终止开发的基岩版项目,也被称为 4K 更新 。于 2017 年 E3 游戏展会上宣布,在 2019 年因工作室声称技术力不足宣布弃置。该图形包的震撼效果和可自定义性曾被认为是基岩版光影唯一的救星。

后来有推测其弃置可能与渲染龙和英伟达光追合作项目的施压有关,并且在该项目的宣传片中出现了明显的图形问题,例如体积光的方向是完全错误的,再加上 Mojang 的图形技术实力非常低下,乃至之后的 BERTX 甚至是英伟达实习生写的,让人极度怀疑其真实性如何。

不过现在 SDGP 已经彻底消逝在历史长河之中了,我们也没办法继续进行深层的资料挖掘。

Minecraft Wiki - Super Duper图形包

SDPG 宣传片国内搬运

SuperDuper
SDGP 官方演示图,可见明显的体积光方向错误

渲染龙初临:曙光还是终末?

总述

为了迎接即将到来的光线追踪,雷德蒙德工作室联合英伟达的开发人员为基岩版编写 (缝合封装) 了一套渲染引擎,其名曰渲染龙 (Render Dragon)。

理想情况下 ,带有渲染龙的 Windows10 基岩版能够通过其调用 RTX Nvidia/ RX 6000 AMD/ Arc Intel 系列及以上显卡的光线追踪加速单元以提升光线追踪的效率,而其他平台上其则能够起到优化作用。

然而事情并不总尽如人意,渲染龙的实际表现过于糟糕:

  • 其算法加密破坏了很多东西,除了光影还有例如区块显示、红石能量显示、亮度显示、夜视、透视、小地图这些原本都能由第三方光影实现的功能。而它们的消失给一些玩家带来了不少困扰。

  • 官方光追虽然在准确性上力压 Java 版一头,但其主要得益于 DirectX RayTracing,在代码质量和细节调校上做的并不尽如人意,也对主打写实风格的地图与纹理创作者造成了很大困扰。

渲染龙覆盖到了各种 PC、移动设备及主机的基岩版上,替代了原本的渲染方案,而基于原始方案的第三方着色器也受到了牵连,直接导致了本时期第三方光影的灭绝。

这些也是渲染龙在开发者群体内风评不佳的原因 (事实上在玩家群体内也没好到哪去)

但网易基岩版后处理接口的出现,为事情带来了转机,让作者们看到了新的曙光。

旧时代光影的尾声

光影圈的新思考

故事从有一位求学者从红石圈来到了光影圈开始。他正在制作基于 Addons 用于红石的辅助工具(例如红石能量显示等),但效果并不理想,于是转而开始利用着色器来编写,并意识到了着色器的巨大潜力。他来到了基岩版光影圈,并开始寻求解决方案,但发现没有人能帮到他,便暂时不了了之。后来红石圈的一些人提出了请求,希望把红显和光影混合在一起,自此,他开始思考:为什么不自己写一个呢?于是开始了自学试错之路。

后来,他发表了自己的成果,被拉入了 ABC 光影内群,又恰逢 闲事杂谈 想找个人接手光影,就相中了他,打算帮一把。接下来的一周内 ABC 教学了各种光影相关的常识。据他所说,ABC 的教学非常有用,但并不是在图形学上。

根据重生光影的作者 老楚 的回忆,可以说 2020 年之前绝大多数人都是稀里糊涂的,只是在写光影,而没有接触到图形学。而前面提到的那位新作者,就是 Origin 光影作者 linlin ,作为一个比较注重理论的人,在有了 ABC 传授的知识后,开始了基岩版光影的现代改革之路。

物理渲染体系引入

基岩版早期光影的各种效果都是相对简单分块实现,这种方式的各种效果之间毫无联系,很不自然,甚至可以轻松地把两个光影的部分效果混搭。在经过了长久的云水内卷后,终于由 Origin 光影改变了现状,率先引入了 PBR。

引入物理渲染带来了诸多好处,这是基岩版光影第一次得以还原现实的色彩,并且协调了各个特效之间的变化,例如整个天空可以完全正确的反射了,阳光的朝向也不再是错误的。由于天空几乎完全由着色器生成,在整个光影中是被限制最少的,所以后期甚至还做到了 Java 版同款的星球大气的渲染(当玩家飞得足够高时可以飞出大气)。

Origin.jpg
Origin 光影

随着物理渲染体系的实现,PBR 材质也在基岩版被实现了。第一个将 PBR 材质特性引入的国内光影是 CSPE,不过由于 CSPE 的方案只是追求功利而被粗糙地创造出来,既不可以读取真正的 PBR 贴图,也不可以正确的渲染 PBR 效果,特性支持相当残缺。

为了正确的发展 PBR 材质,后来各路光影作者提出了不同的加载标准。一般认为国内第一个正确实现 PBR 材质效果的是 Origin 光影;第一个成功做到读取原始法线和 PBR 贴图的是 ABC 光影。

  • 透明度标准

    起源于 CSPE,通过指定纹理贴图透明度来决定效果。此种方式简单便捷,不需要引入额外贴图和文件,但是局限非常大,无法做到多种物理性质叠加和强度控制,也无法引入法线贴图。后来 Origin 光影扩展了这种方式的适用性,通过充分利用 256 位透明度,转化为二进制后可以存储八个 0 或 1,此时足够用于精细的编码方块物理性质,不过也仍然无法支持法线贴图。

  • 四合一标准

    最初由 GLSL PE 光影作者 Gabriel Paixão 提出,由国内的 YSS 光影和国外的 OSBES 光影率先实践并公开。这是当时圈子内最为流行的 PBR 贴图标准,通过人工将四张贴图合并到一张贴图来读取,不过此种标准需要额外编写纹理的 .json 配置文件,因此比较麻烦,但是其是 PBR 特性支持最完全的标准。另外由于四合一的特性,导致一些特殊方块存在问题,如自带顶点颜色且纹理为 Targa 格式的草方块。

    四合一标准下各纹理在原贴图中的拼接位置

    颜色纹理

    PBR 纹理

    法线纹理

    检测纹理

    其中检测纹理用于检查是否为四合一格式贴图。

  • 分散贴图标准

    国内由 ABC 光影率先实现,做到了直接加载法线和高光纹理,由光影自动拼合。也成功让资源包内的贴图可以像 Java 版一样分散开来,不用进行人工合并。这种方式存在着非常多的问题和限制,最后也没有出现在任何公开发布的光影中(用于 PBR)。

PBR.jpg
第一个国内公开发布的四合一材质——秦,由 金丹哦 制作原 Java 版, Σοβιετική Ένωση 协助移植基岩版

光影独立与弃坑潮

在物理渲染推广开来后,先前的例如 YSS、HSPE 等光影都转变为了独立原创开发,成为了第一批走进新时代的光影。同时随着渲染龙的威胁迫近,与圈子作者大部分开始备战高考,ABC、CSPE 等光影接续在此阶段内宣布了停更,光影圈再次迎来了作者流失潮。

大部分在此阶段全新独立开发的光影都跨越进了即将到来的延迟渲染时代,横跨 8 年的由接近 30 个携带版和基岩版旧时代光影建立的体系就此走向终结。

渲染龙的到来

在 1.15 测试版中,渲染龙伴随着基岩版 RTX 被一同宣布了。此版本属于 RTX 特供测试版,仅支持 Win10。当各位光影作者怀抱着期待地加入测试后,发现了此版本中无法实现传统光影和渲染龙完全加密。

在渲染龙正式实装之前,经历了一段“反复横跳”的时间,期间 Mojang 不断在测试版上引入和移除渲染龙。直至 BE 1.16.200.51 ,Mojang 率先在 Win10 版本上正式启用了渲染龙,宣告了全体 Win10 光影的覆灭,给社区造成了极大的恐慌。

FanFuHengTiao.jpg
“反复横跳”

国外社区在 Minecraft 反馈网站上发布了一个投票,请求 Mojang 开放渲染龙的接口。这个投票的参与人数在当时的 Minecraft 反馈网站上属于是投票数最高的一批,哪怕是在不同的板块里。

随着渲染龙的迫近,国内社区也开始逐渐忧虑起来,认为这个投票或许是拯救社区的唯一方式,于是社区委托了一位交好的另一个圈子的人士,在 MCBBS 购买了一个顶部 Banner 宣传位来发布帖子,以呼吁人们参与投票。虽然 MCBBS 已经倒闭,但我们仍然留下了帖子的大部分内容,尽管并不完整。

社区在 MCBBS 的公投宣传(超长图片,点击展开)

Gong tou

    在经历了渲染龙多次反复横跳的实装,以及社区公投并未获得任何回应后,渲染龙最终于 BE 1.18.30.20 正式版在全平台实装,旧时代光影体系至此正式覆灭。

    网易基岩版:新希望

    2021 年初,网易就已经更新了一些国际版没有的接口,使得网易版光影解决了国际版无法获取太阳位置和接缝水波等问题。

    2021 下半年,网易还添加了后处理功能,作为提供给模组的新功能。但模组作者们并不太注意到这个东西,光影作者们更是不知情,并且应用在光影上也必须编写模组才能使用,因此之后的几个月里,这个功能一直没被人们注意到。

    2021 年底,开发者 红石公司 在模组资源区上架了第一个使用后处理特性的视觉效果增强模组,支持景深等从前被认为不可能实现的特性。VSPE 光影作者 Vortex 注意到了之后,便开始了光影后处理的尝试,成功实现了反射场景,轰动了整个光影圈,基岩版光影就此开辟了新纪元,也代表着国际版光影与网易版光影的正式分离。

    HouChuLi.jpg
    第一个后处理组件 by 红石公司

    VSPE.jpg
    VSPE 3 水反

    随着国际版渲染龙的迫近,一些光影作者开始向网易版转移并研究后处理光影。然而网易后处理虽然可以突破以前的限制,但提供的接口并不多,导致再次进入瓶颈期;并且由于通道数量不足,作者们不得不将整个屏幕一分为四,来存储通道制作水反,导致当时所有光影都是半分辨率的。

    再者当时人们并不知道网易的实际用意,很多人认为这些接口是单纯提供给模组的,没曾想过给光影使用,导致社区的未来方向仍不明朗。

    基岩版光影圈与 MGC

    2021 下半年,Java 版团队 HyperCol 建成了 Minecraft 图形学社区(MGC),社区意在关联团结光影和纹理开发者们,同时为普通玩家提供便利。之前 Java 版光影圈和基岩版光影圈基本是互相独立的,在后来基岩版光影圈管理也参与进 MGC 管理组,并在圈子内进行宣传后,两个光影圈子间作者的交流和互动也越来越广泛了。弃坑潮中留下来的光影作者们和 MGC 组成了现代基岩版光影圈的秩序体系。

    后渲染龙时期:革新与未来

    总述

    从 2014 年的第一个光影开始……光影圈已经历许多。这个时代所蕴含的奇迹之多绝非前人的奇技淫巧所能构想,不但拥有阴影水反等 Java 版效果,更有基岩版高清修复的全新可能。长久以来对 HAL 光影的坚持将在这个时代产生重大变革。前进吧,实现光影圈未来的美好愿景。

    在这个时期,光影圈可以说迎来了“前所未有之大变局”。随着渲染龙的延迟渲染接口发布,光影发展分为了四条路线:渲染龙向前渲染 1 、渲染龙延迟渲染、网易版后处理、基于 RTX 的修改(国内无人参与)。

    开发者们也不再只专注光影开发,且新增了不少来自其他圈子,对光影圈新局势感兴趣的开发者,例如 茶匙ddfveka末小影Vortex青色剑士 等人。他们并不一定都创作光影,但没有他们贡献相关内容 2 ,基岩版光影就无法继续发展下去。

    同时,光影圈的发展开始触及到了官方发展的层面,以至于很多未来项目都存在保密协定。因此本部分中无法向大家详细的描述未来会发生什么,但也还请各位玩家抱有期待。

    [1] 原 HAL 光影,也就是传统光影,但编写在渲染龙上导致了更高的难度和新的问题。
    [2] 渲染龙破解、注入工具和后处理前置等非光影直接内容,以及未来的官方保密内容开发。

    屠龙之路

    虽然网易版带来了后处理光影,但光影圈的各路作者也意识到不能坐以待毙,于是继续尝试找到破解渲染龙的方法。恰巧的是,有一位贴吧的开发者发现,渲染龙实际仍基于 bgfx (一个开源图形引擎库,之前基岩版就一直在用),因此渲染龙的破解工作正式在圈子范围内展开。

    仅在 BE 1.18.30 更新后的不到一个月内,结合那位贴吧开发者的理论,由 茶匙ddf 之前一直在主导开发的破解工具 MaterialBinTool 便成功支持了将着色器打包回游戏,完成了功能的闭环。

    在此之后,渲染龙虽被成功破解,但由于破解团队收到微软的 DMCA 致函 1 ,以及新的光影编写方法过于麻烦 2 ,基岩版光影仍然沉寂。

    [1] DMCA 致函是一种版权警告,当时团队将代码上传到了 GitHub,被致函删库。
    [2] 当时编写光影需反编译游戏后进行编辑,再将特定文件回编译并放到固定文件夹替换相关文件,然后重启游戏。

    国际版的发展与未来

    2022 年底,一位国际版开发者所放出消息,他们发现了 BE 1.19.40 的保密开发版本加入了延迟渲染功能。经圈内光影作者与其联系后,开启了国内基岩版光影的延迟渲染之路。

    2023 年初,随着 Mojang 在 Win10 版正式启用延迟渲染功能,国际版也终于在网易后处理光影之后,正式实现高级光影效果(与网易后处理光影初期有水反无阴影相反,延迟渲染初期有阴影无水反)。

    2023 年 8 月, BE 1.20.30.20 支持了除苹果外全平台的延迟渲染功能,标志着国际版延迟渲染的正式全面铺开。

    随着延迟渲染光影的不断发展,开发者们意识到了延迟渲染的局限性。包括但不限于修改自由度低,官方经常出现各种令人窒息的更新。因此开发者们相当恼火,更接受网易的后处理,国际版延迟渲染光影仍然一蹶不振。

    2024 年 10 月, 茶匙 与官方进行了会谈并达成了合作,基岩版高清修复(达到完全体 Java 版光影的能力)将有机会从幻想变成现实。由于具体消息均为保密内容,且 茶匙 本人提到不一定能真的成为现实 ,因此我们只能永远相信美好的事情即将发生,对未来抱有期待

    YanChiXuanRan.jpg
    目前的延迟渲染

    基岩版 RTX 的发展与未来

    继渲染龙被破解之后,RTX 光影的破解也被提上了日程。2022 年 7 月,RTX 被 茶匙ddf 成功破解,并且可以做到修改效果,但同样遭到了微软的 DMCA。

    结合破解人员和其他光影作者的理论分析,HyperCol 发布了一则深挖渲染龙和 RTX 内在本质的 视频 。通过这则视频,足以窥见 Mojang 开发组和英伟达是如何不作为且频频爆典的。

    2023 年 5 月,一个由国外社区主导的 RTX 大型修改项目 Better RTX 正式宣发,他们此前曾一直致力于这个项目持续了半年,标志着社区 RTX 修改项目的正式诞生。

    目前,官方再也没有对 RTX 进行任何更新,且 Better RTX 的更新也逐渐放缓,RTX 的未来将何去何从,没有人知道。

    RTX.jpg
    目前的 Better RTX

    网易版的发展与未来

    令人们兴奋的是,网易承认后处理光影的地位,并会听取光影作者们的意见来改进后处理。因此网易后处理光影迎来了空前的开发热潮。

    随着网易增加接口,以及开发者们对原有接口的进一步探索挖掘,实现了诸如分辨率提升、实时阴影、可触碰体积云、SSAO 和 SSGI 等一系列在基岩版上更不可思议的效果。自此网易后处理光影的人气基本完全盖过了国际版延迟渲染。

    目前网易版也面临着有关渲染龙的新挑战和机遇,由于同属保密内容,所以不在此过多透露。

    Netease.jpg
    目前的网易后处理

    Last modified: 11 November 2024