基于物理的渲染 (PBR) 文本允许您使用多种类型的材质图像或 地图 ,在单个对象上代表理想的阴影和照明。 组合多种材质图像可以更准确地模拟颜色、粒度和反射率在任何照明环境中,并可以强化资产和环境的视觉元素。
您可以使用它们来创建 PBR 纹理。您可以在自定义 3D 对象创作品的建模和纹理阶段使用它们。前提是您使用 Roblox Studio 支持 您正在使用的特定纹理地图。
本指南涵盖设置您的网格对象使用 PBR 材质地图,以及描述 Roblox 支持的 PBR 材质地图的常见用例和最佳实践。当创建您自己的表面时,请参阅 材质参考 以获得常见材质值,图像比较和服装示例。
启用表面外观
您可以通过添加 MeshPart 中的任何一个 SurfaceAppearance 对象,以及添加一个 SurfaceAppearance 对象,将原始所分配的纹理覆盖。 一通用来说,在体验期间不能通过脚本修改 2>Class.Surface2> 属性,因为引擎需要进行一些预处理才能显
要启用MeshPart的表面外观:
从上下文菜单中插入 表面特性 。
当您准备将材质地图添加到您的 SurfaceAppearance 对象时,您可以单击每个地图属性以浏览并设置每个图像的适当资产 ID:
纹理地图
Studio 目前支持 4 种类型的 PBR 材质地图: 颜色 , 普通 , 金属 ,1>粗糙1>。 每个 of these 地图都对对象的表面外观进行了重要的更改。 材质地图只会更改视觉外观,并且不会影响 4>Class.MeshPart4> 对象的几
请参阅以下示例,了解 Roblox 支持的材质地图和其他资源:
Class.SurfaceSurface.ColorMap|ColorMap 属性设置了地面的颜色数据,包括地图上的任何透明度。请参阅“颜色(Albedo)”获取更多信息。
颜色 (Albedo)
颜色 颜色 ,或 阴影 ,地图确定您的材质的颜色,并由大多数为颜色信息而无照明或材质信息。 为了提供更多自定义,您还可以在您的材质图层中添加透明度,以通过添加透明度给您的图层增加颜色信息。
模式
对于需要部分或完整透明度的对象,例如草、叶子、绳子或像泥或霉一样的装饰,您可以使用各种 alpha 模式 来应用透明度到您的颜色地图。 如果您的颜色地图图像格式支持 alpha 素材道,您可以在透明度 0.
您可以通过设置以下 AlphaMode 值来在两种不同的行为中应用透明度:
- 透明度 — 根据透明度在 ColorMap 中移除可见的网格。这会使网格透明,并且在透明度存在时不会显示原始网格颜色。
层
您可以使用 渐变 来显示网格原始颜色的部分。 因为颜色地图的透明区域显示出基础颜色,因此您可以设计一个独特的颜色地图,部分或全部地图显示Color属性,以便为客户端或其他情况下显示网格的 Class.MeshPart.Color 属性。
下面的例子显示了使用白色球体引用器工作的 Overlay 模式:
下面的例子使用了 涂层 模式为自定义角色,显示角色的原始皮肤:
有关于自定义肤色的额外细节,请参阅自定义肤色。
透明度
您可以使用 透明度 模式来创建复杂或极其精细的对象,例如网或网,通过移除网格的可见部分作为代替以雕刻网格结构的性能影响。由于这不会影响网格对象的几何形状,因此您可以创建细节丰富的对象 without the performance impact of an intricate mesh model.
下面的例子显示了在此模式中部分和全部透明度如何视觉移除网格的部分:
颜色涂色
您可以通过修改 SurfaceAppearance.Color 属性来修改您的颜色地图。 涂色不会影响性能, 您可以在内存上节省, 通过重用一个颜色地图使用单个颜色Map与不同的涂色进行额外的低成本变化。 使用颜色涂色来在实时时间内您的 PBR 表面颜色或程序化修改您的 PBR 表
SurfaceAppearance.Color 涂色应用为倍增器,因此最终外观是由 Color3 (像素颜色) 次 SurfaceAppearance.Color 的。 这意味着在靠近白色的几率下创建原始 0> Class.SurfaceSurface.ColorMap0> 的最强涂色
涂色仅适用于 SurfaceAppearance.ColorMap 和 MeshPart.Color ,而不是 Class.MeshPart.Color 。 您可以继续使
正常
普通,或 表面 ,地图将表面的纹理深度添加到您的表面,并且与高度地图相同。因结果,效果可能会渐渐消失或变得更强大,取决于视角和照明环境。当0>普通0>地图不存在时,值为0。
在下图中,您可以使用网格参考和地图参考来进行比较,以便测试普通地图值的比较:
R, G 和 B 通道的图像分别对应于 1> X1>, 4> Y4> 和 7> Z7> 表面向矢量力的组件。 0> 一致的图像颜色 0>
普通地图会显著影响网格的视觉表面,并且可以突出网格中的矮缝。 尽可能时,请隐藏您的网格纹理,以避免网格视觉问题。
粗糙度
粗糙度 ,或 微表面 ,会决定光在您的模型表面上的如何分布。当粗糙度为 0.0 时,表面不会散射光,从而在您的材料上产生更锋利和更明亮的反射。在 1.0 上,光和反射都会在材料上均匀散射,从而产生更不反射的闪
粗糙度可能会影响物体在不同角度下反射的程度,称为“Fresnel”效果。请参阅“Fresnel”获取更多信息和最佳实践,以确保保持一致的反射行为。
参阅以下图表,了解各种粒度地图值的比较:
弗雷斯尼尔
弗雷斯nel 指的是表面在当前视角下的反射量。 Studio 的弗雷斯nel 处理目标是实体世界的精确度,尽管您在某些角度上可能会获得意外的反射贡献。在一些情况下,您可以通过使您的粒度地图在 0.1 更粗糙以实现一致的照明响应与您的材料。
尽管 Roblox 渲染此照明效果准确,但面料的亮度和反射率可能在您创建材质内容创建工具,例如 Substance Paint 和 Studio 之间不会一致。请参阅 服装示例 了解在应用之间的渲染差异。
金属
金属性 表示表面的反射率。金属性值在 0.0 和 1.0 之间。Roblox 将默认值设置为 0.0 如果没有金属性地图。
参阅以下图表,了解各种金属地图值的比较:
不同的 PBR 渲染器使用各种工作流程处理反射。 Studio 只使用 金属工作流程 , which 결정 是 否 金属 或 金属 ,通常 称 为 绝缘 器 或 导电 器 》 。
在大多数情况下,您应该将此值设置为 0.0 (非金属) 或 1.0 (金属)。您可以使用部分金属性值来创建更多不常见的表面,例如闪光或丝。此实践可以悄悄伪造材料中的反射以突出颜色从 颜色/albedo 地图 上反射的颜色。