空间材料¶
介绍¶
SpatialMaterial
是一种默认的3D材质,旨在提供艺术家在材质中寻找的大部分功能,而无需编写明暗器代码。但是,如果需要其他功能,可以将其转换为着色代码。
本教程解释了 SpatialMaterial
.
您可以添加 SpatialMaterial
通过在 材料 检查员的财产。
旗帜¶
空间材料有许多标志决定材料的一般用途。
透明¶
在Godot,除非特别配置,否则材料是不透明的。这背后的主要原因是透明材质是使用不同的技术(从后到前排序并按顺序渲染)渲染的。
这种技术效率较低(会发生许多状态变化),并使材料无法使用,因为需要完全不透明的几何图形的许多中、后处理效果(如SSAO、SSR等)。
因此,除非另有规定,否则假定Godot中的材料不透明。启用透明度的主要设置是:
透明标志(此标志)
混合模式设置为“混合”以外的模式
启用距离或接近渐变
顶点光源¶
由于深度预通过,Godot每像素的成本或多或少是一致的。所有照明计算都是通过在每个像素上运行照明明暗器来完成的。
由于这些计算成本高昂,因此在某些角点情况下(例如绘制几个透明层,这在粒子系统中很常见),性能可能会大大降低。在这些情况下,切换到逐顶点照明可能会有所帮助。
此外,在低端或移动设备上,切换到顶点照明可以显著提高渲染性能。
请记住,启用顶点照明时,只有方向照明才能产生阴影(出于性能原因)。
无深度测试¶
为了使近距离物体出现在远距离物体上,需要进行深度测试。禁用它会导致对象出现在其他所有对象之上(或之下)。
禁用此选项对于在世界空间中绘制指示器最有意义,并且与 呈现优先级 材料属性(见本页底部)。
使用点大小¶
此选项仅在渲染的几何体由点构成时有效(通常从3D DCC导入时由三角形构成)。如果是这样,那么可以调整这些点的大小(见下文)。
世界三连体¶
当使用三面体映射时(请参见下面的“UV1”和“UV2”设置),三面体将在对象局部空间中计算。这个选项使三层空间在世界空间中工作。
固定大小¶
这将导致对象以相同的大小呈现,而不管距离如何。这主要用于指示器(无深度测试和高渲染优先级)和某些类型的广告牌。
不接收阴影¶
使对象不接收任何类型的阴影,否则将投射到对象上。
禁用环境光¶
使对象不接收任何类型的环境照明,否则将照亮它。
确保正常¶
使用非均匀缩放时修复法线。
顶点颜色¶
此设置允许选择默认情况下对来自三维建模应用程序的顶点颜色执行的操作。默认情况下,它们被忽略。
用作反照率¶
选择此选项意味着顶点颜色用作反照率颜色。
是sRGB¶
大多数3D DCC可能会将顶点颜色导出为sRGB,因此打开此选项有助于它们看起来正确。
参数¶
SpatialMaterial
还有几个可配置的参数来调整渲染的许多方面:
漫反射模式¶
指定在撞击对象时光的漫反射散射所使用的算法。默认值是 Burley . 其他模式也可用:
伯利: 默认模式,最初的迪斯尼原则PBS扩散算法。
兰伯特: 不受粗糙度的影响。
兰伯特包装: 当粗糙度增加时,兰伯特延伸到90度以上。适用于头发和模拟便宜的地下散射。这种实现是节能的。
奥伦·纳亚尔: 该实施旨在考虑微表面处理(通过粗糙度)。适用于粘土类材料和某些类型的布料。
Toon: 为照明提供硬切割,平滑受粗糙度影响。建议您从环境的环境光设置中禁用天空贡献,或在空间材质中禁用环境光以获得更好的效果。
镜面反射模式¶
指定反射斑点的渲染方式。反射斑点表示反射到对象中的光源的形状。
SHLICkgGx: 目前PBR 3D引擎最常用的BLOB。
Blinn: 在上一代引擎中很常见。现在不值得使用,但为了兼容性而留在这里。
Phong: 同上。
Toon: 创建一个Toon斑点,根据粗糙度更改大小。
禁用: 有时斑点会挡住路。走开!
混合模式¶
控制材质的混合模式。记住,除 Mix 强制对象通过透明管道。
Mix: 默认混合模式,alpha控制对象的可见程度。
Add: 对象是额外混合的,对于耀斑或一些类似火焰的效果很好。
Sub: 对象被减去。
Mul: 对象被相乘。
深度绘制模式¶
指定必须进行深度渲染的时间。
仅不透明(默认): 深度仅为不透明对象绘制。
始终: 为不透明和透明对象绘制深度绘制。
从未: 不进行深度绘制(不要将其与上面的“无深度测试”选项混淆)。
Depth Pre-Pass: 对于透明对象,首先使用不透明部分进行不透明过程,然后在上面绘制透明度。将此选项与透明的草或树叶一起使用。
线条宽度¶
绘制线条时,请指定所绘制线条的宽度。此选项在大多数现代硬件上不可用。
点大小¶
绘制点时,以像素为单位指定点大小。
公告牌模式¶
为绘图材料启用公告牌模式。这控制对象如何面对相机:
禁用: 公告牌模式已禁用。
启用: 布告牌模式启用后,对象的-Z轴将始终朝向相机。
Y-Billboard: 对象的X轴将始终与相机对齐。
颗粒: 最适合粒子系统,因为它允许指定动画选项。
以上选项仅对粒子公告牌启用。
广告牌保持比例¶
在公告牌模式下启用网格缩放。
材料颜色、地图和通道¶
除了参数,定义材质本身的是颜色、纹理和通道。Godot支持他们的广泛名单。具体描述如下:
反照率¶
反照率 是材质的基础颜色,所有其他设置都在其上操作。当设置为 无阴影 ,这是唯一可见的颜色。在之前版本的godot中,这个频道被命名为 弥漫的 . 名称的更改主要是因为在PBR(基于物理的渲染)中,此颜色影响的计算比漫射光路要多。
反照率颜色和纹理可以在相乘时一起使用。
阿尔法通道 在反照率中,颜色和纹理也用于对象透明度。如果将颜色或纹理用于 阿尔法通道 ,确保启用透明度或 阿尔法剪刀 让它发挥作用。
金属¶
Godot使用金属模型比竞争模型,因为它的简单。此参数定义材质的反射效果。反射性越强,漫反射/环境光对材质的影响越小,反射的光越多。这个模型被称为“节能”。
这个 镜面反射 参数是反射率的一般值(与 金属 ,这不是节能的,所以把它放在 0.5
除非你需要,否则不要碰它)。
最小内部反射率为 0.04
因此,不可能像现实生活中那样,使一种物质完全不反射。
粗糙度¶
粗糙度 影响反射发生的方式。值 0
使之成为完美的镜子 1
完全模糊反射(模拟自然微表面)。最常见的材料类型可以通过正确组合 金属 和 粗糙度 .
正态映射¶
正常映射允许您设置表示更精细形状细节的纹理。这不会修改几何体,只修改光的入射角。在Godot中,只有正常地图的红色和绿色通道用于更广泛的兼容性。
轮缘¶
有些织物有细小的皮毛,会使光线散开。Godot用 Rim 参数。与其他仅使用发射通道的RIM照明装置不同,这个装置实际上考虑了光(没有光意味着没有RIM)。这使得效果更加可信。
轮辋尺寸取决于粗糙度,并有一个特殊参数来指定必须如何着色。如果 Tint 是 0
,灯光的颜色用于边缘。如果 Tint 是 1
,然后使用材料的反照率。使用中间值通常效果最好。
环境光遮蔽¶
可以指定烘焙环境光遮挡贴图。此贴图会影响环境光到达对象的每个表面的程度(默认情况下,它不会影响直接光)。虽然可以使用屏幕空间环境光遮挡(SSAO)来生成环境光遮挡,但是没有什么能比得上经过良好烘焙的AO地图的质量。建议尽可能烘焙环境光遮挡。
深度¶
此功能仅在使用gles3后端时可用。
在材质上设置深度贴图将生成光线行进搜索,以模拟沿视图方向的适当空腔位移。这不是真正添加的几何图形,而是深度的假象。它可能不适用于复杂的对象,但它会为纹理产生逼真的深度效果。为了达到最佳效果, 深度 应与法线映射一起使用。
变速箱¶
这控制着从被照亮的一侧(对光可见)转移到黑暗的一侧(与光相反)的光的数量。这对植物叶子、草、人的耳朵等较薄的物体很有效。
细节¶
Godot允许使用二次反照率和法向贴图生成细节纹理,可以通过多种方式混合。通过将其与二级UV或三层模式相结合,可以获得许多有趣的纹理。
uv1和uv2¶
Godot每种材料支持两个紫外线通道。次紫外线通常用于环境光遮挡或发射(烘焙光)。可以缩放和偏移UV,这在使用重复纹理时很有用。
三面映射¶
支持对uv1和uv2进行三平面映射。这是获取纹理坐标的另一种方法,有时称为“自动绘制”。纹理在X、Y和Z中采样,并按法线混合。三面映射可以在世界空间或对象空间中执行。
在下面的图像中,您可以看到所有基本体如何与世界三面体共享相同的材质,因此砖纹理在它们之间保持平滑。
近距离和距离衰减¶
Godot允许材料因彼此靠近而褪色,也取决于与观众的距离。近程渐变对于软颗粒或大量与海岸平滑混合的水等效果很有用。距离衰减对于仅在给定距离后出现的光轴或指示器很有用。
请记住,启用这些功能可以实现alpha混合,因此在整个场景中使用它们通常不是一个好主意。
呈现优先级¶
对象的渲染顺序可以更改,尽管这对于透明对象(或执行深度绘制但没有颜色绘制的不透明对象,如地板上的裂缝)最为有用。