基于物理的渲染 (PBR) 模拟材料对真实光线行为的反应。 某些金属特性会产生反射,光线通过不同类型的玻璃时会偏向,发生折射。
本指南介绍在《我的世界》基岩版中设计 PBR 材质时的一些基本工作流程。 您将创建一系列材质来展示每种新的材质贴图类型。
在本指南结束时,您将了解以下内容:
- 《我的世界》中有哪些新材质贴图可用作材质。
- 如何使用粗糙度和金属贴图来创建镜面材质集。
要求
您需要完成以下教程:
- 资源包简介
- 具有
textures/blocks文件夹结构设置的资源包。
尽管会提供材质,您还是需要支持图层的数字绘制软件才能创建材质。
什么是 PBR 材质?
材质使用一种称为材质映射的常用渲染方法。 使用材质贴图,创作者可以将多个图像分层以创建高度详细的 3D 对象。 原版《我的世界》材质使用称为颜色的单个贴图。 颜色贴图由四个颜色通道组成:红色、蓝色、绿色和 Alpha(统称为 RGBA)。 前三个通道控制材质的渲染方式,而 Alpha 控制材质的透明度。
《我的世界》引入 PBR 后,材质现在可以使用五个额外的贴图来帮助创作者创建逼真的材料。
每个贴图都将成为方块材质集的组成部分,每个贴图都在另一个之上分层,从而在材质中设置不同的值。 在这个过程中,创作者对方块放置在世界中时的渲染方式有很强的控制权。
重要
并非所有 PBR 材质集都需要所有贴图。 留空贴图将导致材质集使用默认值。
金属贴图
金属贴图是一种灰度材质,可确定材质贴图中的哪些区域看起来像金属。
- 设置为黑色的像素的值为
0,该像素是非金属的。 草、泥土或树皮是非金属对象的例子。 - 设置为白色的像素的值为
1,该像素被视为 100% 的金属。 铁、金或铜是金属对象的例子。
上图使用以下 mer:
自发光贴图
自发光贴图是一种灰度材质,用于确定材质贴图的哪些区域会发光。
- 设置为黑色的像素的值为
0,不会发光。 - 设置为白色的像素被认为值为
1,并且以最亮的方式发光。 - 贴图是灰度的,您可以设置
0和1之间的值。
上图使用以下 mer:
粗糙度贴图
粗糙度贴图是一种灰度材质,用于确定材质贴图中的哪些区域会发光。
- 设置为黑色的像素的值为
0,该像素非常平滑。 光滑的大理石、玻璃或光滑的塑料等对象非常平滑。 - 设置为白色的像素的值为
1,该像素非常粗糙。 砖块、树皮或石头非常粗糙。 - 贴图是灰度的,您可以设置
0和1之间的值。
上图使用以下 mer:
法线贴图
法线贴图是一种 RGB 材质,用于控制深度以及光线照射到材质时光线的行为方式。
- 法线贴图使用 RGB,因此,您可以创建表面细节,使材质具有雕刻 3D 对象的外观。
- 如果 RGB 值分别设置为
128、128、255,像素的外观将显得平坦。
注意
除非以前有创建法线贴图的经验,否则不建议手动创建法线贴图。 可以使用第三方软件来帮助创建法线贴图。
高度贴图
高度贴图是控制材质深度的灰度材质。 高度贴图可作为法线贴图的替代方法,但效率不高且不能表示尽可能多的材质。
- 设置为黑色的像素的值为
0,该像素向内回缩。 - 设置为白色的像素的值为
1,该像素向外突出。 - 设置为
0.5的像素是默认高度,既不内缩也不外突。
上图使用以下高度贴图:
制作镜面
我们创建材质集 JSON 文件并使用提供的材质文件为现有的原版玻璃方块创建镜面材质。
制作材质集 JSON
要使材质集正常工作,您需要定义一个 JSON 文件来加载材质。 本镜面示例教程使用 iron_block 方块。
提示
要了解有关材质集的更多信息,请访问材质集文档 - 材质集简介。
- 在行为包中,导航到
textures/blocks文件夹。 - 创建一个新的 .JSON 文件,将其命名为
iron_block.texture_set.json。 - 双击
iron_block.texture_set.json以编辑内容。 - 复制以下示例。
iron_block.texture_set.json
{
"format_version": "1.16.100",
"minecraft:texture_set": {
"color": "iron_block",
"metalness_emissive_roughness": "iron_block_mer",
}
- 保存并关闭文件。
设置好 JSON 文件后,现在可以配置材质的 color 值和 metalness_emissive_roughness 值。
添加光线追踪功能
包的 manifest.json 文件要求将值 "raytraced" 添加到现有 header 和 modules 下的 capabilities 部分。
{
"format_version": 1,
"header": {
"name": "RTX Sample Resources",
"description": "",
"uuid": "58d4560c-106d-4b0c-9847-eee47417fb05",
"min_engine_version": [1, 12, 0],
"version": [1, 0, 0]
},
"modules": [
{
"description": "",
"type": "resources",
"uuid": "2d3df25b-856a-406d-9a57-c87b9a4d7af8",
"version": [0, 0, 1]
}
],
"capabilities" : [
"raytraced"
]
}
添加材质
要在 PBR 工作流程中创建镜面,需要粗糙度贴图和金属度贴图。
值为 0.0(即纯黑色)的粗糙度贴图将创建一个光滑的表面,以便光线反射。
金属度贴图设置为值 1.0(即纯白色),将方块渲染为反射金属。
设置镜面后,Render Dragon 引擎能够以更少的时间处理这些对象的计算。
主要颜色材质:iron_block.png
PBR 材质:iron_block_mer.png
- 保存
iron_block.png文件和iron_block_mer.png文件。 - 将两个 .png 文件都复制并粘贴到
textures/blocks文件夹中。
运行材质包
正确设置 JSON 文件并准备好两个材质后,现在可以加载材质包,在《我的世界》中进行测试。
下一步内容?
基于物理的渲染教程
您创建了一个包含粗糙度和金属度贴图的镜面。 现在,您可以查看本指南的下一部分,了解如何创建自定义材质来创建自己的材质集。
资源中的迷雾
除了光线追踪,《我的世界》中的迷雾已更新为使用类似的 JSON 结构,可用于创建和控制其在游戏中的外观。