纹理¶
纹理(Texture)是Minecraft基岩版中定义游戏视觉表现的二维图像资源。纹理应用于方块表面、实体模型、物品图标、粒子特效、用户界面等几乎所有可视化元素,是资源包中最核心的资源类型之一。
概述¶
基岩版中的纹理通常为PNG格式的图像文件,支持透明通道(Alpha通道)。纹理的分辨率通常为2的幂次方(如16×16、32×32、64×64等),原版游戏的默认纹理分辨率为16×16像素。资源包可以提供更高分辨率的纹理以获得更精细的视觉效果。
纹理图集¶
纹理图集(Texture Atlas)是将多张独立的纹理合并到一张大图上的技术,也称为精灵图(Sprite Sheet)。图集可以减少渲染时的纹理切换次数,从而提升渲染性能。
基岩版使用以下纹理图集:
| 图集文件 | 描述 |
|---|---|
atlas.terrain | 方块纹理图集,由游戏根据terrain_texture.json自动生成 |
atlas.items | 物品纹理图集,由游戏根据item_texture.json自动生成 |
方块纹理映射¶
方块纹理通过资源包中的terrain_texture.json文件进行映射。该文件定义了纹理短名称与实际纹理文件路径之间的对应关系。方块定义文件通过引用纹理短名称来指定方块各面使用的纹理。
物品纹理映射¶
物品纹理通过资源包中的item_texture.json文件进行映射。该文件的结构与方块纹理映射类似,定义了物品图标的纹理短名称和对应的纹理文件路径。
翻书动画¶
翻书动画(Flipbook Animation)是一种通过在纹理图集中按序列帧排列的方式实现的纹理动画。翻书动画的定义文件为flipbook_textures.json,存放在资源包的textures/目录中。
翻书动画的原理是将动画的每一帧按垂直方向排列在同一张纹理图中,游戏引擎按照指定的帧率依次显示每一帧。原版游戏中水面、岩浆表面、传送门等方块的动态效果均通过翻书动画实现。
纹理集¶
纹理集(Texture Set)是基岩版在物理基础渲染(PBR)管线中使用的高级纹理格式。每个纹理集将同一表面的多张纹理贴图组合在一起,包括:
- 基色(Base Color)贴图:定义表面的颜色信息。
- 法线(Normal)贴图:定义表面的微观凹凸细节。
- 金属度-自发光-粗糙度(MER)贴图:在RGB三个通道中分别存储金属度(Metalness)、自发光(Emissive)强度和粗糙度(Roughness)信息。
纹理集通过以.texture_set.json为后缀的定义文件声明,存放在与纹理文件相同的目录中。纹理集需要在开启了延迟渲染或光线追踪的环境中才能生效。
多级渐远纹理¶
多级渐远纹理(Mipmapping)是一种用于减少纹理在远距离渲染时出现锯齿和闪烁的技术。游戏引擎会为每张纹理预先生成若干个缩小版本(称为mip层级),在渲染远处物体时使用较低分辨率的版本。
基岩版的方块纹理默认使用4个mip层级。较高分辨率的纹理包需要确保纹理的尺寸是16的整数倍,以保证多级渐远纹理的正确生成。
实体纹理¶
实体纹理存放在资源包的textures/entity/目录中,通过客户端实体定义文件中的textures字段关联到实体。一个实体可以关联多张纹理,并通过渲染控制器动态切换。
纹理排列值¶
纹理排列值(Texture Index)是方块在原版方块定义中用于指定纹理在图集中位置的数值。在较新的数据驱动系统中,纹理排列值已被纹理短名称的引用方式所取代。