portedboar44215 发表于 2023-9-30 19:15:33

Minecraft延迟渲染从入门到精通#1——基本文件结构以及global.json教程

本帖最后由 portedboar44215 于 2024-2-5 20:45 编辑

零、介绍

众所周知,mojang在Minecraft bedrock1.20.30.20起添加了延迟渲染功能,大大地提高了基岩版画质。其实官方也有相应教程,但是由于原文无中文翻译且较多专业名词,导致教程生涩难懂。于是我基于官方文档创作了这个教程系列

一、认识文件结构

首先介绍一下延迟渲染光影包的最基本文件结构
🗃️延迟渲染示例包.mcpack
📁lighting
↳📃global.json(负责全局定向光照)
    📃atmospherics.json(负责环境光散射等)
📁textures
↳📁blocks(方块材质包)
    …(其他)
📃manifest.json(材质清单文件)
📃pack_icon.png(材质包封面图片)
https://cdnjson.com/images/2023/09/30/rp_file_structure.png
图片来自Microsoft Learn

二、将材质包识别为延迟渲染包

首先,创建一个清单文件(manifest.json)
示例:
{
"format_version": 2,
"header": {
    "description": "示例材质包",
    "name": "延迟渲染示例材质包",
    "uuid": "a11b58f3-af08-4801-838f-682ef391f9d6",//建议更改uuid
    "version": ,
    "min_engine_version":
},
"modules": [
    {
      "description": "示例材质包",
      "type": "resources",
      "uuid": "131b2eba-90ab-4fd9-be83-f07934aa76ad",//建议更改uuid
      "version":
    }
],
"capabilities" : [ "pbr" ]
}
在末尾大括号前添加 "capabilities" : [ "pbr" ] ,以使Minecraft将其识别为pbr材质包

三、定向光照global.json设置

在材质包根目录/lighting文件夹内创建名为global.json的文件
示例:
{
"format_version": ,
"directional_lights": {
    "sun": {
      "illuminance": {
      "0.0": 1.0,
      "0.25": 400.0,
      "0.35": 20000.0,
      "0.5": 109880.0,
      "0.65": 20000.0,
      "0.75": 400.0,
      "1.0": 1.0//太阳光照强度
      },
      "color": [ 255.0, 255.0, 255.0, 255.0 ]//太阳光照颜色
    },
    "moon": {
      "illuminance": 0.27,//月亮光照强度
      "color": "#ffffffff"//月亮光照颜色
    },
    "orbital_offset_degrees": 3.0//定向光照角度
},
"point_lights": {
      "colors": {
            "minecraft:soul_torch": "#FFFFFF"//自定义点光源
      }
},
"pbr": {
      "blocks": {
      "global_metalness_emissive_roughness":
      },
      "actors": {
      "global_metalness_emissive_roughness": "#0000ff"
      }
}
}
1.材质包中时间的表示
示意图:
https://learn.microsoft.com/en-us/minecraft/creator/documents/media/deferredlighting/key_frame_times_of_day.png
图片来自Microsoft Learn
0.0:午夜
0.25:日出
0.5:正午
0.75:日落
2.更改日月偏转角度
首先找到global.json中的"orbital_offset_degrees": 字段
可在冒号后添加偏转角度(角度制)
示例:
"orbital_offset_degrees": 45
也可配合时间达到更好的效果
示例:
"orbital_offset_degrees": {
      "0.75": -45.0, // 日出
      "1.0": 0.0, // 中午
      "0.25": 45.0, // 日落
      "0.0": 0.0 // 午夜
      }   
效果展示
更改前      
https://cdnjson.com/images/2023/09/30/122056iat6kv2jj90l00a0.png
更改后
https://cdnjson.com/images/2023/09/30/125309szd2up800kqyhmhq.png
3.更改日月照度
有时候,你可能会觉得示例文件中的白日亮度过高,就可以更改文件中的"illuminance": 后的值来解决(单位:勒克斯)
例如:
"illuminance": {
      "0.00": 1.0,
      "0.25": 10.0,
      "0.35": 400.0,
      "0.50": 5000.0,
      "0.65": 1000.0,
      "0.75": 40.0,
      "1.00": 1.0//太阳光照强度
注:此参数不适用于部分不支持自动曝光的GPU
4.日月光照颜色
该参数存储在 "color": 后,可使用hex颜色代码或RGB颜色代码
示例:
hex:
"color": "#ffffffff"
RGB:
"color":
当然,也可搭配时间达到更好效果,格式同光照角度,此处不做展示
效果:
https://cdnjson.com/images/2023/09/30/-2023-08-30-12110701.png
5.自定义点光源(仅1.20.40.20+可用)
示例及格式如下:
"point_lights": {
      "colors": {
            "minecraft:soul_torch": "#FFFFFF"//(格式:"物品命名空间": "hex颜色代码")
注意事项:自定义点光源目前只支持部分方块
效果:
https://cdnjson.com/images/2023/09/30/133906rmj4xxyms14z4jwt.png

至此,关于延迟渲染光影包基本结构以及global.json的教程已经结束,感谢观看!
祝所有读者都能做出好看的延迟渲染光影包!

其他资源:
样板包下载(来自官方教程,可直接基于此包进行创作):https://pan.huang1111.cn/s/dNgqcV
Microsoft Learn教程地址:https://learn.microsoft.com/en-us/minecraft/creator/documents/deferredlighting#deferred-lighting-jsons

同系列教程(未完工)
Minecraft延迟渲染从入门到精通#2——pbr材质包制作教程
Minecraft延迟渲染从入门到精通#3——大气折射参数自定义教程

24k级纯正大孝子 发表于 2023-11-23 00:21:38

6666666666666

Boven 发表于 2023-12-3 08:10:26

好冷清的评论区

哑仆 发表于 2023-12-3 18:44:28

支持好友(虽然我不想做)

WZMint 发表于 2023-12-4 14:58:23

狠狠地支持一波(虽然我不玩1.20

klee@ys.com 发表于 2023-12-4 19:25:40

请问颜色代码分别是哪些?

klee@ys.com 发表于 2023-12-16 11:14:12

我做了一个特别阴间的

Liziyv 发表于 2025-2-1 22:50:33

学不会...

一桶热水123 发表于 2025-2-3 11:07:40

感谢分享!
页: [1]
查看完整版本: Minecraft延迟渲染从入门到精通#1——基本文件结构以及global.json教程