MineGraph Docs Help

资源包 基本概念

写在前面

资源包、纹理包和材质包的称谓区别:

纹理包

Texture Pack ,是 JE 1.6.1 以前所使用的用于自定义游戏纹理的文件包的正确译名

材质包

Texture Pack 的错误译名

  • 在英文语境中, 材质所对应的英文单词为 Material ,在图形学中这用于描述物体的属性,如金属性、光滑度、自发光强度等。

  • 纹理所对应的英文单词 Texture ,才是用于描述物体表面颜色的单词。

截至 JE 1.6 纹理包被资源包所替代时,这个译名在游戏内仍旧没有修改,于是此翻译便流传了下来,并逐渐波及相关领域 ,现在 Minecraft 中文 Wiki 已经将此翻译纠正,希望大家在以后的谈论中尽量使用正确的译名

资源包

Resource Pack ,是 JE 1.6.1 及以后使用的用于自定义游戏的纹理声音模型 ,乃至渲染的文件包。

何谓资源包?

纹理包出现于 JE Alpha v1.2.2 ,其目的很简单,让玩家能更方便地自定义纹理,而不再需要手动去替换游戏打包内置的文件。

JE 1.6.1 起,资源包接替了纹理包的工作。资源包顾名思义,包含了游戏中所调用的几乎全部资源,包括纹理音频部分原版着色器模型以及方块状态与模型的关系模型如何调用纹理等。

因此,光影可以视为一种特化的资源包。

资源包分辨率

参阅: 术语表 - 分辨率

很多资源包名中会附带有一个标注,通常是类似 32x256x2k 这样的数字+字母格式。 这是资源包纹理的分辨率 ,这里对资源包中的分辨率稍作解释:

资源包中的纹理通常为正方形 ,在动态纹理贴图中,纵向分辨率是横向分辨率的整数倍 。这使得纹理的分辨率标注相比较通常意义上有一些区别

  • 32x64x128x... Nx :表示该资源包的基本贴图尺寸均为

    • 在动态纹理贴图中,纵向分辨率还需要乘以动态纹理的帧数 ,于是最终我们的贴图分辨率为

  • 1k2k4k... Nk :表示所有贴图均为 像素的尺寸,其中

  • 在 Java 版中, ,其中为自然数。

资源包的版本兼容性

粗略区间

JE 1.13 时,Mojang 进行了一轮游戏代码重写,这轮重写包含了一次对方块 ID 和命名方法的统一修改,称为扁平化 ,这也导致了自 JE 1.13 开始,资源包的兼容性出现了断层

兼容范围

备注

Alpha v1.2.2 ~ 1.6.1 13w23a

纹理包

1.6.1 13w24a ~ 1.6.4

资源包(单选)

1.7.2 13w36a ~ 1.13 17w46a

资源包

1.13 17w47a 至今

扁平化后的资源包

对于大部分的资源包,只需要选择在区间内的正确版本,即可正常加载。

有一些例外情况是,Mojang 在某些版本中更改了方块的代码名 ,比如grass )在 JE 1.20.3 中被改为了矮草丛short_grass ),这时候就会导致新旧资源包和版本间的不兼容。

准确区间

虽然在粗略兼容区间内,但有时候资源包列表仍然会标红且提示 适用于<新 | 旧>版本的Minecraft ,这是因为实际上资源包的区间分为更复杂的许多段,避免上述例外情况的发生。

pack.mcmeta

版本区间由资源包内名为 pack.mcmeta 的文件

{ "pack": { "pack_format": 34, "description": "包的描述", "supported_formats": { // 可选字段,需要 23w31a+ "min_inclusive": 17, "max_inclusive": 34 } } }

pack_format 的值定义, descripton 则是该资源包的描述
此外,自 JE 1.20.2 23w31a 开始,其加入了 supported_formats 字段,可以指定兼容版本的上下限。

  • min_inclusive 指定版本下限, max_inclusive 指定版本上限。

  • 也可简写为 "supported_formats": [17, 34]

以下是资源包版本号对应游戏版本的表格:

兼容性表格

pack_format

起始版本

终止版本

1

1.6.1 13w24a

1.8.9

2

1.9 15w31a

1.10.2

3

1.11 16w32a

1.13 17w47b

4

1.13 17w48a

1.15 19w46b

5

1.15-pre1

1.16.2-pre3

6

1.16.2-rc1

1.16.5

7

1.17 20w45a

1.17.1 21w38a

8

1.18 21w39a

1.18.2

9

1.19 22w11a

1.19.2

11

1.19.3 22w42a

1.19.3 22w44a

12

1.19.3 22w45a

1.19.4 23w07a

13

1.19.4-pre1

1.20 23w13a

14

1.20 23w14a

1.20 23w16a

15

1.20 23w17a

1.20.1

16

1.20.2

1.20.2 23w31a

17

1.20.2 23w31a

1.20.2-pre1

18

1.20.2-pre2

1.20.3 23w41a

19

1.20.3 23w42a

20

1.20.3 23w43a

1.20.3 23w44a

21

1.20.3 23w45a

1.20.3 23w46a

22

1.20.3-pre1

1.20.5 23w51b

24

1.20.5 24w03a

1.20.5 24w04a

25

1.20.5 24w05a

26

1.20.5 24w06a

1.20.5 24w08a

28

1.20.5 24w09a

1.20.5 24w10a

29

1.20.5 24w11a

30

1.20.5 24w12a

31

1.20.5 24w13a

1.20.5-pre3

32

1.20.5-pre4

1.20.6

33

1.21 24w18a

1.21 24w20a

34

1.21 24w21a

最新

截止 2024 年 6 月 30 日,数据来源于 Minecraft Wiki

    什么?你问我 23 去哪了?可能是因为今年是 24 年,Mojang 跳过了吧(笑)。 怎么 27 也跳了啊(恼)

    JE 1.15 开始,版本之间只要存在资源更新,资源包版本号就会随之更新。

    • 例如 JE 1.15JE 1.16 之间更新了墙类方块的方块状态,即便有些资源包并未涉及此内容,只要 pack.mcmeta 内的版本号不同,游戏内依然会显示不兼容。

    因此资源包的兼容性在绝大多数下应以作者本人的解释为标准 ,而不是游戏内是否显示不兼容。

    资源包加载顺序

    资源包加载顺序为由低到高 ,即:

    • 放置在顶部的资源包在加载时会覆盖下方资源包中重名的文件。

    • 顶部资源包缺失的贴图,将由下方资源包补齐。

    因此一些 基础包 + 附加包 组合形式的资源包,应把基础包置于底部

    资源包排序

    贴图类型

    原版贴图

    原版贴图名称一般为 <name>.png

    原版贴图由 Minecraft 原生提供支持。许多老牌资源包如舒服细致 (Soartex)、 五边形 (BDCraft)等即为只提供原版贴图的资源包。

    着色贴图

    读取这些贴图需要模组支持,具体作用需要光影支持。

    着色贴图有反射贴图 (Specular map)和法线贴图 (Normal map)两种。

    • 法线贴图的命名方法为 <name>_n.png

    • 反射贴图的命名方法为 <name>_s.png

    OptiFine 同时支持一些其它的特殊贴图,如 CTM、CIT、CEM 等,见 特殊纹理/模型

    法线纹理(贴图)

    参阅: 术语表 - 法线贴图

    这里列出了每个通道的作用:

    • R :表面在 X 轴上的倾斜量,高于 127 表示沿表面向右。

    • G :表面在 Y 轴上的倾斜量,高于 127 表示沿表面向下。

    • B :表面在 Z 轴上的倾斜量。它的值可以由 RG 计算得到,因此在 Java 版现行 PBR 标准中,该通道可以独立出来做特殊用途,详见 #PBR 标准

    • A :通常用于视差

    R G 分量的作用由 OpenGL 特性决定,如果要改为其他读取方式,需要做一些转换。

    反射纹理(贴图)

    用于告诉着色器物体的性质,每个颜色通道在不同的标准中有着不同的定义,详见 PBR 标准

    特殊纹理/模型

    名称

    简写

    用途

    Connected Textures

    CTM

    方块间的纹理衔接

    Custom Item Textures

    CIT

    自定义物品纹理

    Custom Entity Models

    CEM

    自定义实体模型

    Custom Graphical User Interface

    GUI

    自定义游戏界面

    Animated Textures

    -

    自定义动态纹理

    Emissive Textures

    -

    自发光纹理

    Random Entities

    -

    随机实体纹理

    Natural Textures

    -

    自然纹理

    Custom Sky

    -

    自定义天空

    这些贴图可以在 OptiFine 中使用,也可以由其他模组实现。
    详细介绍可参考 MCBBS 纹理版版主 SQwatermark 翻译的 OptiFine官方文档

    PBR 标准

    参阅: 术语表 - PBR

    PBR 有两种工作流,一种是金属/粗糙度 ,另一种是镜面反射/光泽度
    对于 PBR 贴图上的通道的定义,在 MC 中有着不同的标准,例如 OldPBR JELabPBR JE四合一PBR BE等。

    • OldPBR 是过时的 PBR 标准,在此不做讨论。

    • LabPBR 1.3 是 Java 版的约定现行标准,工作流为金属/粗糙度 。其 材质属性_n_s 贴图共同定义

      • _n 贴图:

      • _s 贴图:

        • R感知平滑度

        • G金属性 ,230 及以上的数值代表特定金属详见下方链接

        • B :[0, 64] 表示孔隙度, [65, 255] 表示次表面散射强度

        • A自发光 ,[1, 254] 范围内数值越大发光越强,当值为255(即完全不透明)时不发光。

      • 关于 LabPBR 的更多详细介绍,可参考 站内翻译文档

    • 四合一PBR是目前基岩版的约定现行标准。

      • 主要为将 主场景法线场景PBR贴图场景 和附加的 独立检测场景 拼合到 一张图 内,得以实现光影读取。

      • 四合一标准详见基岩版光影 YSS 压缩包内的开发文档。

    Last modified: 23 August 2024