SpatialMaterial

Inherits: Material < Resource < Reference < Object

默认的 3D 渲染材质。

描述

这提供了一个默认的材质,具有多种渲染功能和属性,无需编写着色器代码。详情请看下面的教程。

教程

属性

Color

albedo_color

Color( 1, 1, 1, 1 )

Texture

albedo_texture

float

anisotropy

bool

anisotropy_enabled

false

Texture

anisotropy_flowmap

bool

ao_enabled

false

float

ao_light_affect

bool

ao_on_uv2

Texture

ao_texture

TextureChannel

ao_texture_channel

AsyncMode

async_mode

0

float

clearcoat

bool

clearcoat_enabled

false

float

clearcoat_gloss

Texture

clearcoat_texture

bool

depth_deep_parallax

bool

depth_enabled

false

bool

depth_flip_binormal

bool

depth_flip_tangent

int

depth_max_layers

int

depth_min_layers

float

depth_scale

Texture

depth_texture

Texture

detail_albedo

BlendMode

detail_blend_mode

bool

detail_enabled

false

Texture

detail_mask

Texture

detail_normal

DetailUV

detail_uv_layer

float

distance_fade_max_distance

float

distance_fade_min_distance

DistanceFadeMode

distance_fade_mode

0

Color

emission

bool

emission_enabled

false

float

emission_energy

bool

emission_on_uv2

EmissionOperator

emission_operator

Texture

emission_texture

bool

flags_albedo_tex_force_srgb

false

bool

flags_disable_ambient_light

false

bool

flags_do_not_receive_shadows

false

bool

flags_ensure_correct_normals

false

bool

flags_fixed_size

false

bool

flags_no_depth_test

false

bool

flags_transparent

false

bool

flags_unshaded

false

bool

flags_use_point_size

false

bool

flags_use_shadow_to_opacity

false

bool

flags_vertex_lighting

false

bool

flags_world_triplanar

false

float

metallic

0.0

float

metallic_specular

0.5

Texture

metallic_texture

TextureChannel

metallic_texture_channel

0

bool

normal_enabled

false

float

normal_scale

Texture

normal_texture

float

params_alpha_scissor_threshold

bool

params_billboard_keep_scale

false

BillboardMode

params_billboard_mode

0

BlendMode

params_blend_mode

0

CullMode

params_cull_mode

0

DepthDrawMode

params_depth_draw_mode

0

DiffuseMode

params_diffuse_mode

0

bool

params_grow

false

float

params_grow_amount

float

params_line_width

1.0

float

params_point_size

1.0

SpecularMode

params_specular_mode

0

bool

params_use_alpha_scissor

false

int

particles_anim_h_frames

bool

particles_anim_loop

int

particles_anim_v_frames

float

proximity_fade_distance

bool

proximity_fade_enable

false

bool

refraction_enabled

false

float

refraction_scale

Texture

refraction_texture

TextureChannel

refraction_texture_channel

float

rim

bool

rim_enabled

false

Texture

rim_texture

float

rim_tint

float

roughness

1.0

Texture

roughness_texture

TextureChannel

roughness_texture_channel

0

bool

subsurf_scatter_enabled

false

float

subsurf_scatter_strength

Texture

subsurf_scatter_texture

Color

transmission

bool

transmission_enabled

false

Texture

transmission_texture

Vector3

uv1_offset

Vector3( 0, 0, 0 )

Vector3

uv1_scale

Vector3( 1, 1, 1 )

bool

uv1_triplanar

false

float

uv1_triplanar_sharpness

1.0

Vector3

uv2_offset

Vector3( 0, 0, 0 )

Vector3

uv2_scale

Vector3( 1, 1, 1 )

bool

uv2_triplanar

false

float

uv2_triplanar_sharpness

1.0

bool

vertex_color_is_srgb

false

bool

vertex_color_use_as_albedo

false

方法

bool

get_feature ( Feature feature ) const

bool

get_flag ( Flags flag ) const

Texture

get_texture ( TextureParam param ) const

void

set_feature ( Feature feature, bool enable )

void

set_flag ( Flags flag, bool enable )

void

set_texture ( TextureParam param, Texture texture )

枚举

enum TextureParam:

  • TEXTURE_ALBEDO = 0 —- 指定每个像素颜色的纹理。

  • TEXTURE_METALLIC = 1 —- 指定每个像素金属值的纹理。

  • TEXTURE_ROUGHNESS = 2 —- 指定每个像素粗糙度值的纹理。

  • TEXTURE_EMISSION = 3 —- 指定每个像素发射颜色的纹理。

  • TEXTURE_NORMAL = 4 —- 指定每像素法向量的纹理。

  • TEXTURE_RIM = 5 —- 指定每个像素边缘值的纹理。

  • TEXTURE_CLEARCOAT = 6 —- 指定每像素清漆值的纹理。

  • TEXTURE_FLOWMAP = 7 —- 指定每个像素流图方向的纹理,用于anisotropy

  • TEXTURE_AMBIENT_OCCLUSION = 8 —- 指定每个像素环境遮挡值的纹理。

  • TEXTURE_DEPTH = 9 —- 指定每个像素深度的纹理。

  • TEXTURE_SUBSURFACE_SCATTERING = 10 —- 指定每个像素的亚表面散射的纹理。

  • TEXTURE_TRANSMISSION = 11 —- 指定每个像素传输颜色的纹理。

  • TEXTURE_REFRACTION = 12 —- 指定每个像素折射强度的纹理。

  • TEXTURE_DETAIL_MASK = 13 —- 指定每像素细节蒙版混合值的纹理。

  • TEXTURE_DETAIL_ALBEDO = 14 —- 指定每个像素细节颜色的纹理。

  • TEXTURE_DETAIL_NORMAL = 15 —- 指定每个像素细节法线的纹理。

  • TEXTURE_MAX = 16 —- 表示TextureParam枚举的大小。


enum DetailUV:

  • DETAIL_UV_1 = 0 —- 使用UV与细节纹理。

  • DETAIL_UV_2 = 1 —- 使用UV2与细节纹理。


enum Feature:


enum BlendMode:

  • BLEND_MODE_MIX = 0 —- 默认的混合模式。根据对象的alpha值,在背景上混合对象的颜色。

  • BLEND_MODE_ADD = 1 —- 对象的颜色被添加到背景中。

  • BLEND_MODE_SUB = 2 —- 从背景中减去对象的颜色。

  • BLEND_MODE_MUL = 3 —- 对象的颜色与背景相乘。


enum DepthDrawMode:

  • DEPTH_DRAW_OPAQUE_ONLY = 0 —- 默认的深度绘制模式。深度只针对不透明的对象绘制。

  • DEPTH_DRAW_ALWAYS = 1 —- 不透明和透明的对象都要计算深度绘制。

  • DEPTH_DRAW_DISABLED = 2 —- 没有深度的绘制。

  • DEPTH_DRAW_ALPHA_OPAQUE_PREPASS = 3 —- 对于透明对象,首先对不透明部分进行不透明传递,然后绘制透明度。


enum CullMode:

  • CULL_BACK = 0 —- 默认的裁剪模式。当不可见时,对象的背面会被剔除。

  • CULL_FRONT = 1 —- 物体的正面不可见时,就会被剔除。

  • CULL_DISABLED = 2 —- 不进行剔除。


enum Flags:

  • FLAG_UNSHADED = 0 —- 物体上不使用照明。颜色直接来自 ALBEDO

  • FLAG_USE_VERTEX_LIGHTING = 1 —- 光照是按顶点计算的,而不是按像素计算。这可用于以牺牲质量为代价提高着色器的速度。

  • FLAG_DISABLE_DEPTH_TEST = 2 —- 禁用深度测试,所以这个对象被画在所有其他对象的上面。但是,在绘制顺序中,在它之后绘制的对象可能会覆盖它。

  • FLAG_ALBEDO_FROM_VERTEX_COLOR = 3 —- 将 ALBEDO 设置为网格中指定的每顶点颜色。

  • FLAG_SRGB_VERTEX_COLOR = 4 —- 顶点颜色在sRGB空间,需要转成线性。仅适用于 GLES3 渲染器。

  • FLAG_USE_POINT_SIZE = 5 —- 使用点大小来改变原始点的大小。同时改变反射率纹理查找,使用 POINT_COORD 而不是 UV

  • FLAG_FIXED_SIZE = 6 —- 按深度缩放对象,使其在屏幕上显示的大小始终相同。

  • FLAG_BILLBOARD_KEEP_SCALE = 7 —- 着色器将保持为网格的缩放设置。否则,当做广告牌时,缩放会丢失。仅在 params_billboard_modeBILLBOARD_ENABLED 时适用。

  • FLAG_UV1_USE_TRIPLANAR = 8 —- 对所有通常会使用UV的纹理查找使用三平面纹理查找。

  • FLAG_UV2_USE_TRIPLANAR = 9 —- 对所有通常会使用UV2的纹理查找使用三平面纹理查找。

  • FLAG_AO_ON_UV2 = 11 —- 使用UV2坐标从ao_texture中查找。

  • FLAG_EMISSION_ON_UV2 = 12 —- 使用UV2坐标,从emission_texture中查找。

  • FLAG_USE_ALPHA_SCISSOR = 13 —- 使用alpha剪刀。由 params_use_alpha_scissor 设置。

  • FLAG_TRIPLANAR_USE_WORLD = 10 —- 在三平面纹理查找中使用世界坐标而不是局部坐标。

  • FLAG_ALBEDO_TEXTURE_FORCE_SRGB = 14 —- 强制着色器将反射率从sRGB空间转换为线性空间。

  • FLAG_DONT_RECEIVE_SHADOWS = 15 —- 禁用从其他对象接收阴影。

  • FLAG_DISABLE_AMBIENT_LIGHT = 17 —- 禁用接收环境光。

  • FLAG_ENSURE_CORRECT_NORMALS = 16 —- 确保法线显示正确,即使缩放比例不均匀。

  • FLAG_USE_SHADOW_TO_OPACITY = 18 —- 启用阴影到不透明度功能。

  • FLAG_MAX = 19 —- 表示Flags枚举的大小。


enum DiffuseMode:

  • DIFFUSE_BURLEY = 0 —- 默认的漫反射散射算法。

  • DIFFUSE_LAMBERT = 1 —- 漫散射忽略了粗糙度。

  • DIFFUSE_LAMBERT_WRAP = 2 —- 当粗糙度增加时,将Lambert延伸到90度以上。

  • DIFFUSE_OREN_NAYAR = 3 —- 尝试使用粗糙度来模拟微表面处理。

  • DIFFUSE_TOON = 4 —- 使用硬切口进行照明,平滑度受粗糙度影响。


enum SpecularMode:

  • SPECULAR_SCHLICK_GGX = 0 —- 默认镜面反射Blob。

  • SPECULAR_BLINN = 1 —- 旧的镜面算法,为了兼容而加入。

  • SPECULAR_PHONG = 2 —- 旧的镜面算法,为了兼容而加入。

  • SPECULAR_TOON = 3 —- 基于粗糙度更改大小的 Toon 斑点。

  • SPECULAR_DISABLED = 4 —- 无镜面斑点。


enum BillboardMode:

  • BILLBOARD_DISABLED = 0 —- 广告牌模式被禁用。

  • BILLBOARD_ENABLED = 1 —- 对象的Z轴将始终面向相机。

  • BILLBOARD_FIXED_Y = 2 —- 对象的X轴将始终面向相机。

  • BILLBOARD_PARTICLES = 3 —- 当分配给ParticlesCPUParticles节点时用于粒子系统。启用particles_anim_*属性。

为了播放动画,ParticlesMaterial.anim_speedCPUParticles.anim_speed也应该被设置为正值。


enum TextureChannel:

  • TEXTURE_CHANNEL_RED = 0 —- 用来读取纹理的红色通道。

  • TEXTURE_CHANNEL_GREEN = 1 —- 用来读取纹理的绿色通道。

  • TEXTURE_CHANNEL_BLUE = 2 —- 用来读取纹理的蓝色通道。

  • TEXTURE_CHANNEL_ALPHA = 3 —- 用来读取纹理的alpha通道。

  • TEXTURE_CHANNEL_GRAYSCALE = 4 —- 当前未使用.


enum EmissionOperator:

  • EMISSION_OP_ADD = 0 —- 将发射颜色添加到发射纹理的颜色上。

  • EMISSION_OP_MULTIPLY = 1 —- 将发射颜色乘以发射纹理的颜色。


enum DistanceFadeMode:

  • DISTANCE_FADE_DISABLED = 0 —- 不要使用距离淡化。

  • DISTANCE_FADE_PIXEL_ALPHA = 1 —- 根据每个像素与相机的距离,使用alpha通道平滑地淡化对象。

  • DISTANCE_FADE_PIXEL_DITHER = 2 —- 根据每个像素与相机的距离,使用抖动方法平滑地淡化对象。抖动会根据设定的模式丢弃像素,在不启用透明的情况下平滑淡化。在某些硬件上,这比 DISTANCE_FADE_PIXEL_ALPHA 更快。

  • DISTANCE_FADE_OBJECT_DITHER = 3 —- 根据对象与相机的距离,使用抖动的方法平滑地淡化对象。抖动根据设定的模式丢弃像素,在不启用透明度的情况下平滑淡化。在某些硬件上,这可能比DISTANCE_FADE_PIXEL_ALPHA更快。


enum AsyncMode:

  • ASYNC_MODE_VISIBLE = 0 —- The real conditioned shader needed on each situation will be sent for background compilation. In the meantime, a very complex shader that adapts to every situation will be used (“ubershader”). This ubershader is much slower to render, but will keep the game running without stalling to compile. Once shader compilation is done, the ubershader is replaced by the traditional optimized shader.

  • ASYNC_MODE_HIDDEN = 1 —- Anything with this material applied won’t be rendered while this material’s shader is being compiled.

This is useful for optimization, in cases where the visuals won’t suffer from having certain non-essential elements missing during the short time their shaders are being compiled.

属性说明

Default

Color( 1, 1, 1, 1 )

Setter

set_albedo(value)

Getter

get_albedo()

材质的底色。


Setter

set_texture(value)

Getter

get_texture()

纹理乘以 albedo_color。用于对象的基本纹理。


Setter

set_anisotropy(value)

Getter

get_anisotropy()

各向异性效应的强度。


  • bool anisotropy_enabled

Default

false

Setter

set_feature(value)

Getter

get_feature()

如果 true,则启用各向异性。改变镜面小球的形状,并使其与切线空间对齐。此功能需要有网格切线才行。如果网格不包含切线,各向异性的效果就会被破坏。


Setter

set_texture(value)

Getter

get_texture()

用于各向异性计算的偏移切线图的纹理。


Default

false

Setter

set_feature(value)

Getter

get_feature()

如果 true,启用环境遮挡。环境遮挡根据 ao_texture 使区域变暗。


Setter

set_ao_light_affect(value)

Getter

get_ao_light_affect()

环境遮挡对灯光照明的影响程度。如果 0,环境遮挡只影响环境光。如果 1,环境遮挡对灯光的影响和对环境光的影响一样大。这可以用来影响环境遮挡效果的强度,但通常看起来不真实。


Setter

set_flag(value)

Getter

get_flag()

如果 true,请使用 UV2 坐标从ao_texture中查找。


Setter

set_texture(value)

Getter

get_texture()

定义物体上给定点的环境遮挡量的纹理。


Setter

set_ao_texture_channel(value)

Getter

get_ao_texture_channel()

指定 ao_texture 的通道,其中存储环境遮挡信息。当您在一个纹理中存储多个效果的信息时,这很有用。例如,如果您将金属效果存储在R通道中,将粗糙度存储在B通道中,将环境遮挡存储在G通道中,就可以减少您使用的纹理数量。


Default

0

Setter

set_async_mode(value)

Getter

get_async_mode()

If ProjectSettings.rendering/gles3/shaders/shader_compilation_mode is Synchronous (with or without cache), this determines how this material must behave in regards to asynchronous shader compilation.

ASYNC_MODE_VISIBLE is the default and the best for most cases.


Setter

set_clearcoat(value)

Getter

get_clearcoat()

设置清漆效果的强度。设置为 0 与禁用清漆效果相同。


  • bool clearcoat_enabled

Default

false

Setter

set_feature(value)

Getter

get_feature()

如果 true,则启用清漆渲染。在照明计算中添加二级透明通路,从而导致添加镜面反射斑点。这使得材质看起来好像有一层透明层,可以是有光泽的也可以是粗糙的。

注意:如果材质将 flags_unshaded 设置为 true,则透明涂层渲染不可见。


Setter

set_clearcoat_gloss(value)

Getter

get_clearcoat_gloss()

设置清漆通道的粗糙度,数值越高,清漆越光滑,数值越低,清漆越粗糙。值越高,清漆越光滑,值越低,清漆越粗糙。


Setter

set_texture(value)

Getter

get_texture()

定义清漆效果的强度和清漆的光泽度的纹理。强度在红色通道中指定,光泽度在绿色通道中指定。


  • bool depth_deep_parallax

Setter

set_depth_deep_parallax(value)

Getter

is_depth_deep_parallax_enabled()

如果 true,着色器将在沿视图射线的多个点上读取深度纹理以确定遮挡和视差。这可能对性能要求很高,但会产生更逼真的深度映射。


Default

false

Setter

set_feature(value)

Getter

get_feature()

如果 true,则启用深度映射(也称为“视差映射”或“高度映射”)。另见 normal_enabled

注意:如果在同一材质上使用三平面贴图,则不支持深度贴图。如果启用 uv1_triplanar,则 depth_enabled 的值将被忽略。


  • bool depth_flip_binormal

Setter

set_depth_deep_parallax_flip_binormal(value)

Getter

get_depth_deep_parallax_flip_binormal()

如果 true,则在深度效果中使用之前会翻转副法线的方向。如果你对你的副法线的编码方式与深度效果有冲突,这可能是必要的。


  • bool depth_flip_tangent

Setter

set_depth_deep_parallax_flip_tangent(value)

Getter

get_depth_deep_parallax_flip_tangent()

如果 true,切线方向在深度效果中使用前会翻转。如果你对切线的编码方式与深度效果有冲突,这可能是必要的。


  • int depth_max_layers

Setter

set_depth_deep_parallax_max_layers(value)

Getter

get_depth_deep_parallax_max_layers()

使用 depth_deep_parallax 且视图方向垂直于对象表面时使用的层数。较高的数字对性能的要求更高,而较低的数字可能看起来不那么清晰。


  • int depth_min_layers

Setter

set_depth_deep_parallax_min_layers(value)

Getter

get_depth_deep_parallax_min_layers()

使用 depth_deep_parallax 且视图方向平行于对象表面时使用的层数。较高的数字对性能的要求更高,而较低的数字可能看起来不那么清晰。


Setter

set_depth_scale(value)

Getter

get_depth_scale()

缩放深度偏移效果。更高的数字将创建更大的深度。


Setter

set_texture(value)

Getter

get_texture()

用来确定某个像素深度的纹理。深度总是存储在红色通道中。


Setter

set_texture(value)

Getter

get_texture()

指定细节叠加的颜色的纹理。


Setter

set_detail_blend_mode(value)

Getter

get_detail_blend_mode()

指定 detail_albedo 应如何与当前 ALBEDO 混合。参阅 BlendMode 选项。


  • bool detail_enabled

Default

false

Setter

set_feature(value)

Getter

get_feature()

如果true,启用细节叠加。Detail是基于detail_mask在对象表面混合的第二个纹理。这可以用来给物体增加变化,或者在两种不同的反射率/法线纹理之间进行混合。


Setter

set_texture(value)

Getter

get_texture()

纹理用于指定细节纹理与基础纹理的混合方式。


Setter

set_texture(value)

Getter

get_texture()

指定细节叠加层每像素法线的纹理。

注意: Godot希望法线贴图使用X +,Y-和Z +坐标。请参阅this page,以比较流行引擎期望的法线地图坐标。


Setter

set_detail_uv(value)

Getter

get_detail_uv()

指定细节层是使用UV还是UV2。选项请参阅DetailUV


  • float distance_fade_max_distance

Setter

set_distance_fade_max_distance(value)

Getter

get_distance_fade_max_distance()

物体看起来完全不透明的距离。

注意:如果 distance_fade_max_distance 小于 distance_fade_min_distance,则行为相反。物体将在 distance_fade_max_distance 处开始逐渐消失,并在到达 distance_fade_min_distance 时完全消失。


  • float distance_fade_min_distance

Setter

set_distance_fade_min_distance(value)

Getter

get_distance_fade_min_distance()

物体开始变得可见的距离。如果物体的距离小于这个距离,它将是不可见的。

注意:如果 distance_fade_min_distance 大于 distance_fade_max_distance,则行为将相反。物体将在 distance_fade_max_distance 处开始逐渐消失,并在到达 distance_fade_min_distance 时完全消失。


Default

0

Setter

set_distance_fade(value)

Getter

get_distance_fade()

指定要使用的淡入淡出类型。可以是任何一个DistanceFadeMode


Setter

set_emission(value)

Getter

get_emission()

发出的光的颜色。参阅emission_enabled


  • bool emission_enabled

Default

false

Setter

set_feature(value)

Getter

get_feature()

如果 true,物体会发光。发光使物体看起来更亮。如果使用 GIProbeBakedLightmap 并且此对象用于烘焙照明,则该对象还可以将光投射到其他对象上。


Setter

set_emission_energy(value)

Getter

get_emission_energy()

发出的光的强度。参阅emission_enabled


  • bool emission_on_uv2

Setter

set_flag(value)

Getter

get_flag()

使用UV2emission_texture中读取。


Setter

set_emission_operator(value)

Getter

get_emission_operator()

设置emissionemission_texture的交互方式。可以是加法或乘法。选项参阅 EmissionOperator


Setter

set_texture(value)

Getter

get_texture()

纹理,指定某点的表面发光的程度。


  • bool flags_albedo_tex_force_srgb

Default

false

Setter

set_flag(value)

Getter

get_flag()

强制将 albedo_texture 从sRGB空间转换为线性空间。


  • bool flags_disable_ambient_light

Default

false

Setter

set_flag(value)

Getter

get_flag()

如果true,则对象不接收环境光。


  • bool flags_do_not_receive_shadows

Default

false

Setter

set_flag(value)

Getter

get_flag()

如果true,则对象不会收到投射到其上的阴影。


  • bool flags_ensure_correct_normals

Default

false

Setter

set_flag(value)

Getter

get_flag()

如果 true,着色器将计算额外的操作,以确保在使用非均匀比例时法线保持正确。仅在使用非均匀缩放时启用。


  • bool flags_fixed_size

Default

false

Setter

set_flag(value)

Getter

get_flag()

如果true,则无论距离远近,对象都以相同的尺寸呈现。


  • bool flags_no_depth_test

Default

false

Setter

set_flag(value)

Getter

get_flag()

如果true,深度测试被禁用,对象将按渲染顺序绘制。


  • bool flags_transparent

Default

false

Setter

set_feature(value)

Getter

get_feature()

如果true,则启用物体的透明度。参阅 params_blend_mode


  • bool flags_unshaded

Default

false

Setter

set_flag(value)

Getter

get_flag()

如果 true,则物体不受光照影响。


  • bool flags_use_point_size

Default

false

Setter

set_flag(value)

Getter

get_flag()

如果true,可以改变渲染点的大小。

注意:这只对几何体是基于点而不是基于三角形的对象有效。参阅params_point_size


  • bool flags_use_shadow_to_opacity

Default

false

Setter

set_flag(value)

Getter

get_flag()

如果 true,启用 “阴影到不透明度 “的渲染模式,在该模式下,光照会修改 alpha,使阴影区域不透明,非阴影区域透明。对于在AR中把阴影叠加到相机画面上很有用。


  • bool flags_vertex_lighting

Default

false

Setter

set_flag(value)

Getter

get_flag()

如果 true,则按顶点而不是按像素计算光照。这可能会提高低端设备的性能。


  • bool flags_world_triplanar

Default

false

Setter

set_flag(value)

Getter

get_flag()

如果 true,则在世界空间而不是物体局部空间中计算三平面映射。另见 uv1_triplanar


Default

0.0

Setter

set_metallic(value)

Getter

get_metallic()

高值使材质看起来更像金属。非金属使用其反射率作为漫射色,并在镜面反射上添加漫射。对于非金属,反射出现在反照率颜色之上。金属使用其反射率作为镜面反射的倍数,并将漫射色设置为黑色,从而产生有色反射。材质在全金属或全非金属时效果更好,介于 01 之间的值只能用于金属和非金属部分之间的混合。要改变反射量,请使用roughness


Default

0.5

Setter

set_specular(value)

Getter

get_specular()

设置镜面光叶的大小。镜面叶是光源反射的亮点。

注意:metallic不同,这不是能量守恒,所以在大多数情况下,应该将其保留在0.5。参阅roughness


Setter

set_texture(value)

Getter

get_texture()

用于指定对象的金属质感。此值乘metallic


Default

0

Setter

set_metallic_texture_channel(value)

Getter

get_metallic_texture_channel()

指定存储金属信息的 metallic_texture 的通道。当您在一个纹理中存储多个效果的信息时,这很有用。例如,如果您将金属效果存储在红色通道中,将粗糙度存储在蓝色通道中,将环境遮挡存储在绿色通道中,就可以减少您使用的纹理数量。


  • bool normal_enabled

Default

false

Setter

set_feature(value)

Getter

get_feature()

如果true,则启用法线映射。


Setter

set_normal_scale(value)

Getter

get_normal_scale()

法线贴图的效果强度。


Setter

set_texture(value)

Getter

get_texture()

用来指定像素点的法线的纹理。normal_texture只使用红色和绿色通道,忽略蓝色和alpha通道。从 normal_texture 读取的法线围绕 Mesh 提供的表面法线定向。

注意: Mesh必须在其顶点数据中同时定义法线和切线。否则,法线贴图将无法正确渲染,会出现整个表面变暗的情况。如果用SurfaceTool创建几何体,可以使用SurfaceTool.generate_normalsSurfaceTool.generate_tangents来分别自动生成法线和切线。

注意: Godot希望法线贴图使用X+、Y-和Z+坐标。请参阅该页,了解流行引擎所期望的法线贴图坐标的比较。


  • float params_alpha_scissor_threshold

Setter

set_alpha_scissor_threshold(value)

Getter

get_alpha_scissor_threshold()

alpha scissor 会丢弃数值的阈值。


  • bool params_billboard_keep_scale

Default

false

Setter

set_flag(value)

Getter

get_flag()

如果 true,着色器将保持为网格缩放设置。否则,当做广告牌时,缩放会丢失。仅在 params_billboard_modeBILLBOARD_ENABLED 时适用。


Default

0

Setter

set_billboard_mode(value)

Getter

get_billboard_mode()

控制对象如何面向摄像机。参阅BillboardMode

注意: 广告牌模式不适合VR,因为当屏幕贴在你的头部而不是在桌子上时,摄像机的左右向量不是水平的。参阅GitHub issue #41567


Default

0

Setter

set_blend_mode(value)

Getter

get_blend_mode()

材质的混合模式。

注意:Mix 以外的值会强制对象进入透明管道。参阅 BlendMode


Default

0

Setter

set_cull_mode(value)

Getter

get_cull_mode()

渲染背面时,不绘制对象的哪一面。参阅 CullMode


Default

0

Setter

set_depth_draw_mode(value)

Getter

get_depth_draw_mode()

确定深度渲染发生的时间。请参阅深度绘制模式 DepthDrawMode 。另见flags_transparent


Default

0

Setter

set_diffuse_mode(value)

Getter

get_diffuse_mode()

用于漫反射光散射的算法。参见 DiffuseMode


Default

false

Setter

set_grow_enabled(value)

Getter

is_grow_enabled()

如果true,启用顶点生长设置。参见params_grow_amount


  • float params_grow_amount

Setter

set_grow(value)

Getter

get_grow()

沿着法线的方向生长对象顶点。


Default

1.0

Setter

set_line_width(value)

Getter

get_line_width()

目前在 Godot 中未实现。


Default

1.0

Setter

set_point_size(value)

Getter

get_point_size()

点的大小,以像素为单位。参见flags_use_point_size


Default

0

Setter

set_specular_mode(value)

Getter

get_specular_mode()

镜面小球的渲染方法。参阅SpecularMode


  • bool params_use_alpha_scissor

Default

false

Setter

set_flag(value)

Getter

get_flag()

如果true,着色器将丢弃所有alpha值小于params_alpha_scissor_threshold的像素。


  • int particles_anim_h_frames

Setter

set_particles_anim_h_frames(value)

Getter

get_particles_anim_h_frames()

粒子精灵表中的水平帧数。仅在使用 BILLBOARD_PARTICLES 时启用。参阅params_billboard_mode


  • bool particles_anim_loop

Setter

set_particles_anim_loop(value)

Getter

get_particles_anim_loop()

如果 true,循环粒子动画。仅在使用 BILLBOARD_PARTICLES 时启用。参阅params_billboard_mode


  • int particles_anim_v_frames

Setter

set_particles_anim_v_frames(value)

Getter

get_particles_anim_v_frames()

粒子精灵表中的垂直帧数。仅在使用 BILLBOARD_PARTICLES 时启用。参阅params_billboard_mode


  • float proximity_fade_distance

Setter

set_proximity_fade_distance(value)

Getter

get_proximity_fade_distance()

渐变效果发生的距离。距离越大,物体褪色的时间越长。


  • bool proximity_fade_enable

Default

false

Setter

set_proximity_fade(value)

Getter

is_proximity_fade_enabled()

如果true,则启用接近淡出效果。邻近淡出效果会根据每个像素与另一个对象的距离淡出。


  • bool refraction_enabled

Default

false

Setter

set_feature(value)

Getter

get_feature()

如果true,则启用折射效果。折射是根据来自物体后面的光线来扭曲透明度的。当使用GLES3后端时,材质的粗糙度值会影响折射的模糊度。较高的粗糙度值会使折射看起来更模糊。


Setter

set_refraction(value)

Getter

get_refraction()

折射效果的强度。较高的值会使折射的表现更加扭曲。


Setter

set_texture(value)

Getter

get_texture()

控制每个像素折射强度的纹理。乘以refraction_scale


Setter

set_refraction_texture_channel(value)

Getter

get_refraction_texture_channel()

指定存储折射信息的refraction_texture的通道。当你在纹理中存储多种效果的信息时,这很有用。例如,如果你在红色通道中存储金属效果,在蓝色通道中存储粗糙度,在绿色通道中存储环境遮挡,就可以减少使用纹理的数量。


Setter

set_rim(value)

Getter

get_rim()

设置边缘照明效果的强度。


Default

false

Setter

set_feature(value)

Getter

get_feature()

如果 true,则启用边缘效果。边缘照明增加了物体上掠过角度的亮度。

注意: 如果材质将 flags_unshaded 设置为 true,则边缘光照不可见。


Setter

set_texture(value)

Getter

get_texture()

纹理用于设置每个像素的边缘光照效果的强度。乘以rim


Setter

set_rim_tint(value)

Getter

get_rim_tint()

渲染边缘效果时,混合光照色和反射色的数量。如果0表示使用光色,1表示使用反照色。一般来说,中间值的效果最好。


Default

1.0

Setter

set_roughness(value)

Getter

get_roughness()

表面反射。0 值表示一面完美的镜像,而 1 值则完全模糊了反射。另请参阅metallic


Setter

set_texture(value)

Getter

get_texture()

用于控制每个像素粗糙度的纹理。乘以roughness


Default

0

Setter

set_roughness_texture_channel(value)

Getter

get_roughness_texture_channel()

指定 ao_texture 的通道,其中存储环境遮挡信息。当您在一个纹理中存储多个效果的信息时,这很有用。例如,如果您将金属效果存储在R通道中,将粗糙度存储在B通道中,将环境遮挡存储在G通道中,就可以减少您使用的纹理数量。


  • bool subsurf_scatter_enabled

Default

false

Setter

set_feature(value)

Getter

get_feature()

如果true,则启用次表面散射。模拟光线穿透物体表面,被散射,然后出现。


  • float subsurf_scatter_strength

Setter

set_subsurface_scattering_strength(value)

Getter

get_subsurface_scattering_strength()

地下散射效应的强度。


Setter

set_texture(value)

Getter

get_texture()

用于控制次表面散射强度的纹理。存储在红色纹理通道中。乘以subsurf_scatter_strength


Setter

set_transmission(value)

Getter

get_transmission()

传输效果使用的颜色。表示穿过物体的光。


  • bool transmission_enabled

Default

false

Setter

set_feature(value)

Getter

get_feature()

如果 true,则启用传输效果。


Setter

set_texture(value)

Getter

get_texture()

纹理用于控制每个像素的传输效果。添加到transmission


Default

Vector3( 0, 0, 0 )

Setter

set_uv1_offset(value)

Getter

get_uv1_offset()

UV坐标的偏移量。这个量将被添加到顶点函数中的 UV 中。这可以用来偏移纹理。


Default

Vector3( 1, 1, 1 )

Setter

set_uv1_scale(value)

Getter

get_uv1_scale()

缩放 UV 坐标的多少。这个值乘以顶点函数中的UV


Default

false

Setter

set_flag(value)

Getter

get_flag()

如果 true,纹理将不使用 UV,而是使用三平面纹理查找来确定如何应用纹理。三平面纹理使用对象表面的方向来混合纹理坐标之间。它从源纹理中读取3次,每个轴一次,然后根据像素与每个轴的紧密程度在结果之间进行混合。这通常用于自然特征,以获得真实的材质混合。由于三平面纹理处理每一个像素需要更多的纹理读取,所以它比普通的UV纹理处理要慢得多。此外,由于它是在三个轴之间混合纹理,所以当你试图实现清晰的纹理时,它是不合适的。


  • float uv1_triplanar_sharpness

Default

1.0

Setter

set_uv1_triplanar_blend_sharpness(value)

Getter

get_uv1_triplanar_blend_sharpness()

较低的数字能使纹理更加柔和,而较高的数字则能使纹理更加锐利。


Default

Vector3( 0, 0, 0 )

Setter

set_uv2_offset(value)

Getter

get_uv2_offset()

UV2坐标的偏移量。这个量将被添加到顶点函数中的 UV2 中。这可以用来偏移纹理。


Default

Vector3( 1, 1, 1 )

Setter

set_uv2_scale(value)

Getter

get_uv2_scale()

缩放 UV 坐标的多少。这个值乘以顶点函数中的UV


Default

false

Setter

set_flag(value)

Getter

get_flag()

如果 true,纹理将不使用 UV,而是使用三平面纹理查找来确定如何应用纹理。三平面纹理使用对象表面的方向来混合纹理坐标之间。它从源纹理中读取 3 次,每个轴一次,然后根据像素与每个轴的紧密程度在结果之间进行混合。这通常用于自然特征,以获得真实的材质混合。由于三平面纹理处理每一个像素需要更多的纹理读取,所以它比普通的 UV 纹理处理要慢得多。此外,由于它是在三个轴之间混合纹理,所以当你试图实现清晰的纹理时,它是不合适的。


  • float uv2_triplanar_sharpness

Default

1.0

Setter

set_uv2_triplanar_blend_sharpness(value)

Getter

get_uv2_triplanar_blend_sharpness()

较低的数字能使纹理更加柔和,而较高的数字则能使纹理更加锐利。


  • bool vertex_color_is_srgb

Default

false

Setter

set_flag(value)

Getter

get_flag()

如果true,则模型的顶点颜色将作为 sRGB 模式处理。


  • bool vertex_color_use_as_albedo

Default

false

Setter

set_flag(value)

Getter

get_flag()

如果true,则使用顶点颜色作为反射率颜色。

方法说明

如果指定的 Feature 被启用,返回 true


如果指定的标志被启用,返回 true。参阅 Flags 枚举器的选项。


返回与指定的 TextureParam 关联的 Texture


如果 true,则启用指定的 FeatureSpatialMaterials 中可用的许多功能需要在使用前启用。这样,只有在指定时才会产生使用该功能的成本。也可以通过将相应的成员设置为 true 来启用功能。


如果 true,则启用指定的标志。标志是可以打开和关闭的可选行为。使用该函数一次只能启用一个标志,不能将标志枚举器进行位掩码,以一次启用或禁用多个标志。也可以通过将相应成员设置为 true 来启用标志。有关选项,请参阅 Flags 枚举器。


设置指定的 TextureParam 所使用的 Texture。该函数在设置以 *_texture 结尾的成员时调用。