SpatialMaterial
Inherits: Material < Resource < Reference < Object
默认的 3D 渲染材质。
描述
这提供了一个默认的材质,具有多种渲染功能和属性,无需编写着色器代码。详情请看下面的教程。
教程
属性
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
方法
get_feature ( Feature feature ) const | |
get_texture ( TextureParam param ) const | |
void | set_feature ( Feature feature, bool enable ) |
void | |
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:
FEATURE_TRANSPARENT = 0 —- 用于设置 flags_transparent 的常量。
FEATURE_EMISSION = 1 —- 用于设置emission_enabled的常量。
FEATURE_NORMAL_MAPPING = 2 —- 用于设置normal_enabled的常量。
FEATURE_RIM = 3 —- 用于设置rim_enabled的常量。
FEATURE_CLEARCOAT = 4 —- 用于设置clearcoat_enabled的常量。
FEATURE_ANISOTROPY = 5 —- 用于设置 anisotropy_enabled 的常量。
FEATURE_AMBIENT_OCCLUSION = 6 —- 用于设置ao_enabled的常量。
FEATURE_DEPTH_MAPPING = 7 —- 用于设置 depth_enabled 的常量。
FEATURE_SUBSURACE_SCATTERING = 8 —- 用于设置subsurf_scatter_enabled的常量。
FEATURE_TRANSMISSION = 9 —- 用于设置 transmission_enabled 的常量。
FEATURE_REFRACTION = 10 —- 用于设置refraction_enabled的常量。
FEATURE_DETAIL = 11 —- 用于设置detail_enabled的常量。
FEATURE_MAX = 12 —- 表示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_mode 为 BILLBOARD_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 —- 当分配给Particles和CPUParticles节点时用于粒子系统。启用
particles_anim_*
属性。
为了播放动画,ParticlesMaterial.anim_speed或CPUParticles.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.
属性说明
- Color albedo_color
Default |
|
Setter | set_albedo(value) |
Getter | get_albedo() |
材质的底色。
- Texture albedo_texture
Setter | set_texture(value) |
Getter | get_texture() |
纹理乘以 albedo_color。用于对象的基本纹理。
- float anisotropy
Setter | set_anisotropy(value) |
Getter | get_anisotropy() |
各向异性效应的强度。
- bool anisotropy_enabled
Default |
|
Setter | set_feature(value) |
Getter | get_feature() |
如果 true
,则启用各向异性。改变镜面小球的形状,并使其与切线空间对齐。此功能需要有网格切线才行。如果网格不包含切线,各向异性的效果就会被破坏。
- Texture anisotropy_flowmap
Setter | set_texture(value) |
Getter | get_texture() |
用于各向异性计算的偏移切线图的纹理。
- bool ao_enabled
Default |
|
Setter | set_feature(value) |
Getter | get_feature() |
如果 true
,启用环境遮挡。环境遮挡根据 ao_texture 使区域变暗。
- float ao_light_affect
Setter | set_ao_light_affect(value) |
Getter | get_ao_light_affect() |
环境遮挡对灯光照明的影响程度。如果 0
,环境遮挡只影响环境光。如果 1
,环境遮挡对灯光的影响和对环境光的影响一样大。这可以用来影响环境遮挡效果的强度,但通常看起来不真实。
- bool ao_on_uv2
Setter | set_flag(value) |
Getter | get_flag() |
如果 true
,请使用 UV2
坐标从ao_texture中查找。
- Texture ao_texture
Setter | set_texture(value) |
Getter | get_texture() |
定义物体上给定点的环境遮挡量的纹理。
- TextureChannel ao_texture_channel
Setter | set_ao_texture_channel(value) |
Getter | get_ao_texture_channel() |
指定 ao_texture 的通道,其中存储环境遮挡信息。当您在一个纹理中存储多个效果的信息时,这很有用。例如,如果您将金属效果存储在R通道中,将粗糙度存储在B通道中,将环境遮挡存储在G通道中,就可以减少您使用的纹理数量。
- AsyncMode async_mode
Default |
|
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.
- float clearcoat
Setter | set_clearcoat(value) |
Getter | get_clearcoat() |
设置清漆效果的强度。设置为 0
与禁用清漆效果相同。
- bool clearcoat_enabled
Default |
|
Setter | set_feature(value) |
Getter | get_feature() |
如果 true
,则启用清漆渲染。在照明计算中添加二级透明通路,从而导致添加镜面反射斑点。这使得材质看起来好像有一层透明层,可以是有光泽的也可以是粗糙的。
注意:如果材质将 flags_unshaded 设置为 true
,则透明涂层渲染不可见。
- float clearcoat_gloss
Setter | set_clearcoat_gloss(value) |
Getter | get_clearcoat_gloss() |
设置清漆通道的粗糙度,数值越高,清漆越光滑,数值越低,清漆越粗糙。值越高,清漆越光滑,值越低,清漆越粗糙。
- Texture clearcoat_texture
Setter | set_texture(value) |
Getter | get_texture() |
定义清漆效果的强度和清漆的光泽度的纹理。强度在红色通道中指定,光泽度在绿色通道中指定。
- bool depth_deep_parallax
Setter | set_depth_deep_parallax(value) |
Getter | is_depth_deep_parallax_enabled() |
如果 true
,着色器将在沿视图射线的多个点上读取深度纹理以确定遮挡和视差。这可能对性能要求很高,但会产生更逼真的深度映射。
- bool depth_enabled
Default |
|
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 且视图方向平行于对象表面时使用的层数。较高的数字对性能的要求更高,而较低的数字可能看起来不那么清晰。
- float depth_scale
Setter | set_depth_scale(value) |
Getter | get_depth_scale() |
缩放深度偏移效果。更高的数字将创建更大的深度。
- Texture depth_texture
Setter | set_texture(value) |
Getter | get_texture() |
用来确定某个像素深度的纹理。深度总是存储在红色通道中。
- Texture detail_albedo
Setter | set_texture(value) |
Getter | get_texture() |
指定细节叠加的颜色的纹理。
- BlendMode detail_blend_mode
Setter | set_detail_blend_mode(value) |
Getter | get_detail_blend_mode() |
指定 detail_albedo 应如何与当前 ALBEDO
混合。参阅 BlendMode 选项。
- bool detail_enabled
Default |
|
Setter | set_feature(value) |
Getter | get_feature() |
如果true
,启用细节叠加。Detail是基于detail_mask在对象表面混合的第二个纹理。这可以用来给物体增加变化,或者在两种不同的反射率/法线纹理之间进行混合。
- Texture detail_mask
Setter | set_texture(value) |
Getter | get_texture() |
纹理用于指定细节纹理与基础纹理的混合方式。
- Texture detail_normal
Setter | set_texture(value) |
Getter | get_texture() |
指定细节叠加层每像素法线的纹理。
注意: Godot希望法线贴图使用X +,Y-和Z +坐标。请参阅this page,以比较流行引擎期望的法线地图坐标。
- DetailUV detail_uv_layer
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
时完全消失。
- DistanceFadeMode distance_fade_mode
Default |
|
Setter | set_distance_fade(value) |
Getter | get_distance_fade() |
指定要使用的淡入淡出类型。可以是任何一个DistanceFadeMode。
- Color emission
Setter | set_emission(value) |
Getter | get_emission() |
发出的光的颜色。参阅emission_enabled。
- bool emission_enabled
Default |
|
Setter | set_feature(value) |
Getter | get_feature() |
如果 true
,物体会发光。发光使物体看起来更亮。如果使用 GIProbe 或 BakedLightmap 并且此对象用于烘焙照明,则该对象还可以将光投射到其他对象上。
- float emission_energy
Setter | set_emission_energy(value) |
Getter | get_emission_energy() |
发出的光的强度。参阅emission_enabled。
- bool emission_on_uv2
Setter | set_flag(value) |
Getter | get_flag() |
使用UV2
从emission_texture中读取。
- EmissionOperator emission_operator
Setter | set_emission_operator(value) |
Getter | get_emission_operator() |
设置emission与emission_texture的交互方式。可以是加法或乘法。选项参阅 EmissionOperator 。
- Texture emission_texture
Setter | set_texture(value) |
Getter | get_texture() |
纹理,指定某点的表面发光的程度。
- bool flags_albedo_tex_force_srgb
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
强制将 albedo_texture 从sRGB空间转换为线性空间。
- bool flags_disable_ambient_light
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果true
,则对象不接收环境光。
- bool flags_do_not_receive_shadows
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果true
,则对象不会收到投射到其上的阴影。
- bool flags_ensure_correct_normals
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果 true
,着色器将计算额外的操作,以确保在使用非均匀比例时法线保持正确。仅在使用非均匀缩放时启用。
- bool flags_fixed_size
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果true
,则无论距离远近,对象都以相同的尺寸呈现。
- bool flags_no_depth_test
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果true
,深度测试被禁用,对象将按渲染顺序绘制。
- bool flags_transparent
Default |
|
Setter | set_feature(value) |
Getter | get_feature() |
如果true
,则启用物体的透明度。参阅 params_blend_mode。
- bool flags_unshaded
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果 true
,则物体不受光照影响。
- bool flags_use_point_size
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果true
,可以改变渲染点的大小。
注意:这只对几何体是基于点而不是基于三角形的对象有效。参阅params_point_size。
- bool flags_use_shadow_to_opacity
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果 true
,启用 “阴影到不透明度 “的渲染模式,在该模式下,光照会修改 alpha,使阴影区域不透明,非阴影区域透明。对于在AR中把阴影叠加到相机画面上很有用。
- bool flags_vertex_lighting
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果 true
,则按顶点而不是按像素计算光照。这可能会提高低端设备的性能。
- bool flags_world_triplanar
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果 true
,则在世界空间而不是物体局部空间中计算三平面映射。另见 uv1_triplanar。
- float metallic
Default |
|
Setter | set_metallic(value) |
Getter | get_metallic() |
高值使材质看起来更像金属。非金属使用其反射率作为漫射色,并在镜面反射上添加漫射。对于非金属,反射出现在反照率颜色之上。金属使用其反射率作为镜面反射的倍数,并将漫射色设置为黑色,从而产生有色反射。材质在全金属或全非金属时效果更好,介于 0
和 1
之间的值只能用于金属和非金属部分之间的混合。要改变反射量,请使用roughness。
- float metallic_specular
Default |
|
Setter | set_specular(value) |
Getter | get_specular() |
设置镜面光叶的大小。镜面叶是光源反射的亮点。
注意:与metallic不同,这不是能量守恒,所以在大多数情况下,应该将其保留在0.5
。参阅roughness。
- Texture metallic_texture
Setter | set_texture(value) |
Getter | get_texture() |
用于指定对象的金属质感。此值乘metallic。
- TextureChannel metallic_texture_channel
Default |
|
Setter | set_metallic_texture_channel(value) |
Getter | get_metallic_texture_channel() |
指定存储金属信息的 metallic_texture 的通道。当您在一个纹理中存储多个效果的信息时,这很有用。例如,如果您将金属效果存储在红色通道中,将粗糙度存储在蓝色通道中,将环境遮挡存储在绿色通道中,就可以减少您使用的纹理数量。
- bool normal_enabled
Default |
|
Setter | set_feature(value) |
Getter | get_feature() |
如果true
,则启用法线映射。
- float normal_scale
Setter | set_normal_scale(value) |
Getter | get_normal_scale() |
法线贴图的效果强度。
- Texture normal_texture
Setter | set_texture(value) |
Getter | get_texture() |
用来指定像素点的法线的纹理。normal_texture
只使用红色和绿色通道,忽略蓝色和alpha通道。从 normal_texture
读取的法线围绕 Mesh 提供的表面法线定向。
注意: Mesh必须在其顶点数据中同时定义法线和切线。否则,法线贴图将无法正确渲染,会出现整个表面变暗的情况。如果用SurfaceTool创建几何体,可以使用SurfaceTool.generate_normals和SurfaceTool.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 |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果 true
,着色器将保持为网格缩放设置。否则,当做广告牌时,缩放会丢失。仅在 params_billboard_mode 为 BILLBOARD_ENABLED 时适用。
- BillboardMode params_billboard_mode
Default |
|
Setter | set_billboard_mode(value) |
Getter | get_billboard_mode() |
控制对象如何面向摄像机。参阅BillboardMode。
注意: 广告牌模式不适合VR,因为当屏幕贴在你的头部而不是在桌子上时,摄像机的左右向量不是水平的。参阅GitHub issue #41567。
- BlendMode params_blend_mode
Default |
|
Setter | set_blend_mode(value) |
Getter | get_blend_mode() |
材质的混合模式。
注意:除 Mix
以外的值会强制对象进入透明管道。参阅 BlendMode。
- CullMode params_cull_mode
Default |
|
Setter | set_cull_mode(value) |
Getter | get_cull_mode() |
渲染背面时,不绘制对象的哪一面。参阅 CullMode。
- DepthDrawMode params_depth_draw_mode
Default |
|
Setter | set_depth_draw_mode(value) |
Getter | get_depth_draw_mode() |
确定深度渲染发生的时间。请参阅深度绘制模式 DepthDrawMode 。另见flags_transparent。
- DiffuseMode params_diffuse_mode
Default |
|
Setter | set_diffuse_mode(value) |
Getter | get_diffuse_mode() |
用于漫反射光散射的算法。参见 DiffuseMode。
- bool params_grow
Default |
|
Setter | set_grow_enabled(value) |
Getter | is_grow_enabled() |
如果true
,启用顶点生长设置。参见params_grow_amount。
- float params_grow_amount
Setter | set_grow(value) |
Getter | get_grow() |
沿着法线的方向生长对象顶点。
- float params_line_width
Default |
|
Setter | set_line_width(value) |
Getter | get_line_width() |
目前在 Godot 中未实现。
- float params_point_size
Default |
|
Setter | set_point_size(value) |
Getter | get_point_size() |
点的大小,以像素为单位。参见flags_use_point_size。
- SpecularMode params_specular_mode
Default |
|
Setter | set_specular_mode(value) |
Getter | get_specular_mode() |
镜面小球的渲染方法。参阅SpecularMode。
- bool params_use_alpha_scissor
Default |
|
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 |
|
Setter | set_proximity_fade(value) |
Getter | is_proximity_fade_enabled() |
如果true
,则启用接近淡出效果。邻近淡出效果会根据每个像素与另一个对象的距离淡出。
- bool refraction_enabled
Default |
|
Setter | set_feature(value) |
Getter | get_feature() |
如果true
,则启用折射效果。折射是根据来自物体后面的光线来扭曲透明度的。当使用GLES3后端时,材质的粗糙度值会影响折射的模糊度。较高的粗糙度值会使折射看起来更模糊。
- float refraction_scale
Setter | set_refraction(value) |
Getter | get_refraction() |
折射效果的强度。较高的值会使折射的表现更加扭曲。
- Texture refraction_texture
Setter | set_texture(value) |
Getter | get_texture() |
控制每个像素折射强度的纹理。乘以refraction_scale。
- TextureChannel refraction_texture_channel
Setter | set_refraction_texture_channel(value) |
Getter | get_refraction_texture_channel() |
指定存储折射信息的refraction_texture的通道。当你在纹理中存储多种效果的信息时,这很有用。例如,如果你在红色通道中存储金属效果,在蓝色通道中存储粗糙度,在绿色通道中存储环境遮挡,就可以减少使用纹理的数量。
- float rim
Setter | set_rim(value) |
Getter | get_rim() |
设置边缘照明效果的强度。
- bool rim_enabled
Default |
|
Setter | set_feature(value) |
Getter | get_feature() |
如果 true
,则启用边缘效果。边缘照明增加了物体上掠过角度的亮度。
注意: 如果材质将 flags_unshaded 设置为 true
,则边缘光照不可见。
- Texture rim_texture
Setter | set_texture(value) |
Getter | get_texture() |
纹理用于设置每个像素的边缘光照效果的强度。乘以rim。
- float rim_tint
Setter | set_rim_tint(value) |
Getter | get_rim_tint() |
渲染边缘效果时,混合光照色和反射色的数量。如果0
表示使用光色,1
表示使用反照色。一般来说,中间值的效果最好。
- float roughness
Default |
|
Setter | set_roughness(value) |
Getter | get_roughness() |
表面反射。0
值表示一面完美的镜像,而 1
值则完全模糊了反射。另请参阅metallic。
- Texture roughness_texture
Setter | set_texture(value) |
Getter | get_texture() |
用于控制每个像素粗糙度的纹理。乘以roughness。
- TextureChannel roughness_texture_channel
Default |
|
Setter | set_roughness_texture_channel(value) |
Getter | get_roughness_texture_channel() |
指定 ao_texture 的通道,其中存储环境遮挡信息。当您在一个纹理中存储多个效果的信息时,这很有用。例如,如果您将金属效果存储在R通道中,将粗糙度存储在B通道中,将环境遮挡存储在G通道中,就可以减少您使用的纹理数量。
- bool subsurf_scatter_enabled
Default |
|
Setter | set_feature(value) |
Getter | get_feature() |
如果true
,则启用次表面散射。模拟光线穿透物体表面,被散射,然后出现。
- float subsurf_scatter_strength
Setter | set_subsurface_scattering_strength(value) |
Getter | get_subsurface_scattering_strength() |
地下散射效应的强度。
- Texture subsurf_scatter_texture
Setter | set_texture(value) |
Getter | get_texture() |
用于控制次表面散射强度的纹理。存储在红色纹理通道中。乘以subsurf_scatter_strength。
- Color transmission
Setter | set_transmission(value) |
Getter | get_transmission() |
传输效果使用的颜色。表示穿过物体的光。
- bool transmission_enabled
Default |
|
Setter | set_feature(value) |
Getter | get_feature() |
如果 true
,则启用传输效果。
- Texture transmission_texture
Setter | set_texture(value) |
Getter | get_texture() |
纹理用于控制每个像素的传输效果。添加到transmission。
- Vector3 uv1_offset
Default |
|
Setter | set_uv1_offset(value) |
Getter | get_uv1_offset() |
UV
坐标的偏移量。这个量将被添加到顶点函数中的 UV
中。这可以用来偏移纹理。
- Vector3 uv1_scale
Default |
|
Setter | set_uv1_scale(value) |
Getter | get_uv1_scale() |
缩放 UV
坐标的多少。这个值乘以顶点函数中的UV
。
- bool uv1_triplanar
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果 true
,纹理将不使用 UV
,而是使用三平面纹理查找来确定如何应用纹理。三平面纹理使用对象表面的方向来混合纹理坐标之间。它从源纹理中读取3次,每个轴一次,然后根据像素与每个轴的紧密程度在结果之间进行混合。这通常用于自然特征,以获得真实的材质混合。由于三平面纹理处理每一个像素需要更多的纹理读取,所以它比普通的UV纹理处理要慢得多。此外,由于它是在三个轴之间混合纹理,所以当你试图实现清晰的纹理时,它是不合适的。
- float uv1_triplanar_sharpness
Default |
|
Setter | set_uv1_triplanar_blend_sharpness(value) |
Getter | get_uv1_triplanar_blend_sharpness() |
较低的数字能使纹理更加柔和,而较高的数字则能使纹理更加锐利。
- Vector3 uv2_offset
Default |
|
Setter | set_uv2_offset(value) |
Getter | get_uv2_offset() |
UV2
坐标的偏移量。这个量将被添加到顶点函数中的 UV2
中。这可以用来偏移纹理。
- Vector3 uv2_scale
Default |
|
Setter | set_uv2_scale(value) |
Getter | get_uv2_scale() |
缩放 UV
坐标的多少。这个值乘以顶点函数中的UV
。
- bool uv2_triplanar
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果 true
,纹理将不使用 UV
,而是使用三平面纹理查找来确定如何应用纹理。三平面纹理使用对象表面的方向来混合纹理坐标之间。它从源纹理中读取 3 次,每个轴一次,然后根据像素与每个轴的紧密程度在结果之间进行混合。这通常用于自然特征,以获得真实的材质混合。由于三平面纹理处理每一个像素需要更多的纹理读取,所以它比普通的 UV 纹理处理要慢得多。此外,由于它是在三个轴之间混合纹理,所以当你试图实现清晰的纹理时,它是不合适的。
- float uv2_triplanar_sharpness
Default |
|
Setter | set_uv2_triplanar_blend_sharpness(value) |
Getter | get_uv2_triplanar_blend_sharpness() |
较低的数字能使纹理更加柔和,而较高的数字则能使纹理更加锐利。
- bool vertex_color_is_srgb
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果true
,则模型的顶点颜色将作为 sRGB 模式处理。
- bool vertex_color_use_as_albedo
Default |
|
Setter | set_flag(value) |
Getter | get_flag() |
如果true
,则使用顶点颜色作为反射率颜色。
方法说明
如果指定的 Feature 被启用,返回 true
。
如果指定的标志被启用,返回 true
。参阅 Flags 枚举器的选项。
- Texture get_texture ( TextureParam param ) const
返回与指定的 TextureParam 关联的 Texture。
如果 true
,则启用指定的 Feature。 SpatialMaterial
s 中可用的许多功能需要在使用前启用。这样,只有在指定时才会产生使用该功能的成本。也可以通过将相应的成员设置为 true
来启用功能。
如果 true
,则启用指定的标志。标志是可以打开和关闭的可选行为。使用该函数一次只能启用一个标志,不能将标志枚举器进行位掩码,以一次启用或禁用多个标志。也可以通过将相应成员设置为 true
来启用标志。有关选项,请参阅 Flags 枚举器。
- void set_texture ( TextureParam param, Texture texture )
设置指定的 TextureParam 所使用的 Texture。该函数在设置以 *_texture
结尾的成员时调用。