照明API

照明API

制作聚光灯/矩形灯光API模组

光照API

开发者库 · NeoForge 1.21.1

光照API是一个基于着色器的光照库,适用于需要超越原版方块光照的Minecraft模组。

它最初源自为机械动力:光照开发的照明系统,其中投影仪需要定向光、可见光束和实时阴影。光照API没有将该渲染器局限于单个模组,而是将其转化为一个可复用的系统,供其他模组在此基础上构建。

目标很简单:一个模组只需描述它需要什么样的光,而光照API负责其背后的渲染工作。

投影仪可以创建窄光束聚光灯。 荧光天花板面板可以创建矩形区域光。 移动的机器可以在运行时更新其光的位置和方向。

依赖模组无需自行实现阴影贴图、体积渲染器或多人游戏同步。

超越原版的光照

Minecraft的正常光照系统擅长照亮方块,但并非为方向光或体积光源而设计。

光照API添加了一个独立的着色器驱动光照层,能够渲染具有实际位置、方向、形状和范围的光。

目前支持的光类型包括聚光灯矩形区域光

光还可以投射来自世界几何体和实体的动态阴影,使物体能够物理阻挡光线,而不是效果简单穿过它们。

体积渲染可以使光本身在空气中可见,这使得该系统适用于投影仪、荧光照明、探照灯、工业环境、恐怖地图及类似效果。

作为API设计

光可以在游戏运行时创建、更新和移除。

它们的位置、旋转、强度、颜色、范围、尺寸和其他渲染属性可以动态改变,使同一系统既能支持静态灯具,也能支持移动光源。

多人游戏同步内置在库中,以便服务器控制的光能为连接的玩家一致呈现,而实际的GPU渲染保持在客户端进行。

当光需要跨越世界重载或服务器重启时,也支持持久化光。

性能

光照API围绕一个事实设计:世界中可能包含远不止一个光源。

因此,诸如阴影渲染等高开销的渲染工作与较低成本的光渲染分离,使得系统能够优先处理附近或重要的光,而不是将世界中的每一个光都视为同等开销。

这对于包含许多重复光源的环境尤其重要,例如荧光天花板面板。