RenderingServer¶
继承: Object
任何可见内容的服务器。
描述¶
渲染服务器是一切可见的API后端,整个场景系统挂载在上面显示,渲染服务器是完全不透明的:内部完全implementation-specific,无法访问。
渲染服务器可用于完全绕过场景/Item系统。这可以在场景系统成为瓶颈的情况下提高性能,但在其他情况下不会提高性能(例如,如果GPU已经被充分利用)。
使用*_create函数创建资源。这些函数返回的RID不是对对象本身的引用,而是指向这些对象的不透明指针。
所有对象都被绘制到一个视口。您可以使用附加到SceneTree的Viewport,也可以使用viewport_create()自己创建一个。使用自定义场景或画布时,需要使用viewport_set_scenario()或viewport_attach_canvas()将场景或画布附加到视口。
场景:在3D中,所有可视对象都必须与场景相关联。场景是世界的视觉表示。如果从正在运行的应用访问渲染服务器,则可以使用Item3D.get_world_3d()从任何Item3D节点访问场景树。否则,可以使用scenario_create()创建场景。
同样,在2D中,需要一个画布来绘制所有画布项目。
3D:在3D中,所有可见对象都由资源和实例组成。资源可以是网格、粒子系统、光或任何其他3D对象。为了可见,资源必须使用instance_set_base()附加到实例。该实例还必须使用instance_set_scenario()附加到场景才能可见。没有前缀的RenderingServer方法通常是特定于3D的(但不总是)。
2D:在2D中,所有可见对象都是某种形式的画布项。为了可见,画布项需要是附加到视口的画布的子项,或者它需要是最终附加到画布的另一个画布项的子项。2D特定的RenderingServer方法通常以canvas_*开头。
Headless mode:使用--head less命令行参数启动引擎禁用所有渲染和窗口管理功能。在这种情况下,RenderingServer中的大多数函数将返回虚拟值。
属性¶
方法¶
信号¶
frame_post_draw() 🔗
在RenderingServer完成更新所有视口后,在帧末尾发出。
frame_pre_draw() 🔗
在帧开始时发出,在RenderingServer更新所有Viewport之前。
枚举¶
enum TextureType: 🔗
TextureType TEXTURE_TYPE_2D = 0
2D纹理。
TextureType TEXTURE_TYPE_LAYERED = 1
分层纹理。
TextureType TEXTURE_TYPE_3D = 2
3D纹理。
enum TextureLayeredType: 🔗
TextureLayeredType TEXTURE_LAYERED_2D_ARRAY = 0
二维纹理数组(参见Texture2DArray)。
TextureLayeredType TEXTURE_LAYERED_CUBEMAP = 1
立方体贴图纹理(参见Cubemap)。
TextureLayeredType TEXTURE_LAYERED_CUBEMAP_ARRAY = 2
立方体贴图纹理数组(参见CubemapArray)。
enum CubeMapLayer: 🔗
CubeMapLayer CUBEMAP_LAYER_LEFT = 0
Cubemap的左面。
CubeMapLayer CUBEMAP_LAYER_RIGHT = 1
Cubemap的右侧。
CubeMapLayer CUBEMAP_LAYER_BOTTOM = 2
Cubemap的底面。
CubeMapLayer CUBEMAP_LAYER_TOP = 3
Cubemap的顶部。
CubeMapLayer CUBEMAP_LAYER_FRONT = 4
Cubemap的正面。
CubeMapLayer CUBEMAP_LAYER_BACK = 5
Cubemap的背面。
enum ShaderMode: 🔗
ShaderMode SHADER_SPATIAL = 0
着色器是一个3D着色器。
ShaderMode SHADER_CANVAS_ITEM = 1
着色器是2D着色器。
ShaderMode SHADER_PARTICLES = 2
Shader是一个粒子着色器(可用于2D和3D)。
ShaderMode SHADER_SKY = 3
着色器是一个3D天空着色器。
ShaderMode SHADER_FOG = 4
着色器是一个3D雾着色器。
ShaderMode SHADER_MAX = 5
表示ShaderMode枚举的大小。
enum ArrayType: 🔗
ArrayType ARRAY_VERTEX = 0
数组是一个顶点位置数组。
ArrayType ARRAY_NORMAL = 1
数组是一个普通数组。
ArrayType ARRAY_TANGENT = 2
数组是正切数组。
ArrayType ARRAY_COLOR = 3
数组是顶点颜色数组。
ArrayType ARRAY_TEX_UV = 4
数组是一个UV坐标数组。
ArrayType ARRAY_TEX_UV2 = 5
数组是用于第二组UV坐标的UV坐标数组。
ArrayType ARRAY_CUSTOM0 = 6
数组是第一组自定义数据的自定义数据数组。
ArrayType ARRAY_CUSTOM1 = 7
数组是第二组自定义数据的自定义数据数组。
ArrayType ARRAY_CUSTOM2 = 8
数组是第三组自定义数据的自定义数据数组。
ArrayType ARRAY_CUSTOM3 = 9
数组是第四组自定义数据的自定义数据数组。
ArrayType ARRAY_BONES = 10
数组包含骨骼信息。
ArrayType ARRAY_WEIGHTS = 11
数组是权重信息。
ArrayType ARRAY_INDEX = 12
数组是一个索引数组。
ArrayType ARRAY_MAX = 13
表示ArrayType枚举的大小。
enum ArrayCustomFormat: 🔗
ArrayCustomFormat ARRAY_CUSTOM_RGBA8_UNORM = 0
自定义数据数组包含每通道8位的红色/绿色/蓝色/alpha颜色数据。值是[0.0,1.0]范围内的规范化无符号浮点数。
ArrayCustomFormat ARRAY_CUSTOM_RGBA8_SNORM = 1
自定义数据数组包含每通道8位的红色/绿色/蓝色/alpha颜色数据。值是[-1.0,1.0]范围内的规范化带符号浮点数。
ArrayCustomFormat ARRAY_CUSTOM_RG_HALF = 2
自定义数据数组包含每通道16位的红色/绿色数据。值是半精度浮点数。
ArrayCustomFormat ARRAY_CUSTOM_RGBA_HALF = 3
自定义数据数组包含每通道16位的红色/绿色/蓝色/alpha颜色数据。值是半精度浮点数。
ArrayCustomFormat ARRAY_CUSTOM_R_FLOAT = 4
自定义数据数组包含每通道32位的红色数据。值是单精度浮点数。
ArrayCustomFormat ARRAY_CUSTOM_RG_FLOAT = 5
自定义数据数组包含每通道32位的红色/绿色数据。值是单精度浮点数。
ArrayCustomFormat ARRAY_CUSTOM_RGB_FLOAT = 6
自定义数据数组包含每通道32位的红/绿/蓝颜色数据。值是单精度浮点数。
ArrayCustomFormat ARRAY_CUSTOM_RGBA_FLOAT = 7
自定义数据数组包含每通道32位的红色/绿色/蓝色/alpha颜色数据。值是单精度浮点数。
ArrayCustomFormat ARRAY_CUSTOM_MAX = 8
表示ArrayCustomFormat枚举的大小。
flags ArrayFormat: 🔗
ArrayFormat ARRAY_FORMAT_VERTEX = 1
用于标记顶点位置数组的标志。
ArrayFormat ARRAY_FORMAT_NORMAL = 2
用于标记普通数组的标志。
ArrayFormat ARRAY_FORMAT_TANGENT = 4
用于标记正切数组的标志。
ArrayFormat ARRAY_FORMAT_COLOR = 8
用于标记顶点颜色数组的标志。
ArrayFormat ARRAY_FORMAT_TEX_UV = 16
用于标记UV坐标数组的标志。
ArrayFormat ARRAY_FORMAT_TEX_UV2 = 32
用于标记第二个UV坐标的UV坐标数组的标志。
ArrayFormat ARRAY_FORMAT_CUSTOM0 = 64
用于标记第一组自定义数据的自定义每个顶点数据数组的标志。
ArrayFormat ARRAY_FORMAT_CUSTOM1 = 128
用于标记第二组自定义数据的自定义顶点数据数组的标志。
ArrayFormat ARRAY_FORMAT_CUSTOM2 = 256
用于标记第三组自定义数据的自定义顶点数据数组的标志。
ArrayFormat ARRAY_FORMAT_CUSTOM3 = 512
用于标记第四组自定义数据的自定义顶点数据数组的标志。
ArrayFormat ARRAY_FORMAT_BONES = 1024
用于标记骨信息数组的标志。
ArrayFormat ARRAY_FORMAT_WEIGHTS = 2048
用于标记权重数组的标志。
ArrayFormat ARRAY_FORMAT_INDEX = 4096
用于标记索引数组的标志。
ArrayFormat ARRAY_FORMAT_BLEND_SHAPE_MASK = 7
混合形状允许的网格通道掩模。
ArrayFormat ARRAY_FORMAT_CUSTOM_BASE = 13
第一个自定义频道的转变。
ArrayFormat ARRAY_FORMAT_CUSTOM_BITS = 3
每个自定义通道的格式位数。请参阅ArrayCustomFormat。
ArrayFormat ARRAY_FORMAT_CUSTOM0_SHIFT = 13
用于自定义通道索引0的shiftArrayCustomFormat的数量。
ArrayFormat ARRAY_FORMAT_CUSTOM1_SHIFT = 16
用于自定义通道索引1的shiftArrayCustomFormat的数量。
ArrayFormat ARRAY_FORMAT_CUSTOM2_SHIFT = 19
用于自定义通道索引2的shiftArrayCustomFormat的数量。
ArrayFormat ARRAY_FORMAT_CUSTOM3_SHIFT = 22
用于自定义通道索引3的shiftArrayCustomFormat的数量。
ArrayFormat ARRAY_FORMAT_CUSTOM_MASK = 7
每个自定义通道的自定义格式位掩码。必须由SHIFT常量之一移动。请参阅ArrayCustomFormat。
ArrayFormat ARRAY_COMPRESS_FLAGS_BASE = 25
第一个压缩标志的移动。压缩标志应传递给ArrayMesh.add_surface_from_arrays()和SurfaceTool.commit()。
ArrayFormat ARRAY_FLAG_USE_2D_VERTICES = 33554432
用于标记数组包含2D顶点的标志。
ArrayFormat ARRAY_FLAG_USE_DYNAMIC_UPDATE = 67108864
标记网格数据将在GLES上使用GL_DYNAMIC_DRAW的索引。在Vulkan上未使用。
ArrayFormat ARRAY_FLAG_USE_8_BONE_WEIGHTS = 134217728
用于标记数组使用8个骨骼权重而不是4个的标志。
ArrayFormat ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY = 268435456
用于标记网格没有顶点数组的标志,而是使用索引和其他信息推断着色器中的顶点位置。
ArrayFormat ARRAY_FLAG_COMPRESS_ATTRIBUTES = 536870912
用于标记网格正在使用压缩属性(顶点、法线、切线、UV)的标志。启用这种形式的压缩时,顶点位置将被打包到RGBA16UNORM属性中,并在顶点着色器中缩放。法线和切线将被打包到表示轴的RG16UNORM中,以及存储在顶点A通道中的16位浮点数。UV将使用16位规范化浮点数,而不是完整的32位有符号浮点数。使用这种压缩模式时,您必须使用顶点、法线和切线或仅使用顶点。您不能使用没有切线的法线。如果可以,导入器将自动启用此压缩。
ArrayFormat ARRAY_FLAG_FORMAT_VERSION_BASE = 35
用于标记用于存储网格版本的位的开始的标志。
ArrayFormat ARRAY_FLAG_FORMAT_VERSION_SHIFT = 35
用于移动网格格式int以将版本设为最低数字的标志。
ArrayFormat ARRAY_FLAG_FORMAT_VERSION_1 = 0
用于记录版本引入之前先前网格版本使用的格式的标志。
ArrayFormat ARRAY_FLAG_FORMAT_VERSION_2 = 34359738368
用于记录网格版本标志的第二次迭代的标志。此版本与ARRAY_FLAG_FORMAT_VERSION_1的主要区别在于此版本支持ARRAY_FLAG_COMPRESS_ATTRIBUTES,并且在此版本中,顶点位置与法线和切线分离。
ArrayFormat ARRAY_FLAG_FORMAT_CURRENT_VERSION = 34359738368
用于记录引擎期望的当前版本的标志。目前这与ARRAY_FLAG_FORMAT_VERSION_2相同。
ArrayFormat ARRAY_FLAG_FORMAT_VERSION_MASK = 255
在使用ARRAY_FLAG_FORMAT_VERSION_SHIFT将它们移动到位后,用于隔离用于网格版本的位的标志。
enum PrimitiveType: 🔗
PrimitiveType PRIMITIVE_POINTS = 0
画的原语由点组成。
PrimitiveType PRIMITIVE_LINES = 1
画的原语由线组成。
PrimitiveType PRIMITIVE_LINE_STRIP = 2
画法由一条从开始到结束的线条组成。
PrimitiveType PRIMITIVE_TRIANGLES = 3
画的原语由三角形组成。
PrimitiveType PRIMITIVE_TRIANGLE_STRIP = 4
原始绘制由一个三角形条组成(最后3个顶点总是组合成一个三角形)。
PrimitiveType PRIMITIVE_MAX = 5
表示PrimitiveType枚举的大小。
enum BlendShapeMode: 🔗
BlendShapeMode BLEND_SHAPE_MODE_NORMALIZED = 0
混合形状被规范化。
BlendShapeMode BLEND_SHAPE_MODE_RELATIVE = 1
混合形状相对于基本重量。
enum MultimeshTransformFormat: 🔗
MultimeshTransformFormat MULTIMESH_TRANSFORM_2D = 0
使用Transform2D存储MultiMesh变换。
MultimeshTransformFormat MULTIMESH_TRANSFORM_3D = 1
使用Transform3D存储MultiMesh变换。
enum MultimeshPhysicsInterpolationQuality: 🔗
MultimeshPhysicsInterpolationQuality MULTIMESH_INTERP_QUALITY_FAST = 0
MultiMesh物理插值有利于速度而不是质量。
MultimeshPhysicsInterpolationQuality MULTIMESH_INTERP_QUALITY_HIGH = 1
MultiMesh物理插值有利于质量而不是速度。
enum LightProjectorFilter: 🔗
LightProjectorFilter LIGHT_PROJECTOR_FILTER_NEAREST = 0
用于光投影仪的最近邻滤镜(用于像素艺术光投影仪)。没有mipmap用于渲染,这意味着远处的光投影仪看起来很锐利,但颗粒状。这与使用mipmap的性能成本大致相同。
LightProjectorFilter LIGHT_PROJECTOR_FILTER_LINEAR = 1
光投影仪的线性滤镜(用于非像素艺术光投影仪)。没有使用mipmap进行渲染,这意味着远处的光投影仪看起来很光滑但很模糊。这与使用mipmap的性能成本大致相同。
LightProjectorFilter LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS = 2
用于光投影仪的最近邻滤镜(用于像素艺术光投影仪)。各向同性mipmap用于渲染,这意味着远处的光投影仪看起来很光滑但很模糊。这与不使用mipmap的性能成本大致相同。
LightProjectorFilter LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS = 3
光投影仪的线性滤镜(用于非像素艺术光投影仪)。各向同性mipmap用于渲染,这意味着远处的光投影仪看起来很光滑但模糊。这与不使用mipmap的性能成本大致相同。
LightProjectorFilter LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC = 4
用于光投影仪的最近邻滤镜(用于像素艺术光投影仪)。各向异性mipmap用于渲染,这意味着从倾斜角度观看时,远处的光投影仪会看起来光滑而锐利。与各向同性mipmap相比,这看起来更好,但速度较慢。各向异性过滤的级别由ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level定义。
LightProjectorFilter LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC = 5
用于光投影仪的线性滤镜(用于非像素艺术光投影仪)。各向异性mipmap用于渲染,这意味着从倾斜角度观看时,远处的光投影仪会看起来光滑而锐利。与各向同性mipmap相比,这看起来更好,但速度较慢。各向异性过滤的级别由ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level定义。
enum LightType: 🔗
LightType LIGHT_DIRECTIONAL = 0
定向(太阳/月亮)光(见DirectionalLight)。
LightType LIGHT_OMNI = 1
Omni light(参见PointLight)。
LightType LIGHT_SPOT = 2
聚光灯(参见SpotLight)。
enum LightParam: 🔗
LightParam LIGHT_PARAM_ENERGY = 0
光的能量倍增器。
LightParam LIGHT_PARAM_INDIRECT_ENERGY = 1
光的间接能量倍增器(最终的间接能量为LIGHT_PARAM_ENERGY*LIGHT_PARAM_INDIRECT_ENERGY)。
LightParam LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY = 2
光的体积雾能量倍增器(最终体积雾能量为LIGHT_PARAM_ENERGY*LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY)。
LightParam LIGHT_PARAM_SPECULAR = 3
光线对镜面反射的影响。
LightParam LIGHT_PARAM_RANGE = 4
光的范围。
LightParam LIGHT_PARAM_SIZE = 5
使用聚光灯或全光时光源的大小。使用定向光时光线的角度大小。
LightParam LIGHT_PARAM_ATTENUATION = 6
光的衰减。
LightParam LIGHT_PARAM_SPOT_ANGLE = 7
聚光灯的角度。
LightParam LIGHT_PARAM_SPOT_ATTENUATION = 8
聚光灯的衰减。
LightParam LIGHT_PARAM_SHADOW_MAX_DISTANCE = 9
阴影分割的最大距离。增加此值将使方向阴影从更远的地方可见,但代价是整体阴影细节和性能降低(因为方向阴影渲染中需要包含更多对象)。
LightParam LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET = 10
第一次分裂所占阴影图集的比例。
LightParam LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET = 11
第二次分裂所占阴影图集的比例。
LightParam LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET = 12
阴影图集被第三个分裂所占的比例。第四个分裂占据其余部分。
LightParam LIGHT_PARAM_SHADOW_FADE_START = 13
阴影将开始淡出的阴影最大距离的比例。
LightParam LIGHT_PARAM_SHADOW_NORMAL_BIAS = 14
法线偏差用于抵消对象法线的阴影查找。可用于修复自阴影工件。
LightParam LIGHT_PARAM_SHADOW_BIAS = 15
偏置阴影查找以修复自阴影工件。
LightParam LIGHT_PARAM_SHADOW_PANCAKE_SIZE = 16
设置方向阴影煎饼的大小。煎饼抵消阴影的摄像机平截头体的开始,为阴影提供更高的有效深度分辨率。但是,高煎饼尺寸会导致靠近平截头体边缘的大型物体的阴影中出现伪影。减小煎饼尺寸会有所帮助。将尺寸设置为0会关闭煎饼效果。
LightParam LIGHT_PARAM_SHADOW_OPACITY = 17
光线的阴影不透明度。低于1.0的值使光线通过阴影出现。这可以用来以较低的性能成本伪造全局照明。
LightParam LIGHT_PARAM_SHADOW_BLUR = 18
模糊阴影的边缘。可用于隐藏低分辨率阴影贴图中的像素伪影。高值会使阴影看起来颗粒状,并可能导致其他不需要的伪影。尽量保持接近默认值。
LightParam LIGHT_PARAM_TRANSMITTANCE_BIAS = 19
LightParam LIGHT_PARAM_INTENSITY = 20
表示光强度的常数,在处理SpotLight或PointLight时以流明测量,或在DirectionalLight时以勒克斯测量。仅在ProjectSettings.rendering/lights_and_shadows/use_physical_light_units为true时使用。
LightParam LIGHT_PARAM_MAX = 21
表示LightParam枚举的大小。
enum LightBakeMode: 🔗
LightBakeMode LIGHT_BAKE_DISABLED = 0
烘焙时忽略光源。这是最快的模式,但烘焙全局照明时会考虑光线。这种模式通常应用于变化迅速的动态灯,因为全局照明对这些灯的影响不太明显。
LightBakeMode LIGHT_BAKE_STATIC = 1
静态烘烤(VoxelGI、Lightmass、SDFGI(Environment.sdfgi_enabled)中考虑了光线,光线可以四处移动或修改,但其全局光照不会实时更新。这适用于细微的变化(如闪烁的手电筒),但一般不会有大的变化,如打开和关闭灯。
LightBakeMode LIGHT_BAKE_DYNAMIC = 2
光在动态烘焙中被考虑(仅限VoxelGI和SDFGI(Environment.sdfgi_enabled)。光线可以实时移动或随着全局光照更新而修改。与LIGHT_BAKE_STATIC相比,光线的全局光照外观会略有不同。这与LIGHT_BAKE_STATIC相比具有更大的性能成本。使用SDFGI时,动态光源的更新速度受ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights的影响。
enum LightOmniShadowMode: 🔗
LightOmniShadowMode LIGHT_OMNI_SHADOW_DUAL_PARABOLOID = 0
对全光使用双抛物面阴影贴图。
LightOmniShadowMode LIGHT_OMNI_SHADOW_CUBE = 1
对全光使用立方体贴图阴影贴图。比双抛物面慢但质量更好。
enum LightDirectionalShadowMode: 🔗
LightDirectionalShadowMode LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL = 0
使用正交阴影投影定向光。
LightDirectionalShadowMode LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS = 1
使用定向光时,使用2个分割进行阴影投影。
LightDirectionalShadowMode LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS = 2
使用定向光时,使用4个分割进行阴影投影。
enum LightDirectionalSkyMode: 🔗
LightDirectionalSkyMode LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY = 0
在天空渲染和场景照明中使用DirectionalLight3D。
LightDirectionalSkyMode LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_ONLY = 1
仅在场景照明中使用DirectionalLight3D。
LightDirectionalSkyMode LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY = 2
仅在天空渲染中使用DirectionalLight3D。
enum ShadowQuality: 🔗
ShadowQuality SHADOW_QUALITY_HARD = 0
最低的阴影过滤质量(最快)。此质量设置不提供软阴影,这意味着如果Light.light_size和Light.light_angular_distance为0.0,则忽略Light.shadow_blur属性。
注:由Light.light_size和Light.light_angular_distance执行的可变阴影模糊在使用硬阴影过滤时仍然有效,在这种情况下,Light.shadow_blur被考虑在内,但是结果不会模糊,而是将模糊量视为半影的最大半径。
ShadowQuality SHADOW_QUALITY_SOFT_VERY_LOW = 1
非常低的阴影过滤质量(更快)。使用此质量设置时,Light.shadow_blur自动乘以0.75×,以避免引入太多噪声。此划分仅适用于Light.light_size或Light.light_angular_distance为0.0的光源。
ShadowQuality SHADOW_QUALITY_SOFT_LOW = 2
低阴影过滤质量(快速)。
ShadowQuality SHADOW_QUALITY_SOFT_MEDIUM = 3
中低阴影过滤质量(平均)。
ShadowQuality SHADOW_QUALITY_SOFT_HIGH = 4
高低阴影过滤质量(慢)。使用此质量设置时,Light.shadow_blur会自动乘以1.5×,以更好地利用高样本数。这种增加的模糊也提高了动态对象阴影的稳定性。此乘数仅适用于Light.light_size或Light.light_angular_distance为0.0)的光源。
ShadowQuality SHADOW_QUALITY_SOFT_ULTRA = 5
最高的低阴影过滤质量(最慢)。使用此质量设置时,Light.shadow_blur会自动乘以2×,以更好地利用高样本数。这种增加的模糊也提高了动态对象阴影的稳定性。此乘数仅适用于Light.light_size或Light.light_angular_distance为0.0)的光源。
ShadowQuality SHADOW_QUALITY_MAX = 6
表示ShadowQuality枚举的大小。
enum ReflectionProbeUpdateMode: 🔗
ReflectionProbeUpdateMode REFLECTION_PROBE_UPDATE_ONCE = 0
反射探头将更新反射一次,然后停止。
ReflectionProbeUpdateMode REFLECTION_PROBE_UPDATE_ALWAYS = 1
反射探头将更新每一帧。这种模式是捕捉移动物体所必需的。
enum ReflectionProbeAmbientMode: 🔗
ReflectionProbeAmbientMode REFLECTION_PROBE_AMBIENT_DISABLED = 0
不要在反射探头的盒子内应用任何环境照明,该盒子由其尺寸定义。
ReflectionProbeAmbientMode REFLECTION_PROBE_AMBIENT_ENVIRONMENT = 1
在反射探头automatically-sourced尺寸定义的盒子内应用环境照明。
ReflectionProbeAmbientMode REFLECTION_PROBE_AMBIENT_COLOR = 2
在反射探头的盒子内应用自定义环境照明(由其大小定义)。请参见reflection_probe_set_ambient_color()和reflection_probe_set_ambient_energy()。
enum DecalTexture: 🔗
DecalTexture DECAL_TEXTURE_ALBEDO = 0
贴花中的反照率纹理槽(DecalActor.texture_albedo)。
DecalTexture DECAL_TEXTURE_NORMAL = 1
贴花中的法线贴图纹理槽(DecalActor.texture_normal)。
DecalTexture DECAL_TEXTURE_ORM = 2
遮挡/粗糙度/贴花中的金属纹理槽(DecalActor.texture_orm)。
DecalTexture DECAL_TEXTURE_EMISSION = 3
贴花中的发射纹理槽(DecalActor.texture_emission)。
DecalTexture DECAL_TEXTURE_MAX = 4
表示DecalTexture枚举的大小。
enum DecalFilter: 🔗
DecalFilter DECAL_FILTER_NEAREST = 0
贴花的最近邻过滤器(用于像素艺术贴花)。没有mipmap用于渲染,这意味着远处的贴花看起来很锋利但很粗糙。这与使用mipmap的性能成本大致相同。
DecalFilter DECAL_FILTER_LINEAR = 1
贴花的线性过滤器(用于非像素艺术贴花)。没有mipmap用于渲染,这意味着远处的贴花看起来很光滑但很模糊。这与使用mipmap的性能成本大致相同。
DecalFilter DECAL_FILTER_NEAREST_MIPMAPS = 2
贴花的最近邻过滤器(用于像素艺术贴花)。各向同性mipmap用于渲染,这意味着远处的贴花看起来平滑但模糊。这与不使用mipmap的性能成本大致相同。
DecalFilter DECAL_FILTER_LINEAR_MIPMAPS = 3
贴花的线性过滤器(用于非像素艺术贴花)。各向同性mipmap用于渲染,这意味着远处的贴花看起来很光滑但很模糊。这与不使用mipmap的性能成本大致相同。
DecalFilter DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC = 4
贴花的最近邻过滤器(用于像素艺术贴花)。各向异性mipmap用于渲染,这意味着从倾斜角度观察时,远处的贴花看起来光滑而锐利。与各向同性mipmap相比,这看起来更好,但速度较慢。各向异性过滤的级别由ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level定义。
DecalFilter DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC = 5
贴花的线性滤镜(用于非像素艺术贴花)。各向异性mipmap用于渲染,这意味着从倾斜角度观察时,远处的贴花看起来光滑而锐利。与各向同性mipmap相比,这看起来更好,但速度较慢。各向异性过滤的级别由ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level定义。
enum VoxelGIQuality: 🔗
VoxelGIQuality VOXEL_GI_QUALITY_LOW = 0
使用4个锥体的低VoxelGI渲染质量。
VoxelGIQuality VOXEL_GI_QUALITY_HIGH = 1
使用6个锥体的高VoxelGI渲染质量。
enum ParticlesMode: 🔗
ParticlesMode PARTICLES_MODE_2D = 0
二维粒子。
ParticlesMode PARTICLES_MODE_3D = 1
3D粒子。
enum ParticlesTransformAlign: 🔗
ParticlesTransformAlign PARTICLES_TRANSFORM_ALIGN_DISABLED = 0
ParticlesTransformAlign PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD = 1
ParticlesTransformAlign PARTICLES_TRANSFORM_ALIGN_Y_TO_VELOCITY = 2
ParticlesTransformAlign PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY = 3
enum ParticlesDrawOrder: 🔗
ParticlesDrawOrder PARTICLES_DRAW_ORDER_INDEX = 0
按照粒子数组中出现的顺序绘制粒子。
ParticlesDrawOrder PARTICLES_DRAW_ORDER_LIFETIME = 1
根据粒子的寿命对粒子进行排序。换句话说,具有最高寿命的粒子被画在前面。
ParticlesDrawOrder PARTICLES_DRAW_ORDER_REVERSE_LIFETIME = 2
根据粒子寿命的倒数对粒子进行排序。换句话说,寿命最低的粒子被画在前面。
ParticlesDrawOrder PARTICLES_DRAW_ORDER_VIEW_DEPTH = 3
根据到摄像机的距离对粒子进行排序。
enum ParticlesCollisionType: 🔗
ParticlesCollisionType PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT = 0
ParticlesCollisionType PARTICLES_COLLISION_TYPE_BOX_ATTRACT = 1
ParticlesCollisionType PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT = 2
ParticlesCollisionType PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE = 3
ParticlesCollisionType PARTICLES_COLLISION_TYPE_BOX_COLLIDE = 4
ParticlesCollisionType PARTICLES_COLLISION_TYPE_SDF_COLLIDE = 5
ParticlesCollisionType PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE = 6
enum ParticlesCollisionHeightfieldResolution: 🔗
ParticlesCollisionHeightfieldResolution PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_256 = 0
ParticlesCollisionHeightfieldResolution PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_512 = 1
ParticlesCollisionHeightfieldResolution PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024 = 2
ParticlesCollisionHeightfieldResolution PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_2048 = 3
ParticlesCollisionHeightfieldResolution PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_4096 = 4
ParticlesCollisionHeightfieldResolution PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_8192 = 5
ParticlesCollisionHeightfieldResolution PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX = 6
表示ParticlesCollisionHeightfieldResolution枚举的大小。
enum FogVolumeShape: 🔗
FogVolumeShape FOG_VOLUME_SHAPE_ELLIPSOID = 0
FogVolume的形状会像一个椭球(拉伸的球体)。
FogVolumeShape FOG_VOLUME_SHAPE_CONE = 1
FogVolume的形状将像一个向上指向的圆锥体(在本地坐标中)。圆锥体的角度会自动设置以填充大小。圆锥体将被调整以适应大小。旋转FogVolume节点以重新定向圆锥体。不支持通过大小进行非均匀缩放(改为缩放FogVolume节点)。
FogVolumeShape FOG_VOLUME_SHAPE_CYLINDER = 2
FogVolume的形状将像一个直立的圆柱体(在本地坐标中)。旋转FogVolume节点以重新定位圆柱体。圆柱体将被调整为适合大小。不支持通过大小进行非均匀缩放(改为缩放FogVolume节点)。
FogVolumeShape FOG_VOLUME_SHAPE_BOX = 3
FogVolume的形状会像一个盒子。
FogVolumeShape FOG_VOLUME_SHAPE_WORLD = 4
FogVolume将没有形状,将覆盖整个世界,不会被剔除。
FogVolumeShape FOG_VOLUME_SHAPE_MAX = 5
表示FogVolumeShape枚举的大小。
enum ViewportScaling3DMode: 🔗
ViewportScaling3DMode VIEWPORT_SCALING_3D_MODE_BILINEAR = 0
对视口的3D缓冲区使用双线性缩放。可以使用Viewport.scaling_3d_scale设置缩放量。小于1.0的值将导致欠采样,而大于1.0的值将导致超采样。1.0的值禁用缩放。
ViewportScaling3DMode VIEWPORT_SCALING_3D_MODE_FSR = 1
对视口的3D缓冲区使用AMD FidelityFX超级分辨率1.0升级。可以使用Viewport.scaling_3d_scale设置缩放量。小于1.0的值将导致使用FSR升级视口。不支持大于1.0的值,将使用双线性下采样代替。1.0的值禁用缩放。
ViewportScaling3DMode VIEWPORT_SCALING_3D_MODE_FSR2 = 2
对视口的3D缓冲区使用AMD FidelityFX超级分辨率2.2升级。可以使用Viewport.scaling_3d_scale。小于1.0的值将导致使用FSR2升级视口。不支持大于1.0的值,将使用双线性下采样。1.0的值将使用FSR2作为TAA解决方案。
ViewportScaling3DMode VIEWPORT_SCALING_3D_MODE_METALFX_SPATIAL = 3
对视口的3D缓冲区使用MetalFX空间放大。可以使用Viewport.scaling_3d_scale设置缩放量。小于1.0的值将导致使用MetalFX升级视口。不支持大于1.0的值,将使用双线性下采样。1.0的值禁用缩放。
注意:仅在使用Metal渲染驱动程序时受支持,这将此缩放模式限制为macOS和iOS。
ViewportScaling3DMode VIEWPORT_SCALING_3D_MODE_METALFX_TEMPORAL = 4
对视口的3D缓冲区使用MetalFX时间放大。可以使用Viewport.scaling_3d_scale设置缩放量。小于1.0的值将导致使用MetalFX升级视口。不支持大于1.0的值,将使用双线性下采样。1.0的值将使用MetalFX作为TAA解决方案。
注意:仅在使用Metal渲染驱动程序时受支持,这将此缩放模式限制为macOS和iOS。
ViewportScaling3DMode VIEWPORT_SCALING_3D_MODE_MAX = 5
表示ViewportScaling3DMode枚举的大小。
enum ViewportUpdateMode: 🔗
ViewportUpdateMode VIEWPORT_UPDATE_DISABLED = 0
不要更新视口的渲染目标。
ViewportUpdateMode VIEWPORT_UPDATE_ONCE = 1
更新视口的渲染目标一次,然后切换到VIEWPORT_UPDATE_DISABLED。
ViewportUpdateMode VIEWPORT_UPDATE_WHEN_VISIBLE = 2
仅在视口可见时更新视口的渲染目标。这是默认值。
ViewportUpdateMode VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE = 3
仅当其父级可见时才更新视口的渲染目标。
ViewportUpdateMode VIEWPORT_UPDATE_ALWAYS = 4
始终更新视口的渲染目标。
enum ViewportClearMode: 🔗
ViewportClearMode VIEWPORT_CLEAR_ALWAYS = 0
在绘制之前始终清除视口的渲染目标。
ViewportClearMode VIEWPORT_CLEAR_NEVER = 1
永远不要清除视口的渲染目标。
ViewportClearMode VIEWPORT_CLEAR_ONLY_NEXT_FRAME = 2
在下一帧上清除视口的渲染目标,然后切换到VIEWPORT_CLEAR_NEVER。
enum ViewportEnvironmentMode: 🔗
ViewportEnvironmentMode VIEWPORT_ENVIRONMENT_DISABLED = 0
禁用在2D画布上渲染3D环境。
ViewportEnvironmentMode VIEWPORT_ENVIRONMENT_ENABLED = 1
启用在2D画布上渲染3D环境。
ViewportEnvironmentMode VIEWPORT_ENVIRONMENT_INHERIT = 2
从父级继承启用/禁用值。如果最上面的父级也设置为VIEWPORT_ENVIRONMENT_INHERIT,则这与VIEWPORT_ENVIRONMENT_ENABLED具有相同的行为。
ViewportEnvironmentMode VIEWPORT_ENVIRONMENT_MAX = 3
表示ViewportEnvironmentMode枚举的大小。
enum ViewportSDFOversize: 🔗
ViewportSDFOversize VIEWPORT_SDF_OVERSIZE_100_PERCENT = 0
不要过大2D有符号距离字段。当触摸视口边缘时,遮挡物可能会消失,并且ParticlesGPU碰撞可能会比预期更早停止工作。这具有最低的GPU要求。
ViewportSDFOversize VIEWPORT_SDF_OVERSIZE_120_PERCENT = 1
2D有符号距离字段覆盖每一侧(上、右、下、左)视口外的视口大小的20%。
ViewportSDFOversize VIEWPORT_SDF_OVERSIZE_150_PERCENT = 2
2D有符号距离字段覆盖每一侧(上、右、下、左)视口外的视口大小的50%。
ViewportSDFOversize VIEWPORT_SDF_OVERSIZE_200_PERCENT = 3
2D有符号距离字段覆盖每一侧(上、右、下、左)视口外的视口大小的100%。这具有最高的GPU要求。
ViewportSDFOversize VIEWPORT_SDF_OVERSIZE_MAX = 4
表示ViewportSDFOversize枚举的大小。
enum ViewportSDFScale: 🔗
ViewportSDFScale VIEWPORT_SDF_SCALE_100_PERCENT = 0
全分辨率2D符号距离场尺度。这具有最高的GPU要求。
ViewportSDFScale VIEWPORT_SDF_SCALE_50_PERCENT = 1
每个轴上的半分辨率2D有符号距离场刻度(视口像素数的25%)。
ViewportSDFScale VIEWPORT_SDF_SCALE_25_PERCENT = 2
每个轴上的四分之一分辨率2D有符号距离场刻度(视口像素数的6.25%)。这具有最低的GPU要求。
ViewportSDFScale VIEWPORT_SDF_SCALE_MAX = 3
表示ViewportSDFScale枚举的大小。
enum ViewportMSAA: 🔗
ViewportMSAA VIEWPORT_MSAA_DISABLED = 0
禁用3D的多样本抗锯齿。这是默认值,也是最快的设置。
ViewportMSAA VIEWPORT_MSAA_2X = 1
多样本抗锯齿在3D中每个像素使用2个样本。这对性能有适度的影响。
ViewportMSAA VIEWPORT_MSAA_4X = 2
多样本抗锯齿在3D中每个像素使用4个样本。这对性能有很大影响。
ViewportMSAA VIEWPORT_MSAA_8X = 3
多样本抗锯齿在3D中每个像素使用8个样本。这对性能有很高的影响。低端和较旧的硬件可能不受支持。
ViewportMSAA VIEWPORT_MSAA_MAX = 4
表示ViewportMSAA枚举的大小。
enum ViewportAnisotropicFiltering: 🔗
ViewportAnisotropicFiltering VIEWPORT_ANISOTROPY_DISABLED = 0
各向异性过滤被禁用。
ViewportAnisotropicFiltering VIEWPORT_ANISOTROPY_2X = 1
使用2×各向异性滤波。
ViewportAnisotropicFiltering VIEWPORT_ANISOTROPY_4X = 2
使用4×各向异性滤波。这是默认值。
ViewportAnisotropicFiltering VIEWPORT_ANISOTROPY_8X = 3
使用8×各向异性滤波。
ViewportAnisotropicFiltering VIEWPORT_ANISOTROPY_16X = 4
使用16×各向异性滤波。
ViewportAnisotropicFiltering VIEWPORT_ANISOTROPY_MAX = 5
表示ViewportAnisotropicFiltering枚举的大小。
enum ViewportScreenSpaceAA: 🔗
ViewportScreenSpaceAA VIEWPORT_SCREEN_SPACE_AA_DISABLED = 0
不要在全屏后处理中执行任何抗锯齿。
ViewportScreenSpaceAA VIEWPORT_SCREEN_SPACE_AA_FXAA = 1
使用快速近似抗锯齿。FXAA是一种流行的屏幕空间抗锯齿方法,速度很快,但会使图像看起来模糊,尤其是在较低的分辨率下。在1440p和4K等大分辨率下,它仍然可以相对较好地工作。
ViewportScreenSpaceAA VIEWPORT_SCREEN_SPACE_AA_MAX = 2
表示ViewportScreenSpaceAA枚举的大小。
enum ViewportOcclusionCullingBuildQuality: 🔗
ViewportOcclusionCullingBuildQuality VIEWPORT_OCCLUSION_BUILD_QUALITY_LOW = 0
低遮挡剔除BVH构建质量(由Embree定义)。导致CPU使用率最低,但剔除效率最低。
ViewportOcclusionCullingBuildQuality VIEWPORT_OCCLUSION_BUILD_QUALITY_MEDIUM = 1
中等遮挡剔除BVH构建质量(由Embree定义)。
ViewportOcclusionCullingBuildQuality VIEWPORT_OCCLUSION_BUILD_QUALITY_HIGH = 2
高遮挡剔除BVH构建质量(由Embree定义)。导致最高的CPU使用率,但最有效的剔除。
enum ViewportRenderInfo: 🔗
ViewportRenderInfo VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME = 0
在单个帧中绘制的对象数。
ViewportRenderInfo VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME = 1
在单个框架中绘制的点、线或三角形的数量。
ViewportRenderInfo VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME = 2
在此帧期间的绘制调用数。
ViewportRenderInfo VIEWPORT_RENDER_INFO_MAX = 3
表示ViewportRenderInfo枚举的大小。
enum ViewportRenderInfoType: 🔗
ViewportRenderInfoType VIEWPORT_RENDER_INFO_TYPE_VISIBLE = 0
可见渲染通道(不包括阴影)。
ViewportRenderInfoType VIEWPORT_RENDER_INFO_TYPE_SHADOW = 1
阴影渲染通过。对象将被渲染几次,具体取决于带有阴影的光源数量和定向阴影分割的数量。
ViewportRenderInfoType VIEWPORT_RENDER_INFO_TYPE_CANVAS = 2
画布项目渲染。这包括所有2D渲染。
ViewportRenderInfoType VIEWPORT_RENDER_INFO_TYPE_MAX = 3
表示ViewportRenderInfoType枚举的大小。
enum ViewportDebugDraw: 🔗
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_DISABLED = 0
调试绘制被禁用。默认设置。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_UNSHADED = 1
对象在没有光线信息的情况下显示。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_LIGHTING = 2
对象仅显示光信息。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_OVERDRAW = 3
对象通过添加混合显示为半透明,因此您可以看到它们在哪里相互叠加。更高的透支(由更亮的颜色表示)意味着您在绘制隐藏在其他像素后面的像素时浪费了性能。
注意:使用此调试绘制模式时,自定义着色器将被忽略。这意味着顶点位移将不再可见。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_WIREFRAME = 4
调试绘制线框图中的对象。
注意:当使用兼容性渲染器时,必须在加载任何线框可见的网格之前调用set_debug_generate_wireframes()。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER = 5
绘制法线缓冲区而不是常规场景,因此您可以看到后处理效果将使用的每像素法线。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO = 6
仅使用VoxelGIs中的反照率值显示对象。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING = 7
仅使用VoxelGIs中的照明值显示对象。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION = 8
对象仅显示VoxelGIs的发射颜色。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS = 9
绘制阴影图集,该图集将PointLight和SpotLight的阴影存储在Viewport的左上象限中。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS = 10
绘制在Viewport左上象限中存储DirectionalLight阴影的阴影图集。
与阴影贴图级联相关的摄像机截头体切片被叠加以可视化覆盖范围。每个切片的颜色与用于VIEWPORT_DEBUG_DRAW_PSSM_SPLITS的颜色相匹配。当阴影级联混合时,绘制截头体切片时会考虑重叠。
最后一个级联显示了所有平截头体切片,以说明所有切片的覆盖范围。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE = 11
绘制估计的场景亮度。这是启用自动曝光以控制场景曝光时生成的1×1纹理。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_SSAO = 12
绘制屏幕空间环境遮挡纹理而不是场景,以便您可以清楚地看到它是如何影响对象的。为了使此显示模式工作,您必须在您的WorldEnvironment中设置Environment.ssao_enabled。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_SSIL = 13
绘制屏幕空间间接照明纹理而不是场景,以便您可以清楚地看到它是如何影响对象的。为了使此显示模式工作,您必须在您的WorldEnvironment中设置Environment.ssil_enabled。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_PSSM_SPLITS = 14
将场景中DirectionalLight的每个PSSM分割为不同的颜色,以便您可以看到分割的位置。按顺序,它们将被着色为红色、绿色、蓝色、黄色。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_DECAL_ATLAS = 15
从DecalActors绘制存储贴花纹理的贴花图集。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_SDFGI = 16
绘制SDFGI级联数据。这是用于反射照明和创建反射的数据结构。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_SDFGI_PROBES = 17
绘制SDFGI探测数据。这是用于给出在场景内移动的间接照明动态对象的数据结构。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_GI_BUFFER = 18
绘制全局照明缓冲区(VoxelGI或SDFGI)。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_DISABLE_LOD = 19
禁用网格LOD。所有网格都绘制有完整的细节,可用于比较性能。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS = 20
绘制PointLight集群。聚类确定灯在屏幕空间中的位置,这允许引擎仅处理屏幕的这些部分以进行照明。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS = 21
绘制SpotLight集群。聚类确定灯在屏幕空间中的位置,这允许引擎仅处理屏幕的这些部分以进行照明。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS = 22
绘制DecalActor集群。聚类确定贴花在屏幕空间中的位置,这允许引擎仅处理屏幕的这些部分以获取贴花。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES = 23
绘制ReflectionProbe集群。聚类确定反射探针在屏幕空间中的位置,这允许引擎仅处理屏幕的这些部分以获取反射探针。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_OCCLUDERS = 24
绘制遮挡剔除缓冲区。此低分辨率遮挡剔除缓冲区在CPU上进行光栅化,用于检查实例是否被其他对象遮挡。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_MOTION_VECTORS = 25
绘制运动矢量缓冲区。这是由时间抗锯齿用来纠正运行时发生的运动。
ViewportDebugDraw VIEWPORT_DEBUG_DRAW_INTERNAL_BUFFER = 26
绘制内部缓冲区而不是常规场景,因此您可以看到后处理效果将使用的每像素输出。
enum ViewportVRSMode: 🔗
ViewportVRSMode VIEWPORT_VRS_DISABLED = 0
禁用可变速率着色。
ViewportVRSMode VIEWPORT_VRS_TEXTURE = 1
可变速率着色使用纹理。注意,对于立体使用每个视图都有纹理的纹理图集。
ViewportVRSMode VIEWPORT_VRS_XR = 2
可变速率着色纹理由主XRInterface提供。请注意,这可能会覆盖更新模式。
ViewportVRSMode VIEWPORT_VRS_MAX = 3
表示ViewportVRSMode枚举的大小。
enum ViewportVRSUpdateMode: 🔗
ViewportVRSUpdateMode VIEWPORT_VRS_UPDATE_DISABLED = 0
将不处理可变速率着色的输入纹理。
ViewportVRSUpdateMode VIEWPORT_VRS_UPDATE_ONCE = 1
可变速率着色的输入纹理将被处理一次。
ViewportVRSUpdateMode VIEWPORT_VRS_UPDATE_ALWAYS = 2
可变速率着色的输入纹理将在每一帧进行处理。
ViewportVRSUpdateMode VIEWPORT_VRS_UPDATE_MAX = 3
表示ViewportVRSUpdateMode枚举的大小。
enum SkyMode: 🔗
SkyMode SKY_MODE_AUTOMATIC = 0
根据您的天空着色器自动选择适当的进程模式。如果您的着色器使用TIME或POSITION,这将使用SKY_MODE_REALTIME。如果您的着色器使用任何LIGHT_*变量或任何自定义uniform,这将使用SKY_MODE_INCREMENTAL。否则,默认为SKY_MODE_QUALITY。
SkyMode SKY_MODE_QUALITY = 1
使用高质量的重要性采样来处理辐射贴图。一般来说,这会导致比SKY_MODE_REALTIME更高的质量,但生成需要更长的时间。如果您计划在运行时更改天空,则不应使用此选项。如果您发现反射不够模糊,并且显示闪光或萤火虫,请尝试增加ProjectSettings.rendering/reflections/sky_reflections/ggx_samples。
SkyMode SKY_MODE_INCREMENTAL = 2
使用与SKY_MODE_QUALITY相同的高质量重要性采样来处理辐射贴图,但在几帧内更新。帧数由ProjectSettings.rendering/reflections/sky_reflections/roughness_layers决定。当您需要最高质量的辐射贴图,但天空更新缓慢时,请使用此选项。
SkyMode SKY_MODE_REALTIME = 3
使用快速过滤算法处理辐射贴图。通常,这会导致质量降低,但运行时间明显加快。如果您需要更好的质量,但仍然需要每帧更新天空,请考虑打开ProjectSettings.rendering/reflections/sky_reflections/fast_filter_high_quality。
注意:快速过滤算法仅限于256×256立方体贴图,因此sky_set_radiance_size()必须设置为256。否则,将打印警告并忽略覆盖的辐射大小。
enum CompositorEffectFlags: 🔗
CompositorEffectFlags COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_COLOR = 1
如果启用了MSAA,则渲染效果需要解析颜色缓冲区。
CompositorEffectFlags COMPOSITOR_EFFECT_FLAG_ACCESS_RESOLVED_DEPTH = 2
如果启用了MSAA,渲染效果需要解析深度缓冲区。
CompositorEffectFlags COMPOSITOR_EFFECT_FLAG_NEEDS_MOTION_VECTORS = 4
渲染效果需要生成运动矢量。
CompositorEffectFlags COMPOSITOR_EFFECT_FLAG_NEEDS_ROUGHNESS = 8
渲染效果需要生成法线和粗糙度g缓冲区(仅限Forward+)。
CompositorEffectFlags COMPOSITOR_EFFECT_FLAG_NEEDS_SEPARATE_SPECULAR = 16
渲染效果需要分离出镜面数据(仅限Forward+)。
enum CompositorEffectCallbackType: 🔗
CompositorEffectCallbackType COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_OPAQUE = 0
回调在我们的不透明渲染传递之前调用,但在深度预传递之后调用(如果适用)。
CompositorEffectCallbackType COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_OPAQUE = 1
在我们的不透明渲染传递之后,但在我们的天空渲染之前调用回调。
CompositorEffectCallbackType COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_SKY = 2
在我们的天空渲染之后,但在我们的反向缓冲区创建之前(如果启用,在次表面散射和/或屏幕空间反射之前)调用回调。
CompositorEffectCallbackType COMPOSITOR_EFFECT_CALLBACK_TYPE_PRE_TRANSPARENT = 3
在我们的透明渲染传递之前调用回调,但在我们的天空渲染并创建了反向缓冲区之后。
CompositorEffectCallbackType COMPOSITOR_EFFECT_CALLBACK_TYPE_POST_TRANSPARENT = 4
回调在我们的透明渲染传递之后调用,但在任何内置的后处理效果和输出到我们的渲染目标之前调用。
CompositorEffectCallbackType COMPOSITOR_EFFECT_CALLBACK_TYPE_ANY = -1
enum EnvironmentBG: 🔗
EnvironmentBG ENV_BG_CLEAR_COLOR = 0
使用清晰的颜色作为背景。
EnvironmentBG ENV_BG_COLOR = 1
使用指定的颜色作为背景。
EnvironmentBG ENV_BG_SKY = 2
使用天空资源作为背景。
EnvironmentBG ENV_BG_CANVAS = 3
使用指定的画布层作为背景。这对于在3D世界中实例化2D场景很有用。
EnvironmentBG ENV_BG_KEEP = 4
不要清除背景,使用最后一帧渲染的任何内容作为背景。
EnvironmentBG ENV_BG_CAMERA_FEED = 5
在后台显示摄像机馈送。
EnvironmentBG ENV_BG_MAX = 6
表示EnvironmentBG枚举的大小。
enum EnvironmentAmbientSource: 🔗
EnvironmentAmbientSource ENV_AMBIENT_SOURCE_BG = 0
从指定为背景的任何源收集环境光。
EnvironmentAmbientSource ENV_AMBIENT_SOURCE_DISABLED = 1
禁用环境光。
EnvironmentAmbientSource ENV_AMBIENT_SOURCE_COLOR = 2
为环境光指定特定的Color。
EnvironmentAmbientSource ENV_AMBIENT_SOURCE_SKY = 3
无论背景是什么,都要从Sky收集环境光。
enum EnvironmentReflectionSource: 🔗
EnvironmentReflectionSource ENV_REFLECTION_SOURCE_BG = 0
使用背景进行反射。
EnvironmentReflectionSource ENV_REFLECTION_SOURCE_DISABLED = 1
禁用反射。
EnvironmentReflectionSource ENV_REFLECTION_SOURCE_SKY = 2
无论背景是什么,都使用Sky进行反射。
enum EnvironmentGlowBlendMode: 🔗
EnvironmentGlowBlendMode ENV_GLOW_BLEND_MODE_ADDITIVE = 0
添加辉光混合模式。主要用于颗粒、辉光(绽放)、镜头耀斑、光源。
EnvironmentGlowBlendMode ENV_GLOW_BLEND_MODE_SCREEN = 1
屏幕发光混合模式。增加亮度,经常与绽放一起使用。
EnvironmentGlowBlendMode ENV_GLOW_BLEND_MODE_SOFTLIGHT = 2
柔光发光混合模式。修改对比度,曝光阴影和高光(生动的绽放)。
EnvironmentGlowBlendMode ENV_GLOW_BLEND_MODE_REPLACE = 3
替换发光混合模式。用发光值替换所有像素的颜色。这可用于通过调整发光参数以匹配原始图像的亮度来模拟全屏模糊效果。
EnvironmentGlowBlendMode ENV_GLOW_BLEND_MODE_MIX = 4
将辉光与底层颜色混合,以避免增加亮度,同时仍保持辉光效果。
enum EnvironmentFogMode: 🔗
EnvironmentFogMode ENV_FOG_MODE_EXPONENTIAL = 0
使用主要由雾密度定义的基于物理的雾模型。
EnvironmentFogMode ENV_FOG_MODE_DEPTH = 1
使用由开始和结束位置以及自定义曲线定义的简单雾模型。虽然物理上不准确,但当您需要更多艺术控制时,此模型可能很有用。
enum EnvironmentToneMapper: 🔗
EnvironmentToneMapper ENV_TONE_MAPPER_LINEAR = 0
不修改颜色数据,导致线性色调映射曲线不自然地剪辑明亮的值,导致明亮的光源看起来被吹灭。最简单、最快的色调映射器。
EnvironmentToneMapper ENV_TONE_MAPPER_REINHARD = 1
一种简单的色调映射曲线,可以滚动明亮的值以防止剪切。这会导致图像看起来暗淡和低对比度。比ENV_TONE_MAPPER_LINEAR慢。
注意:当Environment.tonemap_white留在1.0的默认值时,ENV_TONE_MAPPER_REINHARD会生成与ENV_TONE_MAPPER_LINEAR相同的图像。
EnvironmentToneMapper ENV_TONE_MAPPER_FILMIC = 2
使用类似胶片的色调映射曲线来防止明亮值的裁剪,并提供比ENV_TONE_MAPPER_REINHARD更好的对比度。比ENV_TONE_MAPPER_REINHARD稍慢。
EnvironmentToneMapper ENV_TONE_MAPPER_ACES = 3
使用高对比度胶片状色调映射曲线,并使明亮值去饱和以获得更逼真的外观。比ENV_TONE_MAPPER_FILMIC稍慢。
EnvironmentToneMapper ENV_TONE_MAPPER_AGX = 4
使用类似胶片的色调映射曲线并消除明亮值以获得更逼真的外观。在保持颜色变亮时比其他色调映射器更好。最慢的色调映射选项。
注意:Environment.tonemap_white固定为16.29的值,这使得ENV_TONE_MAPPER_AGX不适合与移动渲染方法一起使用。
enum EnvironmentSSRRoughnessQuality: 🔗
EnvironmentSSRRoughnessQuality ENV_SSR_ROUGHNESS_QUALITY_DISABLED = 0
用于屏幕空间反射的最低质量的粗糙度过滤器。与光滑(非粗糙)材质相比,粗糙材质不会有更模糊的屏幕空间反射。这是最快的选择。
EnvironmentSSRRoughnessQuality ENV_SSR_ROUGHNESS_QUALITY_LOW = 1
用于屏幕空间反射的粗糙度滤波器质量低。
EnvironmentSSRRoughnessQuality ENV_SSR_ROUGHNESS_QUALITY_MEDIUM = 2
中等质量的粗糙度过滤器,用于屏幕空间反射。
EnvironmentSSRRoughnessQuality ENV_SSR_ROUGHNESS_QUALITY_HIGH = 3
用于屏幕空间反射的高质量粗糙度过滤器。这是最慢的选择。
enum EnvironmentSSAOQuality: 🔗
EnvironmentSSAOQuality ENV_SSAO_QUALITY_VERY_LOW = 0
最低质量的屏幕空间环境遮挡。
EnvironmentSSAOQuality ENV_SSAO_QUALITY_LOW = 1
低质量的屏幕空间环境遮挡。
EnvironmentSSAOQuality ENV_SSAO_QUALITY_MEDIUM = 2
中等质量的屏幕空间环境遮挡。
EnvironmentSSAOQuality ENV_SSAO_QUALITY_HIGH = 3
高质量的屏幕空间环境遮挡。
EnvironmentSSAOQuality ENV_SSAO_QUALITY_ULTRA = 4
最高质量的屏幕空间环境遮挡。使用可动态调整的自适应目标设置,以平滑地平衡性能和视觉质量。
enum EnvironmentSSILQuality: 🔗
EnvironmentSSILQuality ENV_SSIL_QUALITY_VERY_LOW = 0
屏幕空间间接照明质量最低。
EnvironmentSSILQuality ENV_SSIL_QUALITY_LOW = 1
低质量的屏幕空间间接照明。
EnvironmentSSILQuality ENV_SSIL_QUALITY_MEDIUM = 2
高品质屏幕空间间接照明。
EnvironmentSSILQuality ENV_SSIL_QUALITY_HIGH = 3
高品质屏幕空间间接照明。
EnvironmentSSILQuality ENV_SSIL_QUALITY_ULTRA = 4
最高质量的屏幕空间间接照明。使用可动态调整的自适应目标设置,以平滑地平衡性能和视觉质量。
enum EnvironmentSDFGIYScale: 🔗
EnvironmentSDFGIYScale ENV_SDFGI_Y_SCALE_50_PERCENT = 0
在Y(垂直)轴上为SDFGI使用50%的比例。SDFGI单元将是宽的两倍短。这允许提供更多的GI细节,并通过薄地板和天花板减少漏光。这通常是不太具有垂直度的场景的最佳选择。
EnvironmentSDFGIYScale ENV_SDFGI_Y_SCALE_75_PERCENT = 1
在Y(垂直)轴上为SDFGI使用75%刻度。这是50%和100%SDFGI Y刻度之间的平衡。
EnvironmentSDFGIYScale ENV_SDFGI_Y_SCALE_100_PERCENT = 2
在Y(垂直)轴上对SDFGI使用100%比例。SDFGI单元将与宽一样高。这通常是高度垂直场景的最佳选择。缺点是地板和天花板薄可能会更明显地漏光。
enum EnvironmentSDFGIRayCount: 🔗
EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_4 = 0
汇聚SDFGI时每帧投射4条光线。这具有最低的GPU要求,但会产生最嘈杂的结果。
EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_8 = 1
汇聚SDFGI时每帧投射8条光线。
EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_16 = 2
汇聚SDFGI时每帧投射16条光线。
EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_32 = 3
汇聚SDFGI时每帧投射32条光线。
EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_64 = 4
汇聚SDFGI时每帧投射64条光线。
EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_96 = 5
汇聚SDFGI时每帧投射96条光线。这对GPU的要求很高。
EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_128 = 6
汇聚SDFGI时每帧投射128条光线。这具有非常高的GPU要求,但会产生最小的噪声结果。
EnvironmentSDFGIRayCount ENV_SDFGI_RAY_COUNT_MAX = 7
表示EnvironmentSDFGIRayCount枚举的大小。
enum EnvironmentSDFGIFramesToConverge: 🔗
EnvironmentSDFGIFramesToConverge ENV_SDFGI_CONVERGE_IN_5_FRAMES = 0
在5帧内收敛SDFGI。这是响应最快的,但在给定光线计数下会产生最嘈杂的结果。
EnvironmentSDFGIFramesToConverge ENV_SDFGI_CONVERGE_IN_10_FRAMES = 1
将SDFGI配置为完全收敛超过10帧。
EnvironmentSDFGIFramesToConverge ENV_SDFGI_CONVERGE_IN_15_FRAMES = 2
将SDFGI配置为完全收敛超过15帧。
EnvironmentSDFGIFramesToConverge ENV_SDFGI_CONVERGE_IN_20_FRAMES = 3
将SDFGI配置为完全收敛超过20帧。
EnvironmentSDFGIFramesToConverge ENV_SDFGI_CONVERGE_IN_25_FRAMES = 4
将SDFGI配置为完全收敛超过25帧。
EnvironmentSDFGIFramesToConverge ENV_SDFGI_CONVERGE_IN_30_FRAMES = 5
将SDFGI配置为完全收敛超过30帧。这是响应最慢的,但在给定光线计数的情况下会产生最不嘈杂的结果。
EnvironmentSDFGIFramesToConverge ENV_SDFGI_CONVERGE_MAX = 6
表示EnvironmentSDFGIFramesToConverge枚举的大小。
enum EnvironmentSDFGIFramesToUpdateLight: 🔗
EnvironmentSDFGIFramesToUpdateLight ENV_SDFGI_UPDATE_LIGHT_IN_1_FRAME = 0
在1帧内更新来自SDFGI中动态灯的间接光。这是响应最快的,但具有最高的GPU要求。
EnvironmentSDFGIFramesToUpdateLight ENV_SDFGI_UPDATE_LIGHT_IN_2_FRAMES = 1
在2帧以上更新SDFGI中动态灯的间接光。
EnvironmentSDFGIFramesToUpdateLight ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES = 2
在4帧以上更新SDFGI中动态灯的间接光。
EnvironmentSDFGIFramesToUpdateLight ENV_SDFGI_UPDATE_LIGHT_IN_8_FRAMES = 3
在8帧以上更新SDFGI中动态灯的间接光。
EnvironmentSDFGIFramesToUpdateLight ENV_SDFGI_UPDATE_LIGHT_IN_16_FRAMES = 4
更新来自SDFGI中动态灯的间接光超过16帧。这是响应最慢的,但对GPU的要求最低。
EnvironmentSDFGIFramesToUpdateLight ENV_SDFGI_UPDATE_LIGHT_MAX = 5
表示EnvironmentSDFGIFramesToUpdateLight枚举的大小。
enum SubSurfaceScatteringQuality: 🔗
SubSurfaceScatteringQuality SUB_SURFACE_SCATTERING_QUALITY_DISABLED = 0
完全禁用地下散射,即使在BaseMaterial3D.subsurf_scatter_enabled设置为true的材质上也是如此。这具有最低的GPU要求。
SubSurfaceScatteringQuality SUB_SURFACE_SCATTERING_QUALITY_LOW = 1
地下散射质量低。
SubSurfaceScatteringQuality SUB_SURFACE_SCATTERING_QUALITY_MEDIUM = 2
介质亚表面散射质量。
SubSurfaceScatteringQuality SUB_SURFACE_SCATTERING_QUALITY_HIGH = 3
高地下散射质量。这具有最高的GPU要求。
enum DOFBokehShape: 🔗
DOFBokehShape DOF_BOKEH_BOX = 0
使用框过滤器计算自由度模糊。最快的选择,但会导致模糊图案中明显的线条。
DOFBokehShape DOF_BOKEH_HEXAGON = 1
使用六边形滤波器计算自由度模糊。
DOFBokehShape DOF_BOKEH_CIRCLE = 2
使用圆形滤镜计算自由度模糊。质量最好,最逼真,但最慢。仅用于可以专门用于后处理的大量性能的区域(例如过场动画)。
enum DOFBlurQuality: 🔗
DOFBlurQuality DOF_BLUR_QUALITY_VERY_LOW = 0
最低质量的自由度模糊。这是最快的设置,但您可能会看到过滤伪影。
DOFBlurQuality DOF_BLUR_QUALITY_LOW = 1
低质量自由度模糊。
DOFBlurQuality DOF_BLUR_QUALITY_MEDIUM = 2
中等质量自由度模糊。
DOFBlurQuality DOF_BLUR_QUALITY_HIGH = 3
最高质量的自由度模糊。通过采集最多的样本,可以获得最平滑的模糊效果,但速度也明显较慢。
enum InstanceType: 🔗
InstanceType INSTANCE_NONE = 0
该实例没有类型。
InstanceType INSTANCE_MESH = 1
该实例是一个网格。
InstanceType INSTANCE_MULTIMESH = 2
该实例是一个multitimesh。
InstanceType INSTANCE_PARTICLES = 3
该实例是一个粒子发射器。
InstanceType INSTANCE_PARTICLES_COLLISION = 4
该实例是一个GPU粒子碰撞形状。
InstanceType INSTANCE_LIGHT = 5
该实例是一盏灯。
InstanceType INSTANCE_REFLECTION_PROBE = 6
该实例是一个反射探测。
InstanceType INSTANCE_DECAL = 7
该实例是贴花。
InstanceType INSTANCE_VOXEL_GI = 8
该实例是一个VoxelGI。
InstanceType INSTANCE_LIGHTMAP = 9
该实例是一个光照贴图。
InstanceType INSTANCE_OCCLUDER = 10
该实例是一个遮挡剔除遮挡器。
InstanceType INSTANCE_VISIBLITY_NOTIFIER = 11
该实例是一个可见的屏幕通知程序。
InstanceType INSTANCE_FOG_VOLUME = 12
该实例是一个雾卷。
InstanceType INSTANCE_MAX = 13
表示InstanceType枚举的大小。
InstanceType INSTANCE_GEOMETRY_MASK = 14
几何实例的标志的组合(网格、多网格、直接和粒子)。
enum InstanceFlags: 🔗
InstanceFlags INSTANCE_FLAG_USE_BAKED_LIGHT = 0
允许在烘焙照明中使用实例。
InstanceFlags INSTANCE_FLAG_USE_DYNAMIC_GI = 1
允许将实例与动态全局照明一起使用。
InstanceFlags INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE = 2
设置后,手动请求在下一帧绘制几何体。
InstanceFlags INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING = 3
始终绘制,即使实例将被遮挡剔除。不影响视图截头体剔除。
InstanceFlags INSTANCE_FLAG_MAX = 4
表示InstanceFlags枚举的大小。
enum ShadowCastingSetting: 🔗
ShadowCastingSetting SHADOW_CASTING_SETTING_OFF = 0
禁用此实例中的阴影。
ShadowCastingSetting SHADOW_CASTING_SETTING_ON = 1
从此实例投射阴影。
ShadowCastingSetting SHADOW_CASTING_SETTING_DOUBLE_SIDED = 2
渲染对象的阴影时禁用背面剔除。这稍微慢一点,但可能会产生更正确的阴影。
ShadowCastingSetting SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3
仅渲染对象的阴影。对象本身不会被绘制。
enum VisibilityRangeFadeMode: 🔗
VisibilityRangeFadeMode VISIBILITY_RANGE_FADE_DISABLED = 0
禁用给定实例的可见性范围衰落。
VisibilityRangeFadeMode VISIBILITY_RANGE_FADE_SELF = 1
当给定实例接近其可见性范围限制时淡出。
VisibilityRangeFadeMode VISIBILITY_RANGE_FADE_DEPENDENCIES = 2
在达到可见性范围限制时淡入给定实例的依赖项。
enum BakeChannels: 🔗
BakeChannels BAKE_CHANNEL_ALBEDO_ALPHA = 0
bake_render_uv2()返回的Image数组中的Image索引。Image使用Image.FORMAT_RGBA8并在. rgb通道中包含反照率颜色,在.a通道中包含alpha。
BakeChannels BAKE_CHANNEL_NORMAL = 1
bake_render_uv2()返回的Image数组中的Image索引。Image使用Image.FORMAT_RGBA8,在. rgb通道中包含对象的每像素法线,在.a通道中不包含任何内容。每像素法线编码为法线*0.5+0.5。
BakeChannels BAKE_CHANNEL_ORM = 2
bake_render_uv2()返回的Image数组中的Image索引。图像使用Image.FORMAT_RGBA8并包含. r通道中的环境遮挡(仅来自材质和贴花)、.g通道中的粗糙度、.b通道中的金属和.a通道中的亚表面散射量。
BakeChannels BAKE_CHANNEL_EMISSION = 3
bake_render_uv2()返回的Image数组中的Image索引。Image使用Image.FORMAT_RGBAH,在. rgb通道中包含发射颜色,在.a通道中不包含发射颜色。
enum CanvasTextureChannel: 🔗
CanvasTextureChannel CANVAS_TEXTURE_CHANNEL_DIFFUSE = 0
漫反射画布纹理(CanvasTexture.diffuse_texture)。
CanvasTextureChannel CANVAS_TEXTURE_CHANNEL_NORMAL = 1
法线贴图画布纹理(CanvasTexture.normal_texture)。
CanvasTextureChannel CANVAS_TEXTURE_CHANNEL_SPECULAR = 2
高光贴图画布纹理(CanvasTexture.specular_texture)。
enum NinePatchAxisMode: 🔗
NinePatchAxisMode NINE_PATCH_STRETCH = 0
九个补丁在需要的地方被拉伸。
NinePatchAxisMode NINE_PATCH_TILE = 1
九个补丁在需要的地方被瓷砖填充。
NinePatchAxisMode NINE_PATCH_TILE_FIT = 2
九块补丁在需要的地方装满瓷砖,如果需要,可以稍微拉伸一下。
enum CanvasItemTextureFilter: 🔗
CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_DEFAULT = 0
使用此Viewport的默认过滤模式。
CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_NEAREST = 1
纹理过滤器仅从最近的像素读取。这使得纹理从近距离看是像素化的,从远处看是颗粒状的(由于mipmap没有被采样)。
CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_LINEAR = 2
纹理过滤器在最近的4个像素之间混合。这使得纹理从近距离看很光滑,从远处看很颗粒状(由于mipmap没有被采样)。
CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 3
纹理过滤器从最近的像素读取并在最近的2个mipmap之间混合(或者使用最近的mipmap,如果ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter是真)。这使得纹理从近距离看是像素化的,从远处看是平滑的。
将其用于可以以低比例查看的非像素艺术纹理(例如,由于Camera2D缩放或精灵缩放),因为mipmap对于平滑小于屏幕像素的像素很重要。
CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 4
纹理过滤器在最近的4个像素和最近的2个mipmap之间混合(或者使用最近的mipmap,如果ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter是真)。这使得纹理近距离看起来很光滑,远距离看起来很光滑。
将其用于可以以低比例查看的非像素艺术纹理(例如,由于Camera2D缩放或精灵缩放),因为mipmap对于平滑小于屏幕像素的像素很重要。
CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC = 5
纹理过滤器从最近的像素读取,并根据表面和摄像机视图之间的角度在2个mipmap之间混合(或者使用最近的mipmap,如果ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter是真)。这使得纹理从近距离看是像素化的,从远处看是平滑的。各向异性过滤提高了几乎与摄像机一致的表面的纹理质量,但速度稍慢。各向异性过滤级别可以通过调整ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level来改变。
注意:这个纹理过滤器在2D项目中很少有用。CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS在这种情况下通常更合适。
CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC = 6
纹理滤镜在最近的4个像素之间混合,并在2个mipmap之间混合(或者使用最近的mipmap,如果ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter是真)基于表面和摄像机视图之间的角度。这使得纹理从近距离看起来平滑,从远处看平滑。各向异性过滤提高了几乎与摄像机一致的表面上的纹理质量,但速度稍慢。各向异性过滤级别可以通过调整ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level来改变。
注意:这个纹理过滤器在2D项目中很少有用。CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS在这种情况下通常更合适。
CanvasItemTextureFilter CANVAS_ITEM_TEXTURE_FILTER_MAX = 7
CanvasItemTextureFilter枚举的最大值。
enum CanvasItemTextureRepeat: 🔗
CanvasItemTextureRepeat CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT = 0
使用此Viewport的默认重复模式。
CanvasItemTextureRepeat CANVAS_ITEM_TEXTURE_REPEAT_DISABLED = 1
禁用纹理重复。相反,当读取0-1范围之外的UV时,该值将被固定在纹理的边缘,从而导致纹理的边界被拉伸。
CanvasItemTextureRepeat CANVAS_ITEM_TEXTURE_REPEAT_ENABLED = 2
当UV坐标在0-1范围之外时,允许纹理重复。如果使用线性过滤模式之一,当采样器过滤纹理边缘时,这可能会导致纹理边缘出现伪影。
CanvasItemTextureRepeat CANVAS_ITEM_TEXTURE_REPEAT_MIRROR = 3
重复时翻转纹理,使边缘排列起来,而不是突然改变。
CanvasItemTextureRepeat CANVAS_ITEM_TEXTURE_REPEAT_MAX = 4
CanvasItemTextureRepeat枚举的最大值。
enum CanvasGroupMode: 🔗
CanvasGroupMode CANVAS_GROUP_MODE_DISABLED = 0
子项绘制在父项上并且不被裁剪。
CanvasGroupMode CANVAS_GROUP_MODE_CLIP_ONLY = 1
父级仅用于裁剪目的。子级被裁剪到父级的可见区域,父级不被绘制。
CanvasGroupMode CANVAS_GROUP_MODE_CLIP_AND_DRAW = 2
父级用于裁剪子级,但在将子级裁剪到其可见区域之前,父级也会像往常一样绘制在子级下方。
CanvasGroupMode CANVAS_GROUP_MODE_TRANSPARENT = 3
enum CanvasLightMode: 🔗
CanvasLightMode CANVAS_LIGHT_MODE_POINT = 0
2D点灯(参见PointLight2D)。
CanvasLightMode CANVAS_LIGHT_MODE_DIRECTIONAL = 1
2D定向(太阳/月亮)光(参见DirectionalLight2D)。
enum CanvasLightBlendMode: 🔗
CanvasLightBlendMode CANVAS_LIGHT_BLEND_MODE_ADD = 0
向画布添加浅色添加剂。
CanvasLightBlendMode CANVAS_LIGHT_BLEND_MODE_SUB = 1
向画布添加浅色减法。
CanvasLightBlendMode CANVAS_LIGHT_BLEND_MODE_MIX = 2
光源根据透明度增加颜色。
enum CanvasLightShadowFilter: 🔗
CanvasLightShadowFilter CANVAS_LIGHT_FILTER_NONE = 0
不要将滤镜应用于画布光影。
CanvasLightShadowFilter CANVAS_LIGHT_FILTER_PCF5 = 1
使用PCF5过滤过滤画布光影。
CanvasLightShadowFilter CANVAS_LIGHT_FILTER_PCF13 = 2
使用PCF13过滤过滤画布光影。
CanvasLightShadowFilter CANVAS_LIGHT_FILTER_MAX = 3
CanvasLightShadowFilter枚举的最大值。
enum CanvasOccluderPolygonCullMode: 🔗
CanvasOccluderPolygonCullMode CANVAS_OCCLUDER_POLYGON_CULL_DISABLED = 0
画布封堵器的剔除被禁用。
CanvasOccluderPolygonCullMode CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE = 1
画布封堵器的剔除是顺时针方向。
CanvasOccluderPolygonCullMode CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE = 2
画布封堵器的剔除是逆时针方向的。
enum GlobalShaderParameterType: 🔗
GlobalShaderParameterType GLOBAL_VAR_TYPE_BOOL = 0
布尔全局着色器参数(全局统一bool…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_BVEC2 = 1
二维布尔向量全局着色器参数(全局统一bvec2…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_BVEC3 = 2
3维布尔向量全局着色器参数(全局统一bvec3…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_BVEC4 = 3
4维布尔向量全局着色器参数(全局统一bvec4…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_INT = 4
整数全局着色器参数(全局统一int…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_IVEC2 = 5
二维整数向量全局着色器参数(全局统一ivec2…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_IVEC3 = 6
3维整数向量全局着色器参数(全局统一ivec3…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_IVEC4 = 7
4维整数向量全局着色器参数(全局统一ivec4…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_RECT2I = 8
二维整数矩形全局着色器参数(全局统一ivec4…)。相当于着色器代码中的GLOBAL_VAR_TYPE_IVEC4,但在编辑器UI中显示为Rect2i。
GlobalShaderParameterType GLOBAL_VAR_TYPE_UINT = 9
无符号整数全局着色器参数(全局统一uint…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_UVEC2 = 10
二维无符号整数向量全局着色器参数(全局统一uvec2…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_UVEC3 = 11
3维无符号整数向量全局着色器参数(全局统一uvec3…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_UVEC4 = 12
4维无符号整数向量全局着色器参数(全局统一uvec4…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_FLOAT = 13
单精度浮点全局着色器参数(全局统一浮点…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_VEC2 = 14
2维浮点向量全局着色器参数(全局统一vec2…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_VEC3 = 15
3维浮点向量全局着色器参数(全局统一vec3…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_VEC4 = 16
4维浮点向量全局着色器参数(全局统一vec4…)。
GlobalShaderParameterType GLOBAL_VAR_TYPE_COLOR = 17
颜色全局着色器参数(全局统一vec4…)。相当于着色器代码中的GLOBAL_VAR_TYPE_VEC4,但在编辑器UI中显示为Color。
GlobalShaderParameterType GLOBAL_VAR_TYPE_RECT2 = 18
二维浮点矩形全局着色器参数(全局统一vec4…)。相当于着色器代码中的GLOBAL_VAR_TYPE_VEC4,但在编辑器UI中显示为Rect2。
GlobalShaderParameterType GLOBAL_VAR_TYPE_MAT2 = 19
2×2矩阵全局着色器参数(全局统一mat2…)。在编辑器UI中公开为PackedInt32Array。
GlobalShaderParameterType GLOBAL_VAR_TYPE_MAT3 = 20
3×3矩阵全局着色器参数(全局统一mat3…)。在编辑器UI中作为Basis公开。
GlobalShaderParameterType GLOBAL_VAR_TYPE_MAT4 = 21
4×4矩阵全局着色器参数(全局统一mat4…)。在编辑器UI中公开为Projection。
GlobalShaderParameterType GLOBAL_VAR_TYPE_TRANSFORM_2D = 22
二维变换全局着色器参数(全局统一mat2x3…)。在编辑器UI中公开为Transform2D。
GlobalShaderParameterType GLOBAL_VAR_TYPE_TRANSFORM = 23
三维变换全局着色器参数(全局统一mat3x4…)。在编辑器UI中公开为Transform3D。
GlobalShaderParameterType GLOBAL_VAR_TYPE_SAMPLER2D = 24
2D采样器全局着色器参数(全局统一采样器2D…)。在编辑器UI中公开为Texture2D。
GlobalShaderParameterType GLOBAL_VAR_TYPE_SAMPLER2DARRAY = 25
2D采样器阵列全局着色器参数(全局统一采样器2DArray…)。在编辑器UI中公开为Texture2DArray。
GlobalShaderParameterType GLOBAL_VAR_TYPE_SAMPLER3D = 26
3D采样器全局着色器参数(全局统一采样器3D…)。在编辑器UI中公开为Texture3D。
GlobalShaderParameterType GLOBAL_VAR_TYPE_SAMPLERCUBE = 27
立方体贴图采样器全局着色器参数(全局统一采样器立方体…)。在编辑器UI中公开为Cubemap。
GlobalShaderParameterType GLOBAL_VAR_TYPE_SAMPLEREXT = 28
外部采样器全局着色器参数(全局统一采样器ExternalOES…)。在编辑器UI中暴露为ExternalTexture。
GlobalShaderParameterType GLOBAL_VAR_TYPE_MAX = 29
表示GlobalShaderParameterType枚举的大小。
enum RenderingInfo: 🔗
RenderingInfo RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME = 0
当前3D场景中渲染的对象数。这取决于摄像机位置和旋转。
RenderingInfo RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME = 1
当前3D场景中渲染的点、线或三角形的数量。这取决于摄像机位置和旋转。
RenderingInfo RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME = 2
为在当前3D场景中渲染而执行的绘制调用数。这取决于摄像机位置和旋转。
RenderingInfo RENDERING_INFO_TEXTURE_MEM_USED = 3
使用的纹理内存(以字节为单位)。
RenderingInfo RENDERING_INFO_BUFFER_MEM_USED = 4
使用的缓冲内存(以字节为单位)。这包括顶点数据、统一缓冲区和内部使用的许多杂项缓冲区类型。
RenderingInfo RENDERING_INFO_VIDEO_MEM_USED = 5
使用的视频内存(以字节为单位)。当使用前进+或移动渲染器时,这总是大于RENDERING_INFO_TEXTURE_MEM_USED和RENDERING_INFO_BUFFER_MEM_USED的总和,因为这两个指标没有考虑杂项数据。当使用兼容性渲染器时,这等于RENDERING_INFO_TEXTURE_MEM_USED和RENDERING_INFO_BUFFER_MEM_USED的总和。
RenderingInfo RENDERING_INFO_PIPELINE_COMPILATIONS_CANVAS = 6
由2D画布渲染器触发的管道编译数。
RenderingInfo RENDERING_INFO_PIPELINE_COMPILATIONS_MESH = 7
由加载网格触发的管道编译数。这些编译将在用户第一次运行应用时显示为更长的加载时间并且需要管道。
RenderingInfo RENDERING_INFO_PIPELINE_COMPILATIONS_SURFACE = 8
在渲染场景之前通过构建表面缓存触发的管道编译数。当用户第一次运行应用并且需要管道时加载场景时,这些编译将显示为口吃。
RenderingInfo RENDERING_INFO_PIPELINE_COMPILATIONS_DRAW = 9
绘制场景时触发的管道编译数。当用户第一次运行应用并且需要管道时,这些编译将在运行时显示为口吃。
RenderingInfo RENDERING_INFO_PIPELINE_COMPILATIONS_SPECIALIZATION = 10
为优化当前场景而触发的管道编译数。这些编译是在后台完成的,不应该导致任何口吃。
enum PipelineSource: 🔗
PipelineSource PIPELINE_SOURCE_CANVAS = 0
由2D画布渲染器触发的管道编译。
PipelineSource PIPELINE_SOURCE_MESH = 1
由加载网格触发的管道编译。
PipelineSource PIPELINE_SOURCE_SURFACE = 2
在渲染场景之前通过构建表面缓存触发的管道编译。
PipelineSource PIPELINE_SOURCE_DRAW = 3
绘制场景时触发的管道编译。
PipelineSource PIPELINE_SOURCE_SPECIALIZATION = 4
为优化当前场景而触发的管道编译。
PipelineSource PIPELINE_SOURCE_MAX = 5
表示PipelineSource枚举的大小。
enum Features: 🔗
Features FEATURE_SHADERS = 0
已弃用: i3D 3.0 起不再使用这个常量。
Features FEATURE_MULTITHREADED = 1
已弃用: i3D 3.0 起不再使用这个常量。
常量¶
NO_INDEX_ARRAY = -1 🔗
标记显示索引数组为空的错误。
ARRAY_WEIGHTS_SIZE = 4 🔗
每个顶点的权重/骨骼数。
CANVAS_ITEM_Z_MIN = -4096 🔗
画布项目的最小Z图层。
CANVAS_ITEM_Z_MAX = 4096 🔗
画布项目的最大Z图层。
MAX_GLOW_LEVELS = 7 🔗
可以与辉光后处理效果一起使用的辉光级别的最大数量。
MAX_CURSORS = 8 🔗
已弃用: 引擎不会使用这个常量。
MAX_2D_DIRECTIONAL_LIGHTS = 8 🔗
在2D中的给定时间可以渲染的最大方向灯数。
MAX_MESH_SURFACES = 256 🔗
网格可以拥有的最大表面数。
MATERIAL_RENDER_PRIORITY_MIN = -128 🔗
所有材质的最小渲染优先级。
MATERIAL_RENDER_PRIORITY_MAX = 127 🔗
所有材质的最大渲染优先级。
ARRAY_CUSTOM_COUNT = 4 🔗
可用的自定义数据数组的数量(ARRAY_CUSTOM0、ARRAY_CUSTOM1、ARRAY_CUSTOM2、ARRAY_CUSTOM3)。
PARTICLES_EMIT_FLAG_POSITION = 1 🔗
PARTICLES_EMIT_FLAG_ROTATION_SCALE = 2 🔗
PARTICLES_EMIT_FLAG_VELOCITY = 4 🔗
PARTICLES_EMIT_FLAG_COLOR = 8 🔗
PARTICLES_EMIT_FLAG_CUSTOM = 16 🔗
属性说明¶
如果false,则完全禁用渲染,但引擎逻辑仍在处理中。即使禁用渲染,您也可以调用force_draw()来绘制框架。
方法说明¶
Array[Image] bake_render_uv2(base: RID, material_overrides: Array[RID], image_size: Vector2i) 🔗
将在base参数中传递的带有可选material_overrides的Mesh材质数据烘焙到一组大小为image_size的Images。返回包含BakeChannels中指定的材质属性的Image数组。
void call_on_render_thread(callable: Callable) 🔗
由于RenderingServer实际逻辑可能在单独的线程上运行,从主线程(或任何其他线程)访问其内部将导致错误。为了更容易运行可以安全访问渲染内部的代码(例如RenderingDevice和类似的RD类),请通过此函数推送可调用对象,以便在渲染线程上执行。
RID camera_attributes_create() 🔗
创建摄像机属性对象并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有camera_attributes_RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注意:等效资源为CameraAttributes。
void camera_attributes_set_auto_exposure(camera_attributes: RID, enable: bool, min_sensitivity: float, max_sensitivity: float, speed: float, scale: float) 🔗
设置与自动曝光效果一起使用的参数。这些参数的含义与它们在CameraAttributes和CameraAttributesPractical中的对应参数相同。
void camera_attributes_set_dof_blur(camera_attributes: RID, far_enable: bool, far_distance: float, far_transition: float, near_enable: bool, near_distance: float, near_transition: float, amount: float) 🔗
设置用于自由度模糊效果的参数。这些参数与CameraAttributesPractical中的对应参数具有相同的含义。
void camera_attributes_set_dof_blur_bokeh_shape(shape: DOFBokehShape) 🔗
设置自由度散景图案的形状。可以使用不同的形状来实现艺术效果或满足性能目标。有关可用选项的更多详细信息,请参阅DOFBokehShape。
void camera_attributes_set_dof_blur_quality(quality: DOFBlurQuality, use_jitter: bool) 🔗
将DOF模糊效果的质量级别设置为DOFBlurQuality中的选项之一。use_jitter可用于在模糊传递期间拍摄的抖动样本以隐藏伪影,代价是看起来更模糊。
void camera_attributes_set_exposure(camera_attributes: RID, multiplier: float, normalization: float) 🔗
设置渲染器将使用的曝光值。归一化量用于将给定的曝光值 (EV) 烘焙到渲染计算中,以减小场景的动态范围。
归一化因子可按如下方式从曝光值 (EV100) 计算得出::
func get_exposure_normalization(ev100: float):
return 1.0 / (pow(2.0, ev100) * 1.2)
The exposure value can be calculated from aperture (in f-stops), shutter speed (in seconds), and sensitivity (in ISO) as follows:
func get_exposure(aperture: float, shutter_speed: float, sensitivity: float):
return log((aperture * aperture) / shutter_speed * (100.0 / sensitivity)) / log(2)
创建一个3D摄像机并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有camera_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注意:等效节点为Camera。
void camera_set_camera_attributes(camera: RID, effects: RID) 🔗
将使用camera_attributes_create()创建的camera_attributes设置为给定的摄像机。
void camera_set_compositor(camera: RID, compositor: RID) 🔗
设置此摄像机使用的合成器。等效于Camera.compositor。
void camera_set_cull_mask(camera: RID, layers: int) 🔗
设置与此摄像机关联的剔除蒙版。剔除蒙版描述此摄像机渲染的3D图层。相当于Camera.cull_mask。
void camera_set_environment(camera: RID, env: RID) 🔗
设置此摄像机使用的环境。相当于Camera.environment。
void camera_set_frustum(camera: RID, size: float, offset: Vector2, z_near: float, z_far: float) 🔗
将摄像机设置为使用平截头体投影。此模式允许调整offset参数以创建“倾斜的平截头体”效果。
void camera_set_orthogonal(camera: RID, size: float, z_near: float, z_far: float) 🔗
将摄像机设置为使用正交投影(也称为平行投影)。无论物体离屏幕有多远,它们在屏幕上都保持相同的大小。
void camera_set_perspective(camera: RID, fovy_degrees: float, z_near: float, z_far: float) 🔗
将摄像机设置为使用透视投影。当物体远离屏幕时,屏幕上的物体会变小。
void camera_set_transform(camera: RID, transform: Transform3D) 🔗
摄像机的集合Transform3D。
void camera_set_use_vertical_aspect(camera: RID, enable: bool) 🔗
如果true,则保留水平长宽比,其等价于Camera.KEEP_WIDTH。如果false,则保留垂直长宽比,其等价于Camera.KEEP_HEIGHT。
创建画布并返回分配的RID。可以使用返回的RID访问它。此RID将用于所有canvas_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
void canvas_item_add_animation_slice(item: RID, animation_length: float, slice_begin: float, slice_end: float, offset: float = 0.0) 🔗
后续的绘图命令将被忽略,除非它们属于指定的动画切片。这是一种更快的方法来实现在背景上循环而不是不断重新绘制的动画。
void canvas_item_add_circle(item: RID, pos: Vector2, radius: float, color: Color, antialiased: bool = false) 🔗
在itemRID指向的CanvasItem上绘制一个圆圈。另请参见CanvasItem.draw_circle()。
void canvas_item_add_clip_ignore(item: RID, ignore: bool) 🔗
如果ignore为true,则忽略对使用此画布项目绘制的项目的剪辑,直到再次调用此项并将ignore设置为false。
void canvas_item_add_lcd_texture_rect_region(item: RID, rect: Rect2, texture: RID, src_rect: Rect2, modulate: Color) 🔗
另请参见CanvasItem.draw_lcd_texture_rect_region()。
void canvas_item_add_line(item: RID, from: Vector2, to: Vector2, color: Color, width: float = -1.0, antialiased: bool = false) 🔗
在itemRID指向的CanvasItem上绘制一条线。另请参见CanvasItem.draw_line()。
void canvas_item_add_mesh(item: RID, mesh: RID, transform: Transform2D = Transform2D(1, 0, 0, 1, 0, 0), modulate: Color = Color(1, 1, 1, 1), texture: RID = RID()) 🔗
使用给定的transform、modulate颜色和texture绘制使用mesh_create()创建的网格。这由MeshInstance2D内部使用。
void canvas_item_add_msdf_texture_rect_region(item: RID, rect: Rect2, texture: RID, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1), outline_size: int = 0, px_range: float = 1.0, scale: float = 1.0) 🔗
另请参见CanvasItem.draw_msdf_texture_rect_region()。
void canvas_item_add_multiline(item: RID, points: PackedVector2Array, colors: PackedColorArray, width: float = -1.0, antialiased: bool = false) 🔗
在itemRID指向的CanvasItem上绘制2D多线。另请参见CanvasItem.draw_multiline()和CanvasItem.draw_multiline_colors()。
void canvas_item_add_multimesh(item: RID, mesh: RID, texture: RID = RID()) 🔗
在itemRID指向的CanvasItem上绘制2DMultiMesh。另请参见CanvasItem.draw_multimesh()。
void canvas_item_add_nine_patch(item: RID, rect: Rect2, source: Rect2, texture: RID, topleft: Vector2, bottomright: Vector2, x_axis_mode: NinePatchAxisMode = 0, y_axis_mode: NinePatchAxisMode = 0, draw_center: bool = true, modulate: Color = Color(1, 1, 1, 1)) 🔗
在itemRID指向的CanvasItem上绘制一个九块矩形。
void canvas_item_add_particles(item: RID, particles: RID, texture: RID) 🔗
在itemRID指向的CanvasItem上绘制粒子。
void canvas_item_add_polygon(item: RID, points: PackedVector2Array, colors: PackedColorArray, uvs: PackedVector2Array = PackedVector2Array(), texture: RID = RID()) 🔗
在itemRID指向的CanvasItem上绘制一个2D多边形。如果您需要更多的灵活性(例如能够使用骨骼),请改用canvas_item_add_triangle_array()。另请参见CanvasItem.draw_polygon()。
注意:如果您经常使用大量顶点重新绘制相同的多边形,请考虑使用Geometry2D.triangulate_polygon()预先计算三角测量并使用CanvasItem.draw_mesh()、CanvasItem.draw_multimesh()或canvas_item_add_triangle_array()。
void canvas_item_add_polyline(item: RID, points: PackedVector2Array, colors: PackedColorArray, width: float = -1.0, antialiased: bool = false) 🔗
在itemRID指向的CanvasItem上绘制2D折线。另请参见CanvasItem.draw_polyline()和CanvasItem.draw_polyline_colors()。
void canvas_item_add_primitive(item: RID, points: PackedVector2Array, colors: PackedColorArray, uvs: PackedVector2Array, texture: RID) 🔗
在itemRID指向的CanvasItem上绘制2D原语。另请参见CanvasItem.draw_primitive()。
void canvas_item_add_rect(item: RID, rect: Rect2, color: Color, antialiased: bool = false) 🔗
在itemRID指向的CanvasItem上绘制一个矩形。另请参见CanvasItem.draw_rect()。
void canvas_item_add_set_transform(item: RID, transform: Transform2D) 🔗
设置将用于转换后续画布项命令的Transform2D。
void canvas_item_add_texture_rect(item: RID, rect: Rect2, texture: RID, tile: bool = false, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false) 🔗
在itemRID指向的CanvasItem上绘制2D纹理矩形。另请参见CanvasItem.draw_texture_rect()和Texture2D.draw_rect()。
void canvas_item_add_texture_rect_region(item: RID, rect: Rect2, texture: RID, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false, clip_uv: bool = true) 🔗
在itemRID指向的CanvasItem上绘制2D纹理矩形的指定区域。另请参见CanvasItem.draw_texture_rect_region()和Texture2D.draw_rect_region()。
void canvas_item_add_triangle_array(item: RID, indices: PackedInt32Array, points: PackedVector2Array, colors: PackedColorArray, uvs: PackedVector2Array = PackedVector2Array(), bones: PackedInt32Array = PackedInt32Array(), weights: PackedFloat32Array = PackedFloat32Array(), texture: RID = RID(), count: int = -1) 🔗
在itemRID指向的CanvasItem上绘制一个三角形数组。这是Line2D和StyleBoxFlat内部用于渲染的。canvas_item_add_triangle_array()非常灵活,但使用起来比canvas_item_add_polygon()复杂。
注意:count未使用,可以不指定。
void canvas_item_attach_skeleton(item: RID, skeleton: RID) 🔗
将骨架附加到CanvasItem。删除前一个骨架。
void canvas_item_clear(item: RID) 🔗
清除CanvasItem并删除其中的所有命令。
创建一个新的CanvasItem实例并返回其RID。可以使用返回的RID访问它。此RID将用于所有canvas_item_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注意:等效节点是CanvasItem。
Variant canvas_item_get_instance_shader_parameter(instance: RID, parameter: StringName) const 🔗
从指定的画布项实例返回每个实例着色器统一的值。相当于CanvasItem.get_instance_shader_parameter()。
Variant canvas_item_get_instance_shader_parameter_default_value(instance: RID, parameter: StringName) const 🔗
从指定的画布项实例返回每个实例着色器统一的默认值。相当于CanvasItem.get_instance_shader_parameter()。
Array[Dictionary] canvas_item_get_instance_shader_parameter_list(instance: RID) const 🔗
从指定的画布项实例返回每个实例着色器统一名称的每个实例着色器统一名称的字典。
返回的字典是属性信息格式,键name,class_name,type,hint,hint_string,和使用。
void canvas_item_reset_physics_interpolation(item: RID) 🔗
防止当前物理刻度的物理插值。
这在将画布项目移动到新位置时很有用,可以立即更改而不是从以前的位置进行插值。
void canvas_item_set_canvas_group_mode(item: RID, mode: CanvasGroupMode, clear_margin: float = 5.0, fit_empty: bool = false, fit_margin: float = 0.0, blur_mipmaps: bool = false) 🔗
为itemRID指定的画布项设置2D渲染期间使用的画布组模式。对于更快但更有限的剪辑,请改用canvas_item_set_clip()。
注意:等效的节点功能可以在CanvasGroup和CanvasItem.clip_children中找到。
void canvas_item_set_clip(item: RID, clip: bool) 🔗
如果clip为true,则使itemRID指定的画布项不会在其rect坐标之外绘制任何内容。此裁剪速度很快,但仅适用于轴对齐的矩形。这意味着裁剪矩形会忽略旋转。对于更高级的裁剪形状,请改用canvas_item_set_canvas_group_mode()。
注意:等效的节点功能可以在Label.clip_text、RichTextLabel(始终启用)等中找到。
void canvas_item_set_copy_to_backbuffer(item: RID, enabled: bool, rect: Rect2) 🔗
设置CanvasItem以将rect复制到反向缓冲区。
void canvas_item_set_custom_rect(item: RID, use_custom_rect: bool, rect: Rect2 = Rect2(0, 0, 0, 0)) 🔗
如果use_custom_rect为true,则将item指定的画布项的自定义可见性矩形(用于剔除)设置为rect。设置自定义可见性矩形可以减少绘制大量2D实例时的CPU负载。如果use_custom_rect为false,则根据画布项的绘制命令自动计算可见性矩形。
void canvas_item_set_default_texture_filter(item: RID, filter: CanvasItemTextureFilter) 🔗
设置itemRID指定的画布项的默认纹理过滤模式。相当于CanvasItem.texture_filter。
void canvas_item_set_default_texture_repeat(item: RID, repeat: CanvasItemTextureRepeat) 🔗
为itemRID指定的画布项设置默认纹理重复模式。相当于CanvasItem.texture_repeat。
void canvas_item_set_distance_field_mode(item: RID, enabled: bool) 🔗
如果enabled为true,则为itemRID指定的画布项启用多通道有符号距离字段渲染模式。这意味着用于字体渲染,或使用msdfgen专门生成的图像。
void canvas_item_set_draw_behind_parent(item: RID, enabled: bool) 🔗
如果enabled为true,则将itemRID指定的画布项绘制在其父项后面。相当于CanvasItem.show_behind_parent。
void canvas_item_set_draw_index(item: RID, index: int) 🔗
设置CanvasItem的索引。
void canvas_item_set_instance_shader_parameter(instance: RID, parameter: StringName, value: Variant) 🔗
在指定的画布项实例上设置每个实例的着色器统一。相当于CanvasItem.set_instance_shader_parameter()。
void canvas_item_set_interpolated(item: RID, interpolated: bool) 🔗
如果interpolated为true,则为画布项打开物理插值。
void canvas_item_set_light_mask(item: RID, mask: int) 🔗
为itemRID指定的画布项设置光源mask。相当于CanvasItem.light_mask。
void canvas_item_set_material(item: RID, material: RID) 🔗
为itemRID指定的画布项设置一个新的material。相当于CanvasItem.material。
void canvas_item_set_modulate(item: RID, color: Color) 🔗
将itemRID指定的画布项的颜色相乘,同时影响其子项。另请参见canvas_item_set_self_modulate()。等效于CanvasItem.modulate。
void canvas_item_set_parent(item: RID, parent: RID) 🔗
将父CanvasItem设置为CanvasItem。该项目将从其父级继承变换、调制和可见性,例如场景树中的CanvasItem节点。
void canvas_item_set_self_modulate(item: RID, color: Color) 🔗
将itemRID指定的画布项的颜色相乘,而不影响其子项。另请参见canvas_item_set_modulate()。相当于CanvasItem.self_modulate。
void canvas_item_set_sort_children_by_y(item: RID, enabled: bool) 🔗
如果enabled为true,则在具有较高Y位置的子节点之前绘制具有最低Y位置的子节点。Y排序仅影响从itemRID指定的画布项继承的子节点,而不影响画布项本身。相当于CanvasItem.y_sort_enabled。
void canvas_item_set_transform(item: RID, transform: Transform2D) 🔗
设置由itemRID指定的画布项的transform。这会影响项目的绘制位置和方式。子画布项的变换乘以其父项的变换。相当于Node2D.transform。
void canvas_item_set_use_parent_material(item: RID, enabled: bool) 🔗
设置CanvasItem是否使用其父材质。
void canvas_item_set_visibility_layer(item: RID, visibility_layer: int) 🔗
设置与此CanvasItem关联的渲染可见性层。只有具有匹配渲染掩码的Viewport节点才会渲染此CanvasItem。
void canvas_item_set_visibility_notifier(item: RID, enable: bool, area: Rect2, enter_callable: Callable, exit_callable: Callable) 🔗
将给定的CanvasItem设置为可见性通知器。area定义检测可见性的区域。enter_callable在CanvasItem进入屏幕时调用,exit_callable在CanvasItem退出屏幕时调用。如果enable为false,则该项目将不再充当通知器。
此方法可用于手动模仿VisibleOnScreenNotifier2D。
void canvas_item_set_visible(item: RID, visible: bool) 🔗
设置CanvasItem的可见性。
void canvas_item_set_z_as_relative_to_parent(item: RID, enabled: bool) 🔗
如果启用此功能,父级的Z索引将添加到子级的Z索引中。
void canvas_item_set_z_index(item: RID, z_index: int) 🔗
设置CanvasItem的Z索引,即其绘制顺序(先绘制较低的索引)。
void canvas_item_transform_physics_interpolation(item: RID, transform: Transform2D) 🔗
转换画布项的当前和先前存储的转换。
这允许转换画布项目而不会在插值中产生“故障”,这对于使用移动原点的大型世界特别有用。
void canvas_light_attach_to_canvas(light: RID, canvas: RID) 🔗
将画布灯附加到画布。将其从以前的画布中删除。
创建画布灯并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有canvas_light_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注意:等效节点为Light2D。
void canvas_light_occluder_attach_to_canvas(occluder: RID, canvas: RID) 🔗
将光封堵器附加到画布。将其从以前的画布中删除。
RID canvas_light_occluder_create() 🔗
创建一个光封堵器并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有canvas_light_occluder_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注意:等效节点为LightOccluder2D。
void canvas_light_occluder_reset_physics_interpolation(occluder: RID) 🔗
防止当前物理刻度的物理插值。
这在将封堵器移动到新位置时很有用,以提供瞬时变化而不是从先前位置进行插值。
void canvas_light_occluder_set_as_sdf_collision(occluder: RID, enable: bool) 🔗
void canvas_light_occluder_set_enabled(occluder: RID, enabled: bool) 🔗
启用或禁用光封堵器。
void canvas_light_occluder_set_interpolated(occluder: RID, interpolated: bool) 🔗
如果interpolated为true,则为光遮挡器打开物理插值。
void canvas_light_occluder_set_light_mask(occluder: RID, mask: int) 🔗
光罩。有关光罩的更多信息,请参阅LightOccluder2D。
void canvas_light_occluder_set_polygon(occluder: RID, polygon: RID) 🔗
设置光封堵器的多边形。
void canvas_light_occluder_set_transform(occluder: RID, transform: Transform2D) 🔗
设置光封堵器的Transform2D。
void canvas_light_occluder_transform_physics_interpolation(occluder: RID, transform: Transform2D) 🔗
转换光遮挡器的当前和先前存储的转换。
这允许转换遮挡器而不会在插值中产生“故障”,这对于使用移位原点的大型世界特别有用。
void canvas_light_reset_physics_interpolation(light: RID) 🔗
防止当前物理刻度的物理插值。
这在将画布项目移动到新位置时很有用,可以立即更改而不是从以前的位置进行插值。
void canvas_light_set_blend_mode(light: RID, mode: CanvasLightBlendMode) 🔗
设置给定画布光源的混合模式。有关选项,请参见CanvasLightBlendMode。相当于Light2D.blend_mode。
void canvas_light_set_color(light: RID, color: Color) 🔗
设置灯的颜色。
void canvas_light_set_enabled(light: RID, enabled: bool) 🔗
启用或禁用画布灯。
void canvas_light_set_energy(light: RID, energy: float) 🔗
设置画布光的能量。
void canvas_light_set_height(light: RID, height: float) 🔗
设置画布灯的高度。
void canvas_light_set_interpolated(light: RID, interpolated: bool) 🔗
如果interpolated为true,则为画布灯打开物理插值。
void canvas_light_set_item_cull_mask(light: RID, mask: int) 🔗
光罩。有关光罩的更多信息,请参阅LightOccluder2D。
void canvas_light_set_item_shadow_cull_mask(light: RID, mask: int) 🔗
用于确定此画布光的阴影影响哪些图层的二进制蒙版。有关光蒙版的更多信息,请参阅LightOccluder2D。
void canvas_light_set_layer_range(light: RID, min_layer: int, max_layer: int) 🔗
使用此灯渲染的图层范围。
void canvas_light_set_mode(light: RID, mode: CanvasLightMode) 🔗
光源的模式,参见CanvasLightMode常量。
void canvas_light_set_shadow_color(light: RID, color: Color) 🔗
设置画布光影的颜色。
void canvas_light_set_shadow_enabled(light: RID, enabled: bool) 🔗
启用或禁用画布光源的阴影。
void canvas_light_set_shadow_filter(light: RID, filter: CanvasLightShadowFilter) 🔗
设置画布光影的滤镜,参见CanvasLightShadowFilter常量。
void canvas_light_set_shadow_smooth(light: RID, smooth: float) 🔗
平滑阴影。越低越平滑。
void canvas_light_set_texture(light: RID, texture: RID) 🔗
设置PointLight2D使用的纹理。相当于PointLight2D.texture。
void canvas_light_set_texture_offset(light: RID, offset: Vector2) 🔗
设置PointLight2D纹理的偏移量。相当于PointLight2D.offset。
void canvas_light_set_texture_scale(light: RID, scale: float) 🔗
设置PointLight2D纹理的比例因子。相当于PointLight2D.texture_scale。
void canvas_light_set_transform(light: RID, transform: Transform2D) 🔗
设置画布灯的Transform2D。
void canvas_light_set_z_range(light: RID, min_z: int, max_z: int) 🔗
设置将受此光影响的对象的Z范围。相当于Light2D.range_z_min和Light2D.range_z_max。
void canvas_light_transform_physics_interpolation(light: RID, transform: Transform2D) 🔗
转换画布灯的当前和先前存储的转换。
这允许转换光而不会在插值中产生“故障”,这对于利用移动原点的大型世界特别有用。
RID canvas_occluder_polygon_create() 🔗
创建一个新的光遮挡多边形并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有canvas_occluder_polygon_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注意:等效资源为OccluderPolygon2D。
void canvas_occluder_polygon_set_cull_mode(occluder_polygon: RID, mode: CanvasOccluderPolygonCullMode) 🔗
设置封堵器多边形剔除模式。请参见CanvasOccluderPolygonCullMode常量。
void canvas_occluder_polygon_set_shape(occluder_polygon: RID, shape: PackedVector2Array, closed: bool) 🔗
设置封堵器多边形的形状。
void canvas_set_disable_scale(disable: bool) 🔗
void canvas_set_item_mirroring(canvas: RID, item: RID, mirroring: Vector2) 🔗
将使用mirroring的本地偏移量绘制画布项的副本。
注意:这相当于调用canvas_set_item_repeat(),如canvas_set_item_repeat(item, mirrling,1),并通过额外的检查确保canvas是item的父级。
void canvas_set_item_repeat(item: RID, repeat_size: Vector2, repeat_times: int) 🔗
画布项的副本将以repeat_size的局部偏移量乘以repeat_times的次数绘制。随着repeat_times的增加,副本将远离原始纹理。
void canvas_set_modulate(canvas: RID, color: Color) 🔗
调整给定画布中的所有颜色。
void canvas_set_shadow_texture_size(size: int) 🔗
设置用于Light2D阴影渲染(以像素为单位)的ProjectSettings.rendering/2d/shadow_atlas/size。该值向上舍入到最接近的2次方。
创建画布纹理并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有canvas_texture_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。另请参见texture_2d_create()。
注意:等效资源是CanvasTexture,仅用于2D渲染,而不是3D。
void canvas_texture_set_channel(canvas_texture: RID, channel: CanvasTextureChannel, texture: RID) 🔗
为canvas_textureRID指定的画布纹理设置channel的texture。相当于CanvasTexture.diffuse_texture、CanvasTexture.normal_texture和CanvasTexture.specular_texture。
void canvas_texture_set_shading_parameters(canvas_texture: RID, base_color: Color, shininess: float) 🔗
设置base_color和shininess用于canvas_textureRID指定的画布纹理。相当于CanvasTexture.specular_color和CanvasTexture.specular_shininess。
void canvas_texture_set_texture_filter(canvas_texture: RID, filter: CanvasItemTextureFilter) 🔗
设置用于由canvas_textureRID指定的画布纹理的纹理filter模式。
void canvas_texture_set_texture_repeat(canvas_texture: RID, repeat: CanvasItemTextureRepeat) 🔗
设置用于由canvas_textureRID指定的画布纹理的纹理repeat模式。
创建一个新的合成器并将其添加到RenderingServer。可以使用返回的RID访问它。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
RID compositor_effect_create() 🔗
创建一个新的渲染效果并将其添加到渲染服务器。可以使用返回的RID访问它。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
void compositor_effect_set_callback(effect: RID, callback_type: CompositorEffectCallbackType, callback: Callable) 🔗
设置此渲染效果的回调类型(callback_type)和回调方法(callback)。
void compositor_effect_set_enabled(effect: RID, enabled: bool) 🔗
启用/禁用此渲染效果。
void compositor_effect_set_flag(effect: RID, flag: CompositorEffectFlags, set: bool) 🔗
将此渲染效果的标志(flag)设置为true或false(set)。
void compositor_set_compositor_effects(compositor: RID, effects: Array[RID]) 🔗
为指定的合成器RID设置合成器效果。effects应该是一个包含使用compositor_effect_create()创建的RID的数组。
RenderingDevice create_local_rendering_device() const 🔗
创建一个RenderingDevice,可用于在单独的线程上执行绘图和计算操作。无法绘制到屏幕,也无法与全局RenderingDevice共享数据。
注意:使用OpenGL渲染驱动程序或在无头模式下运行时,此函数始终返回null。
Rect2 debug_canvas_item_get_rect(item: RID) 🔗
返回本地空间中画布项的边界矩形,由渲染器计算。此绑定在内部用于剔除。
警告:此函数用于在编辑器中调试,并将在导出的项目中传递并返回零Rect2。
创建一个标记并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有decal_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
要放置在场景中,请使用返回的RID使用instance_set_base()将此贴花附加到实例。
注意:等效节点为DecalActor。
void decal_set_albedo_mix(decal: RID, albedo_mix: float) 🔗
在decalRID指定的贴花中设置albedo_mix。相当于DecalActor.albedo_mix。
void decal_set_cull_mask(decal: RID, mask: int) 🔗
在decalRID指定的贴花中设置cullmask。相当于DecalActor.cull_mask。
void decal_set_distance_fade(decal: RID, enabled: bool, begin: float, length: float) 🔗
在decalRID指定的贴花中设置距离渐变参数。相当于DecalActor.distance_fade_enabled、DecalActor.distance_fade_begin和DecalActor.distance_fade_length。
void decal_set_emission_energy(decal: RID, energy: float) 🔗
在decalRID指定的贴花中设置发射energy。相当于DecalActor.emission_energy。
void decal_set_fade(decal: RID, above: float, below: float) 🔗
在decalRID指定的贴花中设置上渐变色(above)和下渐变色(below)。相当于DecalActor.upper_fade和DecalActor.lower_fade。
void decal_set_modulate(decal: RID, color: Color) 🔗
将decalRID指定的贴花中的颜色乘数设置为color。等效于DecalActor.modulate。
void decal_set_normal_fade(decal: RID, fade: float) 🔗
在decalRID指定的贴花中设置正常fade。相当于DecalActor.normal_fade。
void decal_set_size(decal: RID, size: Vector3) 🔗
设置decalRID指定的贴花的size。相当于DecalActor.size。
void decal_set_texture(decal: RID, type: DecalTexture, texture: RID) 🔗
在指定贴花的给定纹理type槽中设置texture。相当于DecalActor.set_texture()。
void decals_set_filter(filter: DecalFilter) 🔗
设置渲染贴花时使用的纹理filter模式。此参数是全局的,不能在每个贴花的基础上设置。
RID directional_light_create() 🔗
创建方向灯并将其添加到RenderingServer。可以使用返回的RID访问它。此RID可用于大多数light_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
要放置在场景中,请使用返回的RID使用instance_set_base()将此方向灯附加到实例。
注意:等效节点为DirectionalLight。
void directional_shadow_atlas_set_size(size: int, is_16bits: bool) 🔗
设置3D方向光影的size。另请参阅ProjectSettings.rendering/lights_and_shadows/directional_shadow/size。此参数是全局的,不能在每个视口的基础上设置。
void directional_soft_shadow_filter_set_quality(quality: ShadowQuality) 🔗
为3D中的定向光影设置过滤器quality。另请参阅ProjectSettings.rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality。此参数是全局的,不能在每个视口的基础上设置。
Image environment_bake_panorama(environment: RID, bake_irradiance: bool, size: Vector2i) 🔗
生成并返回一个Image,其中包含指定environmentRID天空的辐射贴图。这支持内置天空材质和自定义天空着色器。如果bake_irradiance为true,则保存辐射贴图而不是辐射贴图。辐射贴图用于渲染反射光,而辐照贴图用于渲染环境光。另请参见sky_bake_panorama()。
注意:图像保存在线性颜色空间中,无需执行任何色调映射,这意味着如果直接在图像编辑器中查看,它会看起来太暗。
注意:size应该是2:1长宽比,以使生成的全景具有方形像素。对于辐射贴图,使用大于Sky.radiance_size,因为它不会增加细节。辐照贴图只包含低频数据,因此在保存辐照贴图时,通常没有必要超过128×64像素的尺寸。
创建一个环境并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有environment_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注:等效资源为【环境】。
void environment_glow_set_use_bicubic_upscale(enable: bool) 🔗
如果enable为true,则启用发光的双三次升级,以牺牲性能为代价提高质量。相当于ProjectSettings.rendering/environment/glow/upscale_mode。
void environment_set_adjustment(env: RID, enable: bool, brightness: float, contrast: float, saturation: float, use_1d_color_correction: bool, color_correction: RID) 🔗
设置要与“调整”后处理效果一起使用的值。有关详细信息,请参阅Environment。
void environment_set_ambient_light(env: RID, color: Color, ambient: EnvironmentAmbientSource = 0, energy: float = 1.0, sky_contribution: float = 0.0, reflection_source: EnvironmentReflectionSource = 0) 🔗
设置用于环境光渲染的值。有关详细信息,请参阅Environment。
void environment_set_background(env: RID, bg: EnvironmentBG) 🔗
设置环境的背景模式。相当于Environment.background_mode。
void environment_set_bg_color(env: RID, color: Color) 🔗
为场景的清晰区域显示颜色。仅在使用ENV_BG_COLOR背景模式时有效。
void environment_set_bg_energy(env: RID, multiplier: float, exposure_value: float) 🔗
设置背景颜色的强度。
void environment_set_camera_id(env: RID, id: int) 🔗
设置用作环境背景的摄像机ID。
void environment_set_canvas_max_layer(env: RID, max_layer: int) 🔗
设置如果使用Canvas背景模式要使用的最大图层。
void environment_set_fog(env: RID, enable: bool, light_color: Color, light_energy: float, sun_scatter: float, density: float, height: float, height_density: float, aerial_perspective: float, sky_affect: float, fog_mode: EnvironmentFogMode = 0) 🔗
为指定的环境RID配置雾。有关详细信息,请参阅Environment中的fog_*属性。
void environment_set_glow(env: RID, enable: bool, levels: PackedFloat32Array, intensity: float, strength: float, mix: float, bloom_threshold: float, blend_mode: EnvironmentGlowBlendMode, hdr_bleed_threshold: float, hdr_bleed_scale: float, hdr_luminance_cap: float, glow_map_strength: float, glow_map: RID) 🔗
为指定的环境RID配置发光。有关详细信息,请参阅Environment中的glow_*属性。
void environment_set_sdfgi(env: RID, enable: bool, cascades: int, min_cell_size: float, y_scale: EnvironmentSDFGIYScale, use_occlusion: bool, bounce_feedback: float, read_sky: bool, energy: float, normal_bias: float, probe_bias: float) 🔗
为指定的环境RID配置有符号距离场全局照明。有关详细信息,请参阅Environment中的sdfgi_*属性。
void environment_set_sdfgi_frames_to_converge(frames: EnvironmentSDFGIFramesToConverge) 🔗
设置用于会聚符号距离场全局照明的帧数。相当于ProjectSettings.rendering/global_illumination/sdfgi/frames_to_converge。
void environment_set_sdfgi_frames_to_update_light(frames: EnvironmentSDFGIFramesToUpdateLight) 🔗
设置计算符号距离场全局光照时动态灯间接光照的更新速度。相当于ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights。
void environment_set_sdfgi_ray_count(ray_count: EnvironmentSDFGIRayCount) 🔗
设置计算符号距离场全局光照时每帧投射的光线数。相当于ProjectSettings.rendering/global_illumination/sdfgi/probe_ray_count。
void environment_set_sky(env: RID, sky: RID) 🔗
设置使用BGModesky时用作环境背景的Sky。相当于Environment.sky。
void environment_set_sky_custom_fov(env: RID, scale: float) 🔗
为背景Sky设置自定义视野。相当于Environment.sky_custom_fov。
void environment_set_sky_orientation(env: RID, orientation: Basis) 🔗
设置表示为Basis的背景Sky的旋转。相当于Environment.sky_rotation,其中旋转向量用于构建Basis。
void environment_set_ssao(env: RID, enable: bool, radius: float, intensity: float, power: float, detail: float, horizon: float, sharpness: float, light_affect: float, ao_channel_affect: float) 🔗
设置要与屏幕空间环境遮挡(SSAO)后处理效果一起使用的变量。有关更多详细信息,请参阅Environment。
void environment_set_ssao_quality(quality: EnvironmentSSAOQuality, half_size: bool, adaptive_target: float, blur_passes: int, fadeout_from: float, fadeout_to: float) 🔗
设置屏幕空间环境遮挡(SSAO)后处理效果的质量级别。有关更多详细信息,请参阅Environment。
void environment_set_ssil_quality(quality: EnvironmentSSILQuality, half_size: bool, adaptive_target: float, blur_passes: int, fadeout_from: float, fadeout_to: float) 🔗
设置屏幕空间间接照明(SSIL)后处理效果的质量级别。有关详细信息,请参阅Environment。
void environment_set_ssr(env: RID, enable: bool, max_steps: int, fade_in: float, fade_out: float, depth_tolerance: float) 🔗
设置要与屏幕空间反射(SSR)后处理效果一起使用的变量。有关更多详细信息,请参阅Environment。
void environment_set_ssr_roughness_quality(quality: EnvironmentSSRRoughnessQuality) 🔗
void environment_set_tonemap(env: RID, tone_mapper: EnvironmentToneMapper, exposure: float, white: float) 🔗
设置要与“tonemap”后处理效果一起使用的变量。有关更多详细信息,请参阅Environment。
void environment_set_volumetric_fog(env: RID, enable: bool, density: float, albedo: Color, emission: Color, emission_energy: float, anisotropy: float, length: float, p_detail_spread: float, gi_inject: float, temporal_reprojection: bool, temporal_reprojection_amount: float, ambient_inject: float, sky_affect: float) 🔗
设置要与体积雾后处理效果一起使用的变量。有关更多详细信息,请参阅Environment。
void environment_set_volumetric_fog_filter_active(active: bool) 🔗
启用体积雾散射缓冲区的过滤。这会导致更平滑的体积,很少有采样不足的伪影。
void environment_set_volumetric_fog_volume_size(size: int, depth: int) 🔗
设置体积雾的Froxel缓冲区的分辨率。size由屏幕的长宽比修改,然后用于设置缓冲区的宽度和高度。而depth直接用于设置缓冲区的深度。
创建一个新的雾卷并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有fog_volume_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注意:等效节点为FogVolume。
void fog_volume_set_material(fog_volume: RID, material: RID) 🔗
设置雾卷的Material。可以是FogMaterial或自定义ShaderMaterial。
void fog_volume_set_shape(fog_volume: RID, shape: FogVolumeShape) 🔗
将雾卷的形状设置为FOG_VOLUME_SHAPE_ELLIPSOID、FOG_VOLUME_SHAPE_CONE、FOG_VOLUME_SHAPE_CYLINDER、FOG_VOLUME_SHAPE_BOX或FOG_VOLUME_SHAPE_WORLD。
void fog_volume_set_size(fog_volume: RID, size: Vector3) 🔗
设置形状为FOG_VOLUME_SHAPE_ELLIPSOID、FOG_VOLUME_SHAPE_CONE、FOG_VOLUME_SHAPE_CYLINDER或FOG_VOLUME_SHAPE_BOX时的雾体积大小。
void force_draw(swap_buffers: bool = true, frame_step: float = 0.0) 🔗
强制一次重绘所有视口。必须从主线程调用。
void force_sync() 🔗
强制CPU和GPU之间的同步,这在某些情况下可能需要。仅在需要时调用它,因为CPU-GPU同步具有性能成本。
尝试释放RenderingServer中的对象。为避免内存泄漏,应在使用对象后调用它,因为直接使用RenderingServer时不会自动进行内存管理。
String get_current_rendering_driver_name() const 🔗
返回当前渲染驱动程序的名称。这可以是Vulkan、d3d12、金属、opengl3、opengl3_es或opengl3_angle。另请参见get_current_rendering_method()。
渲染驱动程序由ProjectSettings.rendering/rendering_device/driver、覆盖此项目设置的--renent-驱动程序命令行参数或根据硬件应用的自动回退决定。
String get_current_rendering_method() const 🔗
返回当前呈现方法的名称。这可以是forward_plus、mobile或gl_compatibility。另请参见get_current_rendering_driver_name()。
渲染方法由ProjectSettings.rendering/renderer/rendering_method、覆盖此项目设置的--renent-method命令行参数或根据硬件应用的自动回退决定。
Color get_default_clear_color() 🔗
返回未选择特定透明颜色时使用的默认透明颜色。另请参见set_default_clear_color()。
float get_frame_setup_time_cpu() const 🔗
返回在CPU上设置渲染所需的时间(以毫秒为单位)。此值在所有视口中共享,并且不要求在要查询的视口上启用viewport_set_measure_render_time()。另请参见viewport_get_measured_render_time_cpu()。
RenderingDevice get_rendering_device() const 🔗
返回全局RenderingDevice。
注意:使用OpenGL渲染驱动程序或在无头模式下运行时,此函数始终返回null。
int get_rendering_info(info: RenderingInfo) 🔗
返回有关渲染引擎的统计信息,可用于性能分析。有关可查询的值列表,请参阅RenderingInfo。另请参阅viewport_get_render_info(),它返回特定于视口的信息。
**注意:** 目前其中一些值(例如绘制调用次数)仅考虑3D渲染。
注意: 在引擎至少渲染2帧之后,渲染信息才可用。如果渲染信息不可用,get_rendering_info() 将返回0。要在_ready()中成功打印渲染信息,请使用以下方法:
func _ready():
for _i in 2:
await get_tree().process_frame
print(RenderingServer.get_rendering_info(RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME))
Array[Dictionary] get_shader_parameter_list(shader: RID) const 🔗
返回着色器的参数。
返回测试多维数据集的RID。该网格将在第一次调用get_test_cube()时创建并返回,然后将被缓存以供后续调用。另请参见make_sphere_mesh()。
返回一个 256×256 纹理的 RID,该纹理上有测试图案(采用 Image.FORMAT_RGB8 格式)。此纹理将在首次调用 get_test_texture() 时创建并返回,之后的调用将从缓存中获取。另请参阅 get_white_texture()。
Example:获取测试纹理并将其应用于 Sprite2D 节点:
var texture_rid = RenderingServer.get_test_texture()
var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid))
$Sprite2D.texture = texture
String get_video_adapter_api_version() const 🔗
返回当前使用的图形视频适配器的版本(例如Vulkan的1.2.189,OpenGL的3.3.0NVIDIA510.60.02)。此版本可能与硬件支持的实际最新版本不同,因为i3D可能并不总是请求最新版本。另请参见OS.get_video_adapter_driver_info()。
注意:当运行无头或服务器二进制文件时,此函数返回一个空字符串。
String get_video_adapter_name() const 🔗
返回视频适配器的名称(例如“GeForce GTX 1080/PCIe/SSE2”)。
注意:当运行无头或服务器二进制文件时,此函数返回一个空字符串。
注意:在Web平台上,某些浏览器(例如Firefox)可能会报告不同的固定GPU名称,例如“GeForce GTX 980”(无论用户的实际GPU型号如何)。这样做是为了使指纹识别更加困难。
DeviceType get_video_adapter_type() const 🔗
返回视频适配器的类型。由于给定一代的专用显卡通常比同一代制作的集成显卡快得多,因此设备类型可以作为自动图形设置调整的基础。然而,这并不总是正确的,因此请确保为用户提供手动覆盖图形设置的方法。
注意:当使用OpenGL渲染驱动程序或在无头模式下运行时,此函数始终返回RenderingDevice.DEVICE_TYPE_OTHER。
String get_video_adapter_vendor() const 🔗
返回视频适配器的供应商(例如“NVIDIA Corporation”)。
注意:当运行无头或服务器二进制文件时,此函数返回一个空字符串。
返回一个4×4白色纹理的ID(格式为Image.FORMAT_RGB8)。该纹理将在首次调用get_white_texture()时创建并返回,之后的调用将从缓存中获取。另请参阅get_test_texture()。
**示例**:获取白色纹理并将其应用于Sprite2D节点:
var texture_rid = RenderingServer.get_white_texture()
var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid))
$Sprite2D.texture = texture
void gi_set_use_half_resolution(half_resolution: bool) 🔗
如果half_resolution为true,则在每个轴上以减半分辨率呈现VoxelGI和SDFGI(Environment.sdfgi_enabled)缓冲区(例如,当视口大小为1920×1080时为960×540)。当启用VoxelGI或SDFGI时,这会显着提高性能,代价是多边形边缘上可能可见的伪影。随着视口分辨率的增加,质量损失变得不那么明显。Lightmass渲染不受此设置的影响。相当于ProjectSettings.rendering/global_illumination/gi/use_half_resolution。
void global_shader_parameter_add(name: StringName, type: GlobalShaderParameterType, default_value: Variant) 🔗
创建一个新的全局着色器统一。
注意:全局着色器参数名称区分大小写。
Variant global_shader_parameter_get(name: StringName) const 🔗
返回name指定的全局着色器统一值。
注意:global_shader_parameter_get()有很大的性能损失,因为渲染线程需要与调用线程同步,这很慢。不要在运行时使用此方法以避免卡顿。如果您需要在设置脚本中的值后读取它们,请考虑创建一个自动加载,在将它们设置为全局参数的同时存储您需要查询的值。
Array[StringName] global_shader_parameter_get_list() const 🔗
返回全局着色器统一名称列表。
注意:global_shader_parameter_get()有很大的性能损失,因为渲染线程需要与调用线程同步,这很慢。不要在运行时使用此方法以避免卡顿。如果您需要在设置脚本中的值后读取它们,请考虑创建一个自动加载,在将它们设置为全局参数的同时存储您需要查询的值。
GlobalShaderParameterType global_shader_parameter_get_type(name: StringName) const 🔗
返回与name指定的全局着色器统一关联的类型。
注意:global_shader_parameter_get()有很大的性能损失,因为渲染线程需要与调用线程同步,这很慢。不要在运行时使用此方法以避免卡顿。如果您需要在设置脚本中的值后读取它们,请考虑创建一个自动加载,在将它们设置为全局参数的同时存储您需要查询的值。
void global_shader_parameter_remove(name: StringName) 🔗
移除name指定的全局着色器统一。
void global_shader_parameter_set(name: StringName, value: Variant) 🔗
将全局着色器统一name设置为value。
void global_shader_parameter_set_override(name: StringName, value: Variant) 🔗
用value覆盖全局着色器统一name。相当于ShaderGlobalsOverride节点。
如果对RenderingServer的数据进行了更改,则返回true。如果发生这种情况,通常会调用force_draw()。
bool has_feature(feature: Features) const 🔗
已弃用: 从 i3D 3.0 开始就没有使用过这个方法了。
此方法什么也不做,总是返回false。
bool has_os_feature(feature: String) const 🔗
如果操作系统支持某个feature,则返回true。特性可能是s3tc、etc和etc2。
void instance_attach_object_instance_id(instance: RID, id: int) 🔗
将唯一的对象ID附加到实例。对象ID必须附加到实例才能使用instances_cull_aabb()、instances_cull_convex()和instances_cull_ray()进行正确的剔除。
void instance_attach_skeleton(instance: RID, skeleton: RID) 🔗
将骨架附加到实例。从实例中删除前一个骨架。
创建一个可视化实例并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有instance_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
实例是在场景中放置3D对象的一种方式。粒子、网格、反射探针和贴花等对象需要与实例相关联,才能使用instance_set_base()在场景中可见。
注意:等效节点为VisualRender。
RID instance_create2(base: RID, scenario: RID) 🔗
创建一个可视化实例,将其添加到RenderingServer,并设置基础和场景。可以使用返回的RID访问它。此RID将用于所有instance_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。这是使用instance_create()和手动设置基础和场景的简写。
Variant instance_geometry_get_shader_parameter(instance: RID, parameter: StringName) const 🔗
从指定的3D几何实例返回每个实例着色器统一的值。相当于GeometryRender.get_instance_shader_parameter()。
注意:每实例着色器参数名称区分大小写。
Variant instance_geometry_get_shader_parameter_default_value(instance: RID, parameter: StringName) const 🔗
从指定的3D几何实例返回每个实例着色器统一的默认值。相当于GeometryRender.get_instance_shader_parameter()。
Array[Dictionary] instance_geometry_get_shader_parameter_list(instance: RID) const 🔗
从指定的3D几何实例返回每个实例着色器统一名称的每个实例着色器统一名称的字典。返回的字典为Property tyInfo格式,键name,class_name,type,hint,hint_string和用法。相当于GeometryRender.get_instance_shader_parameter()。
void instance_geometry_set_cast_shadows_setting(instance: RID, shadow_casting_setting: ShadowCastingSetting) 🔗
将阴影投射设置设置为ShadowCastingSetting之一。相当于GeometryRender.cast_shadow。
void instance_geometry_set_flag(instance: RID, flag: InstanceFlags, enabled: bool) 🔗
设置给定InstanceFlags的标志。有关更多详细信息,请参阅InstanceFlags。
void instance_geometry_set_lightmap(instance: RID, lightmap: RID, lightmap_uv_scale: Rect2, lightmap_slice: int) 🔗
设置光照贴图GI实例以用于指定的3D几何实例。还必须指定指定实例的光照贴图UV比例(相当于GeometryRender.gi_lightmap_scale)和光照贴图图集切片。
void instance_geometry_set_lod_bias(instance: RID, lod_bias: float) 🔗
设置渲染指定3D几何实例时使用的详细级别偏差。较高的值会从更远的地方获得较高的详细信息。相当于GeometryRender.lod_bias。
void instance_geometry_set_material_overlay(instance: RID, material: RID) 🔗
为与此实例关联的网格的活动材质顶部的所有表面设置一个材质。相当于GeometryRender.material_overlay。
void instance_geometry_set_material_override(instance: RID, material: RID) 🔗
设置一个材质,该材质将覆盖与此实例关联的网格上所有表面的材质。相当于GeometryRender.material_override。
void instance_geometry_set_shader_parameter(instance: RID, parameter: StringName, value: Variant) 🔗
在指定的3D几何实例上设置每个实例的着色器统一。相当于GeometryRender.set_instance_shader_parameter()。
void instance_geometry_set_transparency(instance: RID, transparency: float) 🔗
设置给定几何实例的透明度。相当于GeometryRender.transparency。
0.0的透明度是完全不透明的,而1.0是完全透明的。大于0.0(独占)的值将强制几何的材质通过透明管道,该管道渲染速度较慢,并且由于不正确的透明度排序可能会出现渲染问题。然而,与使用透明材质不同,将transparency设置为大于0.0(独占)的值将不禁用阴影渲染。
在空间着色器中,1.0-透明度被设置为内置ALPHA的默认值。
注意:transparency被夹在0.0和1.0之间,因此此属性不能用于使透明材质比原来更不透明。
void instance_geometry_set_visibility_range(instance: RID, min: float, max: float, min_margin: float, max_margin: float, fade_mode: VisibilityRangeFadeMode) 🔗
设置给定几何实例的可见性范围值。等效于GeometryRender.visibility_range_begin和相关属性。
void instance_reset_physics_interpolation(instance: RID) 🔗
防止当前物理刻度的物理插值。
这在将实例移动到新位置时很有用,可以提供即时更改而不是从前一个位置的插值。
void instance_set_base(instance: RID, base: RID) 🔗
设置实例的基础。基础可以是在RenderingServer中创建的任何可以显示的3D对象。例如,任何光源类型、网格、Multimesh、粒子系统、反射探针、贴花、光照贴图、体素GI和可见性通知器都是可以设置为实例基础以便在场景中显示的类型。
void instance_set_blend_shape_weight(instance: RID, shape: int, weight: float) 🔗
设置与此实例关联的给定混合形状的权重。
void instance_set_custom_aabb(instance: RID, aabb: AABB) 🔗
设置从视图截头体中剔除对象时使用的自定义AABB。相当于设置GeometryRender.custom_aabb。
void instance_set_extra_visibility_margin(instance: RID, margin: float) 🔗
设置边距以在从视图截头体中剔除对象时增加AABB的大小。这允许您避免剔除落在视图截头体之外的对象。相当于GeometryRender.extra_cull_margin。
void instance_set_ignore_culling(instance: RID, enabled: bool) 🔗
如果true,则忽略指定3D几何实例上的截头体和遮挡剔除。这与GeometryRender.ignore_occlusion_culling不同,后者仅忽略遮挡剔除并保持截头体剔除不变。
void instance_set_interpolated(instance: RID, interpolated: bool) 🔗
打开和关闭实例的物理插值。
void instance_set_layer_mask(instance: RID, mask: int) 🔗
设置此实例将被绘制到的渲染层。相当于VisualRender.layers。
void instance_set_pivot_data(instance: RID, sorting_offset: float, use_aabb_center: bool) 🔗
设置排序偏移量并在使用边界框或实例原点进行深度排序之间切换。
void instance_set_scenario(instance: RID, scenario: RID) 🔗
设置实例所在的场景。场景是对象将显示在其中的3D世界。
void instance_set_surface_override_material(instance: RID, surface: int, material: RID) 🔗
设置特定表面的覆盖材质。相当于MeshRender.set_surface_override_material()。
void instance_set_transform(instance: RID, transform: Transform3D) 🔗
设置实例的世界空间变换。相当于Item3D.global_transform。
void instance_set_visibility_parent(instance: RID, parent: RID) 🔗
设置给定实例的可见性父级。相当于Item3D.visibility_parent。
void instance_set_visible(instance: RID, visible: bool) 🔗
设置是否绘制实例。相当于Item3D.visible。
PackedInt64Array instances_cull_aabb(aabb: AABB, scenario: RID = RID()) const 🔗
返回与提供的AABB相交的对象ID数组。仅考虑从VisualRender继承的3D节点,例如MeshRender或DirectionalLight。使用@GlobalScope.instance_from_id()获取实际节点。必须提供场景RID,该场景在您要查询的World3D中可用。这会强制对所有排队更新的资源进行更新。
警告:此功能主要用于编辑器使用。对于应用中的用例,更喜欢物理碰撞。
PackedInt64Array instances_cull_convex(convex: Array[Plane], scenario: RID = RID()) const 🔗
返回与提供的凸形相交的对象ID数组。仅考虑从VisualRender继承的3D节点,例如MeshRender或DirectionalLight。使用@GlobalScope.instance_from_id()获取实际节点。必须提供场景RID,该场景在您要查询的World3D中可用。这会强制对所有排队更新的资源进行更新。
警告:此功能主要用于编辑器使用。对于应用中的用例,更喜欢物理碰撞。
PackedInt64Array instances_cull_ray(from: Vector3, to: Vector3, scenario: RID = RID()) const 🔗
返回与提供的3D光线相交的对象ID数组。仅考虑从VisualRender继承的3D节点,例如MeshRender或DirectionalLight。使用@GlobalScope.instance_from_id()获取实际节点。必须提供场景RID,该场景在您要查询的World3D中可用。这会强制对所有排队更新的资源进行更新。
警告:此功能主要用于编辑器使用。对于应用中的用例,更喜欢物理碰撞。
如果我们的代码当前正在渲染线程上执行,则返回true。
void light_directional_set_blend_splits(light: RID, enable: bool) 🔗
如果true,则此方向光将在阴影贴图分割之间混合,从而使它们之间的过渡更加平滑。相当于DirectionalLight.directional_shadow_blend_splits。
void light_directional_set_shadow_mode(light: RID, mode: LightDirectionalShadowMode) 🔗
设置此方向光的阴影模式。相当于DirectionalLight.directional_shadow_mode。有关选项,请参阅LightDirectionalShadowMode。
void light_directional_set_sky_mode(light: RID, mode: LightDirectionalSkyMode) 🔗
如果true,则此灯不会用于除天空着色器之外的任何内容。将此灯用于影响您的天空着色器的光源,您可能希望隐藏这些光源以避免影响场景的其余部分。例如,当天空着色器中的太阳低于地平线时,您可能希望启用此功能。
void light_omni_set_shadow_mode(light: RID, mode: LightOmniShadowMode) 🔗
设置阴影贴图是使用双抛物面还是立方体贴图。双抛物面更快,但可能会受到伪影的影响。相当于PointLight.omni_shadow_mode。
void light_projectors_set_filter(filter: LightProjectorFilter) 🔗
设置渲染光源投影仪时使用的纹理滤镜模式。此参数是全局的,不能按每个光源设置。
void light_set_bake_mode(light: RID, bake_mode: LightBakeMode) 🔗
设置用于指定3D光源的烘焙模式。相当于Light.light_bake_mode。
void light_set_color(light: RID, color: Color) 🔗
设置光源的颜色。相当于Light.light_color。
void light_set_cull_mask(light: RID, mask: int) 🔗
设置此3D光源的剔除蒙版。光源仅影响选定图层中的对象。相当于Light.light_cull_mask。
void light_set_distance_fade(decal: RID, enabled: bool, begin: float, shadow: float, length: float) 🔗
设置此3D光源的距离淡入淡出。这充当详细级别(LOD)的一种形式,可用于提高性能。相当于Light.distance_fade_enabled、Light.distance_fade_begin、Light.distance_fade_shadow和Light.distance_fade_length。
void light_set_max_sdfgi_cascade(light: RID, cascade: int) 🔗
设置渲染3D光的间接照明的最大SDFGI级联。较高的值允许在离摄像机更远的SDFGI中渲染光。
void light_set_negative(light: RID, enable: bool) 🔗
如果true,则3D光将减去光而不是添加光。相当于Light.light_negative。
void light_set_param(light: RID, param: LightParam, value: float) 🔗
设置指定的3D光源参数。有关选项,请参阅LightParam。相当于Light.set_param()。
void light_set_projector(light: RID, texture: RID) 🔗
设置用于指定3D光的投影仪纹理。相当于Light.light_projector。
void light_set_reverse_cull_face_mode(light: RID, enabled: bool) 🔗
如果true,则反转网格的背面剔除。当您有一个后面有灯的平面网格时,这可能很有用。如果您需要在网格的两侧投射阴影,请将网格设置为使用instance_geometry_set_cast_shadows_setting()的双面阴影。相当于Light.shadow_reverse_cull_face。
void light_set_shadow(light: RID, enabled: bool) 🔗
如果true,光线会投射阴影。相当于Light.shadow_enabled。
void light_set_shadow_caster_mask(light: RID, mask: int) 🔗
设置此3D光源的阴影投射蒙版。阴影只能使用选定图层中的对象投射。相当于Light.shadow_caster_mask。
创建一个新的Lightmap全局照明实例并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有lightmap_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注意:等效节点为Lightmass。
PackedInt32Array lightmap_get_probe_capture_bsp_tree(lightmap: RID) const 🔗
PackedVector3Array lightmap_get_probe_capture_points(lightmap: RID) const 🔗
PackedColorArray lightmap_get_probe_capture_sh(lightmap: RID) const 🔗
PackedInt32Array lightmap_get_probe_capture_tetrahedra(lightmap: RID) const 🔗
void lightmap_set_baked_exposure_normalization(lightmap: RID, baked_exposure: float) 🔗
用于通知渲染器在烘焙光照贴图时使用了什么曝光归一化值。该值将在运行时使用和调制,以确保光照贴图保持一致的曝光水平,即使在运行时更改了场景范围的曝光归一化。有关详细信息,请参阅camera_attributes_set_exposure()。
void lightmap_set_probe_bounds(lightmap: RID, bounds: AABB) 🔗
void lightmap_set_probe_capture_data(lightmap: RID, points: PackedVector3Array, point_sh: PackedColorArray, tetrahedra: PackedInt32Array, bsp_tree: PackedInt32Array) 🔗
void lightmap_set_probe_capture_update_speed(speed: float) 🔗
void lightmap_set_probe_interior(lightmap: RID, interior: bool) 🔗
void lightmap_set_textures(lightmap: RID, light: RID, uses_sh: bool) 🔗
将给定lightmapGI实例上的纹理设置为lightRID指向的纹理数组。如果将Lightmap纹理烘焙为Lightmass.directional设置为true,则uses_sh也必须是true。
void lightmaps_set_bicubic_filter(enable: bool) 🔗
切换光照贴图采样时是否应使用双三次滤镜。这会以性能成本平滑它们的外观。
RID make_sphere_mesh(latitudes: int, longitudes: int, radius: float) 🔗
返回具有给定数量的水平细分、垂直细分和半径的球体网格。另请参见get_test_cube()。
创建一个空材质并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有material_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注:等效资源为Material。
Variant material_get_param(material: RID, parameter: StringName) const 🔗
返回某个材质的参数值。
void material_set_next_pass(material: RID, next_material: RID) 🔗
设置对象的下一个材质。
void material_set_param(material: RID, parameter: StringName, value: Variant) 🔗
设置材质的参数。
void material_set_render_priority(material: RID, priority: int) 🔗
设置材质的渲染优先级。
void material_set_shader(shader_material: RID, shader: RID) 🔗
设置着色器材质的着色器。
void mesh_add_surface(mesh: RID, surface: Dictionary) 🔗
void mesh_add_surface_from_arrays(mesh: RID, primitive: PrimitiveType, arrays: Array, blend_shapes: Array = [], lods: Dictionary = {}, compress_format: BitField[ArrayFormat] = 0) 🔗
从网格中删除所有表面。
创建一个新网格并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有mesh_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
要放置在场景中,请使用返回的RID使用instance_set_base()将此网格附加到实例。
注意:等效资源为Mesh。
RID mesh_create_from_surfaces(surfaces: Array[Dictionary], blend_shape_count: int = 0) 🔗
int mesh_get_blend_shape_count(mesh: RID) const 🔗
返回网格的混合形状计数。
BlendShapeMode mesh_get_blend_shape_mode(mesh: RID) const 🔗
返回网格的混合形状模式。
AABB mesh_get_custom_aabb(mesh: RID) const 🔗
返回网格的自定义aabb。
Dictionary mesh_get_surface(mesh: RID, surface: int) 🔗
int mesh_get_surface_count(mesh: RID) const 🔗
返回网格的表面数。
void mesh_set_blend_shape_mode(mesh: RID, mode: BlendShapeMode) 🔗
设置网格的混合形状模式。
void mesh_set_custom_aabb(mesh: RID, aabb: AABB) 🔗
设置网格的自定义aabb。
void mesh_set_shadow_mesh(mesh: RID, shadow_mesh: RID) 🔗
Array mesh_surface_get_arrays(mesh: RID, surface: int) const 🔗
返回网格表面的缓冲区数组。
Array[Array] mesh_surface_get_blend_shape_arrays(mesh: RID, surface: int) const 🔗
返回混合形状的网格表面数组。
int mesh_surface_get_format_attribute_stride(format: BitField[ArrayFormat], vertex_count: int) const 🔗
返回具有给定format的网格的属性缓冲区的步幅。
int mesh_surface_get_format_normal_tangent_stride(format: BitField[ArrayFormat], vertex_count: int) const 🔗
返回具有给定format的网格的组合法线和切线的步幅。请注意,虽然法线和切线与顶点一起位于顶点缓冲区中,但它们只是相互交错,因此步幅与顶点位置不同。
int mesh_surface_get_format_offset(format: BitField[ArrayFormat], vertex_count: int, array_index: int) const 🔗
返回给定属性在其相应缓冲区开头的array_index偏移量。
int mesh_surface_get_format_skin_stride(format: BitField[ArrayFormat], vertex_count: int) const 🔗
返回具有给定format的网格的皮肤缓冲区的步幅。
int mesh_surface_get_format_vertex_stride(format: BitField[ArrayFormat], vertex_count: int) const 🔗
返回具有给定format的网格的顶点位置的步幅。请注意,顶点位置是连续存储的,并且不会与顶点缓冲区中的其他属性(法线和切线)交错。
RID mesh_surface_get_material(mesh: RID, surface: int) const 🔗
返回网格表面的材质。
void mesh_surface_remove(mesh: RID, surface: int) 🔗
从网格中移除给定索引处的曲面,将索引较高的曲面向下移动1。
void mesh_surface_set_material(mesh: RID, surface: int, material: RID) 🔗
设置网格表面的材质。
void mesh_surface_update_attribute_region(mesh: RID, surface: int, offset: int, data: PackedByteArray) 🔗
void mesh_surface_update_skin_region(mesh: RID, surface: int, offset: int, data: PackedByteArray) 🔗
void mesh_surface_update_vertex_region(mesh: RID, surface: int, offset: int, data: PackedByteArray) 🔗
void multimesh_allocate_data(multimesh: RID, instances: int, transform_format: MultimeshTransformFormat, color_format: bool = false, custom_data_format: bool = false, use_indirect: bool = false) 🔗
在RenderingServer上创建一个新的multimesh并返回一个RID句柄。此RID将用于所有multimesh_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
要放置在场景中,请使用返回的RID使用instance_set_base()将此multimesh附加到实例。
注意:等效资源为MultiMesh。
AABB multimesh_get_aabb(multimesh: RID) const 🔗
计算并返回将所有实例包含在multitimesh中的轴对齐边界框。
PackedFloat32Array multimesh_get_buffer(multimesh: RID) const 🔗
返回MultiMesh数据(例如实例转换、颜色等)。有关返回数据的详细信息,请参见multimesh_set_buffer()。
注意:如果缓冲区在引擎的内部缓存中,则必须从GPU内存中获取并可能解压缩。这意味着multimesh_get_buffer()可能是一个缓慢的操作,应尽可能避免。
RID multimesh_get_buffer_rd_rid(multimesh: RID) const 🔗
返回MultiMesh的RenderingDeviceRID句柄,可用作渲染设备上的任何其他缓冲区。
RID multimesh_get_command_buffer_rd_rid(multimesh: RID) const 🔗
返回 MultiMesh 命令缓冲区的 RenderingDevice RID 句柄。仅当通过 multimesh_allocate_data() 分配数据时将 use_indirect 设置为 true 时,此 RID 才有效。它可用于通过缓冲区直接修改实例计数。
数据结构取决于网格包含的曲面数量以及它是否为索引网格,缓冲区中有 5 个整数,如果网格不是索引网格,则最后一个未使用。
缓冲区中的每个值对应以下选项:
Indexed:
0 - indexCount;
1 - instanceCount;
2 - firstIndex;
3 - vertexOffset;
4 - firstInstance;
Non Indexed:
0 - vertexCount;
1 - instanceCount;
2 - firstVertex;
3 - firstInstance;
4 - unused;
AABB multimesh_get_custom_aabb(multimesh: RID) const 🔗
返回为此MultiMesh资源定义的自定义AABB。
int multimesh_get_instance_count(multimesh: RID) const 🔗
返回为此multitimesh分配的实例数。
RID multimesh_get_mesh(multimesh: RID) const 🔗
返回将用于绘制此multitimesh的网格的RID。
int multimesh_get_visible_instances(multimesh: RID) const 🔗
返回此multitimesh的可见实例数。
Color multimesh_instance_get_color(multimesh: RID, index: int) const 🔗
返回将调制指定实例的颜色。
Color multimesh_instance_get_custom_data(multimesh: RID, index: int) const 🔗
返回与指定实例关联的自定义数据。
Transform3D multimesh_instance_get_transform(multimesh: RID, index: int) const 🔗
返回指定实例的Transform3D。
Transform2D multimesh_instance_get_transform_2d(multimesh: RID, index: int) const 🔗
返回指定实例的Transform2D。当Multimesh设置为使用2D转换时使用。
void multimesh_instance_reset_physics_interpolation(multimesh: RID, index: int) 🔗
防止在当前物理刻度期间对指定实例进行物理插值。
这在将实例移动到新位置时很有用,可以提供即时更改而不是从前一个位置的插值。
void multimesh_instance_set_color(multimesh: RID, index: int, color: Color) 🔗
设置此实例将被调制的颜色。相当于MultiMesh.set_instance_color()。
void multimesh_instance_set_custom_data(multimesh: RID, index: int, custom_data: Color) 🔗
设置此实例的自定义数据。自定义数据作为Color传递,但在着色器中被解释为vec4。相当于MultiMesh.set_instance_custom_data()。
void multimesh_instance_set_transform(multimesh: RID, index: int, transform: Transform3D) 🔗
为此实例设置Transform3D。相当于MultiMesh.set_instance_transform()。
void multimesh_instance_set_transform_2d(multimesh: RID, index: int, transform: Transform2D) 🔗
为此实例设置Transform2D。用于在2D中使用multitimesh时。等效于MultiMesh.set_instance_transform_2d()。
void multimesh_set_buffer(multimesh: RID, buffer: PackedFloat32Array) 🔗
一次性设置用于绘制 multimesh 的全部数据为 buffer(例如实例变换和颜色)。buffer 的大小必须与实例数量乘以每个实例的数据大小(这取决于启用的多网格字段)相匹配。否则,将打印错误消息并且不渲染任何内容。另请参阅 multimesh_get_buffer()。
每个实例的数据大小和预期的数据顺序为:
2D:
- Position: 8 floats (8 floats for Transform2D)
- Position + Vertex color: 12 floats (8 floats for Transform2D, 4 floats for Color)
- Position + Custom data: 12 floats (8 floats for Transform2D, 4 floats of custom data)
- Position + Vertex color + Custom data: 16 floats (8 floats for Transform2D, 4 floats for Color, 4 floats of custom data)
3D:
- Position: 12 floats (12 floats for Transform3D)
- Position + Vertex color: 16 floats (12 floats for Transform3D, 4 floats for Color)
- Position + Custom data: 16 floats (12 floats for Transform3D, 4 floats of custom data)
- Position + Vertex color + Custom data: 20 floats (12 floats for Transform3D, 4 floats for Color, 4 floats of custom data)
实例变换采用行主序。具体来说:
对于Transform2D,浮点数顺序为:
(x.x, y.x, 填充浮点数, origin.x, x.y, y.y, 填充浮点数, origin.y)。对于Transform3D,浮点数顺序为:
(basis.x.x, basis.y.x, basis.z.x, origin.x, basis.x.y, basis.y.y, basis.z.y, origin.y, basis.x.z, basis.y.z, basis.z.z, origin.z)
void multimesh_set_buffer_interpolated(multimesh: RID, buffer: PackedFloat32Array, buffer_previous: PackedFloat32Array) 🔗
用于物理插值的multimesh_set_buffer()的替代版本。
获取当前数据数组和上一个物理刻度的数据数组。
void multimesh_set_custom_aabb(multimesh: RID, aabb: AABB) 🔗
为此MultiMesh资源设置自定义AABB。
void multimesh_set_mesh(multimesh: RID, mesh: RID) 🔗
设置要由multitimesh绘制的网格。相当于MultiMesh.mesh。
void multimesh_set_physics_interpolated(multimesh: RID, interpolated: bool) 🔗
打开和关闭此MultiMesh资源的物理插值。
void multimesh_set_physics_interpolation_quality(multimesh: RID, quality: MultimeshPhysicsInterpolationQuality) 🔗
设置MultiMesh的物理插值质量。
MULTIMESH_INTERP_QUALITY_FAST给出快速但低质量的插值,MULTIMESH_INTERP_QUALITY_HIGH给出较慢但高质量的插值。
void multimesh_set_visible_instances(multimesh: RID, visible: int) 🔗
设置给定时间可见的实例数。如果为-1,则绘制所有已分配的实例。相当于MultiMesh.visible_instance_count。
创建一个封堵器实例并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有occluder_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注意:等效资源是Occluder3D(不要与OcclusionRender节点混淆)。
void occluder_set_mesh(occluder: RID, vertices: PackedVector3Array, indices: PackedInt32Array) 🔗
设置给定遮挡器RID的网格数据,它控制将执行的遮挡剔除的形状。
创建一个新的全向灯并将其添加到RenderingServer。可以使用返回的RID访问它。此RID可用于大多数light_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
要放置在场景中,请使用返回的RID使用instance_set_base()将此全能灯附加到实例。
注意:等效节点为PointLight。
RID particles_collision_create() 🔗
创建一个新的3D GPU粒子碰撞或吸引子并将其添加到RenderingServer。可以使用返回的RID访问它。此RID可用于大多数particles_collision_*RenderingServer函数。
注:等价节点为ParticleColliderGPUBase和ParticleAspiratorGPUBase。
void particles_collision_height_field_update(particles_collision: RID) 🔗
请求更新3D GPU粒子碰撞高度字段。这可能会由3D GPU粒子碰撞高度字段自动调用,具体取决于其ParticleColliderHeightFieldGPU.update_mode。
void particles_collision_set_attractor_attenuation(particles_collision: RID, curve: float) 🔗
设置由particles_collisionRID指定的3D GPU粒子吸引子的衰减curve。仅用于吸引子,而不是碰撞器。相当于ParticleAspiratorGPUBase.attenuation。
void particles_collision_set_attractor_directionality(particles_collision: RID, amount: float) 🔗
设置由particles_collisionRID指定的3D GPU粒子吸引子的方向性amount。仅用于吸引子,而不是碰撞器。相当于ParticleAspiratorGPUBase.directionality。
void particles_collision_set_attractor_strength(particles_collision: RID, strength: float) 🔗
设置由particles_collisionRID指定的3D GPU粒子吸引子的strength。仅用于吸引子,而不是碰撞器。相当于ParticleAspiratorGPUBase.strength。
void particles_collision_set_box_extents(particles_collision: RID, extents: Vector3) 🔗
通过particles_collisionRID设置3D图形处理器粒子碰撞的extents。相当于ParticleColliderBoxGPU.size、ParticleColliderSDFGPU.size、ParticleColliderHeightFieldGPU.size、ParticleAspiratorBoxGPU.size或ParticleAspiratorVectorFieldGPU.size,具体取决于particles_collision类型。
void particles_collision_set_collision_type(particles_collision: RID, type: ParticlesCollisionType) 🔗
设置由particles_collisionRID指定的3D GPU粒子碰撞或吸引子的碰撞或吸引子形状type。
void particles_collision_set_cull_mask(particles_collision: RID, mask: int) 🔗
为particles_collisionRID指定的3D GPU粒子碰撞或吸引子设置cullmask。相当于ParticleColliderGPUBase.cull_mask或ParticleAspiratorGPUBase.cull_mask,具体取决于particles_collision类型。
void particles_collision_set_field_texture(particles_collision: RID, texture: RID) 🔗
为particles_collisionRID指定的3D GPU粒子碰撞设置符号距离字段texture。根据particles_collision类型,相当于ParticleColliderSDFGPU.texture或ParticleAspiratorVectorFieldGPU.texture。
void particles_collision_set_height_field_mask(particles_collision: RID, mask: int) 🔗
为particles_collisionRID指定的3D GPU粒子高度场碰撞设置高度场mask。相当于ParticleColliderHeightFieldGPU.heightfield_mask。
void particles_collision_set_height_field_resolution(particles_collision: RID, resolution: ParticlesCollisionHeightfieldResolution) 🔗
设置由particles_collisionRID指定的3D GPU粒子高度场碰撞的高度图resolution。相当于ParticleColliderHeightFieldGPU.resolution。
void particles_collision_set_sphere_radius(particles_collision: RID, radius: float) 🔗
设置particles_collisionRID指定的3D GPU粒子球体碰撞或吸引子的radius。相当于ParticleColliderSphereGPU.radius或ParticleAspiratorSphereGPU.radius取决于particles_collision类型。
创建基于GPU的粒子系统并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有particles_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
要放置在场景中,请使用返回的RID使用instance_set_base()将这些粒子附加到实例。
注意:等效节点为GPUParticles2D和ParticlesGPU。
注意:所有particles_*方法仅适用于基于GPU的粒子,不适用于基于CPU的粒子。
void particles_emit(particles: RID, transform: Transform3D, velocity: Vector3, color: Color, custom: Color, emit_flags: int) 🔗
手动从particles实例发出粒子。
AABB particles_get_current_aabb(particles: RID) 🔗
计算并返回包含所有粒子的轴对齐边界框。等效于ParticlesGPU.capture_aabb()。
bool particles_get_emitting(particles: RID) 🔗
如果粒子当前设置为发射,则返回true。
bool particles_is_inactive(particles: RID) 🔗
如果粒子不发射并且粒子设置为非活动,则返回true。
void particles_request_process(particles: RID) 🔗
将粒子系统添加到需要更新的粒子系统列表中。更新将在下一帧或下一次调用instances_cull_aabb()、instances_cull_convex()或instances_cull_ray()时进行。
void particles_request_process_time(particles: RID, time: float) 🔗
请求粒子在单个帧内处理额外的处理时间。
void particles_restart(particles: RID) 🔗
在下一次更新时重置粒子。相当于ParticlesGPU.restart()。
void particles_set_amount(particles: RID, amount: int) 🔗
设置要绘制的粒子的数量并为它们分配内存。相当于ParticlesGPU.amount。
void particles_set_amount_ratio(particles: RID, ratio: float) 🔗
设置要发射的粒子的数量比例。等效于ParticlesGPU.amount_ratio。
void particles_set_collision_base_size(particles: RID, size: float) 🔗
void particles_set_custom_aabb(particles: RID, aabb: AABB) 🔗
为粒子系统设置自定义轴对齐的边界框。等效于ParticlesGPU.visibility_aabb。
void particles_set_draw_order(particles: RID, order: ParticlesDrawOrder) 🔗
将粒子的绘制顺序设置为ParticlesDrawOrder中的命名枚举之一。有关选项,请参阅ParticlesDrawOrder。相当于ParticlesGPU.draw_order。
void particles_set_draw_pass_mesh(particles: RID, pass: int, mesh: RID) 🔗
设置用于指定绘制通道的网格。等效于ParticlesGPU.draw_pass_1、ParticlesGPU.draw_pass_2、ParticlesGPU.draw_pass_3和ParticlesGPU.draw_pass_4。
void particles_set_draw_passes(particles: RID, count: int) 🔗
设置要使用的绘制通道数。相当于ParticlesGPU.draw_passes。
void particles_set_emission_transform(particles: RID, transform: Transform3D) 🔗
设置粒子首次发射时将使用的Transform3D。
void particles_set_emitter_velocity(particles: RID, velocity: Vector3) 🔗
设置粒子节点的速度,该节点将由ParticleProcessMaterial.inherit_velocity_ratio使用。
void particles_set_emitting(particles: RID, emitting: bool) 🔗
如果true,粒子会随着时间的推移而发射。设置为false不会重置粒子,只会停止它们的发射。相当于ParticlesGPU.emitting。
void particles_set_explosiveness_ratio(particles: RID, ratio: float) 🔗
设置爆发性比率。相当于ParticlesGPU.explosiveness。
void particles_set_fixed_fps(particles: RID, fps: int) 🔗
设置粒子系统渲染将固定的帧率。相当于ParticlesGPU.fixed_fps。
void particles_set_fractional_delta(particles: RID, enable: bool) 🔗
如果true,则使用小数增量来平滑粒子的运动。相当于ParticlesGPU.fract_delta。
void particles_set_interp_to_end(particles: RID, factor: float) 🔗
设置通知ParticleProcessMaterial将所有粒子加速到生命周期结束的值。
void particles_set_interpolate(particles: RID, enable: bool) 🔗
void particles_set_lifetime(particles: RID, lifetime: float) 🔗
设置系统中每个粒子的生命周期。相当于ParticlesGPU.lifetime。
void particles_set_mode(particles: RID, mode: ParticlesMode) 🔗
设置particlesRID指定的GPU粒子是否应根据mode以2D或3D呈现。
void particles_set_one_shot(particles: RID, one_shot: bool) 🔗
如果true,粒子将发射一次,然后停止。相当于ParticlesGPU.one_shot。
void particles_set_pre_process_time(particles: RID, time: float) 🔗
设置粒子动画的预处理时间。这使您可以将动画的启动延迟到粒子开始发射之后。相当于ParticlesGPU.preprocess。
void particles_set_process_material(particles: RID, material: RID) 🔗
设置用于处理粒子的材质。
注:这不是用于绘制材质的材质。相当于ParticlesGPU.process_material。
void particles_set_randomness_ratio(particles: RID, ratio: float) 🔗
设置发射随机性比。这将随机化粒子在其相位内的发射。相当于ParticlesGPU.randomness。
void particles_set_speed_scale(particles: RID, scale: float) 🔗
设置粒子系统的速度刻度。等效于ParticlesGPU.speed_scale。
void particles_set_subemitter(particles: RID, subemitter_particles: RID) 🔗
void particles_set_trail_bind_poses(particles: RID, bind_poses: Array[Transform3D]) 🔗
void particles_set_trails(particles: RID, enable: bool, length_sec: float) 🔗
如果enable为true,则在几秒钟内启用具有指定length_sec的particles的轨迹。相当于ParticlesGPU.trail_enabled和ParticlesGPU.trail_lifetime。
void particles_set_transform_align(particles: RID, align: ParticlesTransformAlign) 🔗
void particles_set_use_local_coordinates(particles: RID, enable: bool) 🔗
如果true,粒子使用局部坐标。如果false,它们使用全局坐标。相当于ParticlesGPU.local_coords。
void positional_soft_shadow_filter_set_quality(quality: ShadowQuality) 🔗
设置3D中全光和光斑阴影的滤镜质量。另请参阅ProjectSettings.rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality。此参数是全局的,不能在每个视口的基础上设置。
RID reflection_probe_create() 🔗
创建反射探测并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有reflection_probe_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
要放置在场景中,请使用返回的RID使用instance_set_base()将此反射探测附加到实例。
注意:等效节点为ReflectionProbe。
void reflection_probe_set_ambient_color(probe: RID, color: Color) 🔗
设置反射探头的自定义环境光颜色。等效于ReflectionProbe.ambient_color。
void reflection_probe_set_ambient_energy(probe: RID, energy: float) 🔗
设置反射探头的自定义环境光能。等效于ReflectionProbe.ambient_color_energy。
void reflection_probe_set_ambient_mode(probe: RID, mode: ReflectionProbeAmbientMode) 🔗
设置反射探头的环境光模式。等效于ReflectionProbe.ambient_mode。
void reflection_probe_set_as_interior(probe: RID, enable: bool) 🔗
如果true,反射将忽略天空贡献。相当于ReflectionProbe.interior。
void reflection_probe_set_blend_distance(probe: RID, blend_distance: float) 🔗
设置探测器融入场景的距离(以米为单位)。
void reflection_probe_set_cull_mask(probe: RID, layers: int) 🔗
设置此反射探测的渲染剔除掩码。只有具有匹配层的实例才会被此探测反射。等效于ReflectionProbe.cull_mask。
void reflection_probe_set_enable_box_projection(probe: RID, enable: bool) 🔗
如果true,则使用框投影。这可以使反射在某些情况下看起来更正确。等效于ReflectionProbe.box_projection。
void reflection_probe_set_enable_shadows(probe: RID, enable: bool) 🔗
如果true,则计算反射探头中的阴影。这使得反射计算速度慢得多。相当于ReflectionProbe.enable_shadows。
void reflection_probe_set_intensity(probe: RID, intensity: float) 🔗
设置反射探头的强度。强度调节反射的强度。等效于ReflectionProbe.intensity。
void reflection_probe_set_max_distance(probe: RID, distance: float) 🔗
设置对象在被剔除之前离探头的最大距离。等效于ReflectionProbe.max_distance。
void reflection_probe_set_mesh_lod_threshold(probe: RID, pixels: float) 🔗
设置要在反射探测渲染中使用的网格详细级别。较高的值将使用生成LOD变化的网格的较不详细版本,这可以提高性能。相当于ReflectionProbe.mesh_lod_threshold。
void reflection_probe_set_origin_offset(probe: RID, offset: Vector3) 🔗
设置此反射探头处于盒子项目模式时使用的原点偏移量。相当于ReflectionProbe.origin_offset。
void reflection_probe_set_reflection_mask(probe: RID, layers: int) 🔗
设置此反射探测的渲染反射掩码。只有具有匹配层的实例才会应用此探测的反射。等效于ReflectionProbe.reflection_mask。
void reflection_probe_set_resolution(probe: RID, resolution: int) 🔗
设置渲染指定反射探测时使用的分辨率。为每个立方体贴图面指定resolution:例如,指定512将分配6个面,每个面为512×512(加上粗糙度级别的mipmap)。
void reflection_probe_set_size(probe: RID, size: Vector3) 🔗
设置反射探头将捕获的区域的大小。等效于ReflectionProbe.size。
void reflection_probe_set_update_mode(probe: RID, mode: ReflectionProbeUpdateMode) 🔗
设置反射探测更新的频率。可以是一次或每帧。有关选项,请参阅ReflectionProbeUpdateMode。
void request_frame_drawn_callback(callable: Callable) 🔗
在绘制帧后安排对给定可调用对象的回调。
创建一个场景并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有scenario_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
场景是所有视觉实例都存在的3D世界。
void scenario_set_camera_attributes(scenario: RID, effects: RID) 🔗
设置将与此方案一起使用的摄像机属性(effects)。另请参阅CameraAttributes。
void scenario_set_compositor(scenario: RID, compositor: RID) 🔗
设置将与此方案一起使用的合成器(compositor)。另请参阅Compositor。
void scenario_set_environment(scenario: RID, environment: RID) 🔗
设置将与此方案一起使用的环境。另请参阅Environment。
void scenario_set_fallback_environment(scenario: RID, environment: RID) 🔗
设置此方案要使用的后备环境。如果未设置环境,则使用后备环境。在内部,编辑器使用它来提供默认环境。
void screen_space_roughness_limiter_set_active(enable: bool, amount: float, limit: float) 🔗
设置屏幕空间粗糙度限制器参数,例如是否应该启用它及其阈值。相当于ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/enabled、ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/amount和ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/limit。
void set_boot_image(image: Image, color: Color, scale: bool, use_filter: bool = true) 🔗
设置引导映像。颜色定义背景颜色。如果use_filter为true,则将缩放映像以适应屏幕大小。如果use_filter为true,则将使用线性插值缩放映像。如果use_filter为false,则将使用最近邻插值缩放映像。
void set_debug_generate_wireframes(generate: bool) 🔗
如果generate为true,则为使用兼容性渲染器时加载的所有网格生成调试线框。默认情况下,引擎不会在运行时生成调试线框,因为它们会减慢资产加载速度并占用VRAM。
注意:使用兼容性渲染器时,您必须在加载任何网格之前调用此方法,否则将不使用线框。
void set_default_clear_color(color: Color) 🔗
设置未选择特定透明颜色时使用的默认透明颜色。另请参见get_default_clear_color()。
创建一个空着色器并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有shader_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注意:等效资源为Shader。
String shader_get_code(shader: RID) const 🔗
以字符串形式返回着色器的源代码。
RID shader_get_default_texture_parameter(shader: RID, name: StringName, index: int = 0) const 🔗
从按名称搜索的着色器返回默认纹理。
注意:如果使用采样器数组,请使用index访问指定的纹理。
Variant shader_get_parameter_default(shader: RID, name: StringName) const 🔗
返回指定着色器统一的默认值。这通常是着色器源代码中写入的值。
void shader_set_code(shader: RID, code: String) 🔗
设置着色器的源代码(更改后触发重新编译)。
void shader_set_default_texture_parameter(shader: RID, name: StringName, texture: RID, index: int = 0) 🔗
设置着色器的默认纹理。覆盖按名称给出的纹理。
注意:如果使用采样器数组,请使用index访问指定的纹理。
void shader_set_path_hint(shader: RID, path: String) 🔗
设置指定着色器的路径提示。这通常应该匹配Shader资源的Resource.resource_path。
void skeleton_allocate_data(skeleton: RID, bones: int, is_2d_skeleton: bool = false) 🔗
Transform3D skeleton_bone_get_transform(skeleton: RID, bone: int) const 🔗
返回此骨架的特定骨骼的Transform3D集。
Transform2D skeleton_bone_get_transform_2d(skeleton: RID, bone: int) const 🔗
返回此骨架的特定骨骼的Transform2D集。
void skeleton_bone_set_transform(skeleton: RID, bone: int, transform: Transform3D) 🔗
为该骨架的特定骨骼设置Transform3D。
void skeleton_bone_set_transform_2d(skeleton: RID, bone: int, transform: Transform2D) 🔗
为该骨架的特定骨骼设置Transform2D。
创建骨架并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有skeleton_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
int skeleton_get_bone_count(skeleton: RID) const 🔗
返回为此骨架分配的骨骼数量。
void skeleton_set_base_transform_2d(skeleton: RID, base_transform: Transform2D) 🔗
Image sky_bake_panorama(sky: RID, energy: float, bake_irradiance: bool, size: Vector2i) 🔗
生成并返回一个Image,其中包含指定skyRID的辐射贴图。这支持内置天空材质和自定义天空着色器。如果bake_irradiance为true,则保存辐射贴图而不是辐射贴图。辐射贴图用于渲染反射光,而辐照贴图用于渲染环境光。另请参见environment_bake_panorama()。
注意:图像保存在线性颜色空间中,没有执行任何色调映射,这意味着如果直接在图像编辑器中查看,它看起来会太暗。
注意:size应该是2:1长宽比,以使生成的全景具有方形像素。对于辐射贴图,使用大于Sky.radiance_size,因为它不会增加细节。辐照贴图只包含低频数据,因此在保存辐照贴图时,通常没有必要超过128×64像素的尺寸。
创建一个空天空并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有sky_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
void sky_set_material(sky: RID, material: RID) 🔗
设置天空用于渲染背景、环境和反射贴图的材质。
void sky_set_mode(sky: RID, mode: SkyMode) 🔗
设置skyRID指定的sky的进程mode。相当于Sky.process_mode。
void sky_set_radiance_size(sky: RID, radiance_size: int) 🔗
设置由skyRID指定的天空的radiance_size(以像素为单位)。相当于Sky.radiance_size。
创建聚光灯并将其添加到RenderingServer。可以使用返回的RID访问它。此RID可用于大多数light_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
要放置在场景中,请使用返回的RID使用instance_set_base()将此聚光灯附加到实例。
void sub_surface_scattering_set_quality(quality: SubSurfaceScatteringQuality) 🔗
设置在渲染启用了次表面散射的材质时使用的ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_quality。
void sub_surface_scattering_set_scale(scale: float, depth_scale: float) 🔗
设置渲染启用了次表面散射的材质时使用的ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_scale和ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale。
RID texture_2d_create(image: Image) 🔗
创建二维纹理并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有texture_2d_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注意:等效资源为Texture2D。
注意:不要与RenderingDevice.texture_create()混淆,后者创建图形API自己的纹理类型,而不是i3D特定的Texture2D资源。
Image texture_2d_get(texture: RID) const 🔗
从给定的 texture RID 返回一个 Image 实例。
示例: 从 get_test_texture() 获取测试纹理并将其应用于 Sprite2D 节点:
var texture_rid = RenderingServer.get_test_texture()
var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid))
$Sprite2D.texture = texture
Image texture_2d_layer_get(texture: RID, layer: int) const 🔗
从给定的textureRID和layer返回一个Image实例。
RID texture_2d_layered_create(layers: Array[Image], layered_type: TextureLayeredType) 🔗
创建二维分层纹理并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有texture_2d_layered_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注意:等效资源为TextureLayered。
RID texture_2d_layered_placeholder_create(layered_type: TextureLayeredType) 🔗
为二维分层纹理创建占位符并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有texture_2d_layered_*RenderingServer函数,尽管使用时它什么也不做。另请参见texture_2d_placeholder_create()。
注:等效资源为PlaceholderTextureLayered。
RID texture_2d_placeholder_create() 🔗
为二维分层纹理创建占位符并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有texture_2d_layered_*RenderingServer函数,尽管使用时它什么也不做。另请参见texture_2d_layered_placeholder_create()。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注:等效资源为PlaceholderTexture2D。
void texture_2d_update(texture: RID, image: Image, layer: int) 🔗
用image中的数据更新textureRID指定的纹理。还必须指定一个layer,在更新单层纹理(Texture2D)时应该是0。
注意:image必须具有与当前texture数据相同的宽度、高度和格式。否则,将打印错误,并且不会修改原始纹理。如果您需要使用不同的宽度、高度或格式,请使用texture_replace()。
RID texture_3d_create(format: Format, width: int, height: int, depth: int, mipmaps: bool, data: Array[Image]) 🔗
注意:等效资源为Texture3D。
Array[Image] texture_3d_get(texture: RID) const 🔗
RID texture_3d_placeholder_create() 🔗
为三维纹理创建占位符并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有texture_3d_*RenderingServer函数,尽管使用时它什么也不做。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注:等效资源为PlaceholderTexture3D。
void texture_3d_update(texture: RID, data: Array[Image]) 🔗
使用data中的数据更新textureRID的数据指定的纹理。必须一次替换所有纹理的图层。
注意:texture必须与当前纹理数据具有相同的宽度、高度、深度和格式。否则,将打印错误,并且不会修改原始纹理。如果您需要使用不同的宽度、高度、深度或格式,请使用texture_replace()。
RID texture_create_from_native_handle(type: TextureType, format: Format, native_handle: int, width: int, height: int, depth: int, layers: int = 1, layered_type: TextureLayeredType = 0) 🔗
基于在i3D渲染器之外创建的本机句柄创建纹理。
注意:如果只使用渲染设备渲染器,建议使用RenderingDevice.texture_create_from_extension()和texture_rd_create(),而不是这种方法。它会让你更好地控制纹理的格式和用法。
Format texture_get_format(texture: RID) const 🔗
返回纹理的格式。
int texture_get_native_handle(texture: RID, srgb: bool = false) const 🔗
返回此纹理对象的内部图形句柄。用于与主要使用S3Extension的第三方API通信时使用。
注意:此函数返回一个uint64_t,它在内部映射到GLuint(OpenGL)或VkImage(Vulkan)。
String texture_get_path(texture: RID) const 🔗
RID texture_get_rd_texture(texture: RID, srgb: bool = false) const 🔗
返回可与RenderingDevice一起使用的纹理RID。
RID texture_proxy_create(base: RID) 🔗
此方法不做任何事情,并且总是返回无效的RID。
void texture_proxy_update(texture: RID, proxy_to: RID) 🔗
此方法不做任何事情。
RID texture_rd_create(rd_texture: RID, layer_type: TextureLayeredType = 0) 🔗
根据直接在RenderingDevice上创建的纹理创建新的纹理对象。如果纹理包含图层,则使用layer_type来定义图层类型。
void texture_replace(texture: RID, by_texture: RID) 🔗
用by_textureRID指定的纹理替换texture的纹理数据,而不更改texture的RID。
void texture_set_force_redraw_if_visible(texture: RID, enable: bool) 🔗
void texture_set_path(texture: RID, path: String) 🔗
void texture_set_size_override(texture: RID, width: int, height: int) 🔗
void viewport_attach_camera(viewport: RID, camera: RID) 🔗
设置视口的摄像机。
void viewport_attach_canvas(viewport: RID, canvas: RID) 🔗
设置视口的画布。
void viewport_attach_to_screen(viewport: RID, rect: Rect2 = Rect2(0, 0, 0, 0), screen: int = 0) 🔗
将视口复制到屏幕上由 rect 指定的区域。如果 viewport_set_render_direct_to_screen() 为 true,则视口不使用帧缓冲区,视口的内容将直接渲染到屏幕上。但是,请注意,根视口是最后绘制的,因此它会绘制在屏幕之上。因此,你必须将根视口设置为不覆盖你附加此视口的区域。例如,你可以使用以下代码将根视口设置为根本不渲染:
func _ready():
RenderingServer.viewport_attach_to_screen(get_viewport().get_viewport_rid(), Rect2())
RenderingServer.viewport_attach_to_screen($Viewport.get_viewport_rid(), Rect2(0, 0, 600, 600))
使用这个可以带来显著的优化,特别是在低端设备上。然而,这需要付出手动管理视口的代价。如需进一步优化,请参阅 viewport_set_render_direct_to_screen()
创建一个空视口并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有viewport_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注意:等效节点为Viewport。
float viewport_get_measured_render_time_cpu(viewport: RID) const 🔗
返回渲染最后一帧所花费的CPU时间(以毫秒为单位)。此仅包括渲染相关操作所花费的时间;脚本的_process函数和其他引擎子系统不包括在此读数中。要获得渲染场景所花费的CPU时间的完整读数,请将每帧绘制的所有视口的渲染时间加上get_frame_setup_time_cpu()。与Engine.get_frames_per_second()不同,即使通过V-Sync或Engine.max_fps限制了帧速率,此方法也能准确反映CPU利用率。另请参见viewport_get_measured_render_time_gpu()。
注意:要求使用viewport_set_measure_render_time()在指定的viewport上启用测量。否则,此方法返回0.0。
float viewport_get_measured_render_time_gpu(viewport: RID) const 🔗
返回渲染最后一帧所花费的GPU时间(以毫秒为单位)。要获得渲染场景所花费的GPU时间的完整读数,请将每帧绘制的所有视口的渲染时间相加。与Engine.get_frames_per_second()不同,此方法准确地反映了GPU利用率,即使帧速率通过V-Sync或Engine.max_fps进行了限制。另请参见viewport_get_measured_render_time_cpu()。
注意:要求使用viewport_set_measure_render_time()在指定的viewport上启用测量。否则,此方法返回0.0。
注意:当GPU利用率在某段时间内足够低时,GPU将降低其功率状态(这反过来会降低核心和内存时钟速度)。如果通过帧速率上限(与GPU的最高功率状态相比)保持GPU利用率足够低,这可能会导致报告的GPU时间增加。使用viewport_get_measured_render_time_gpu()进行基准测试时请记住这一点。这种行为可以在图形驱动程序设置中被覆盖,但代价是更高的功率使用。
int viewport_get_render_info(viewport: RID, type: ViewportRenderInfoType, info: ViewportRenderInfo) 🔗
返回有关渲染引擎的统计信息,可用于性能分析。这被分为渲染通道 type,每个通道都有相同的 info,你可以查询(不同的通道将返回不同的值)。有关渲染通道类型的列表,请参阅 ViewportRenderInfoType,有关可查询的信息列表,请参阅 ViewportRenderInfo。另请参阅 get_rendering_info(),它返回所有视口的全局信息。
注意:在引擎至少渲染 2 帧之后,视口才会有渲染信息。如果渲染信息不可用,viewport_get_render_info() 将返回 0。要在 _ready() 中成功打印渲染信息,请使用以下方法。
func _ready():
for _i in 2:
await get_tree().process_frame
print(
RenderingServer.viewport_get_render_info(get_viewport().get_viewport_rid(),
RenderingServer.VIEWPORT_RENDER_INFO_TYPE_VISIBLE,
RenderingServer.VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME)
)
RID viewport_get_render_target(viewport: RID) const 🔗
返回视口的渲染目标。
RID viewport_get_texture(viewport: RID) const 🔗
返回视口的最后渲染帧。
ViewportUpdateMode viewport_get_update_mode(viewport: RID) const 🔗
返回视口的更新模式。有关选项,请参阅ViewportUpdateMode常量。
警告:从渲染线程以外的任何线程调用它将不利于性能。
void viewport_remove_canvas(viewport: RID, canvas: RID) 🔗
从画布中分离视口。
void viewport_set_active(viewport: RID, active: bool) 🔗
如果true,则将视口设置为活动,否则将其设置为非活动。
void viewport_set_anisotropic_filtering_level(viewport: RID, anisotropic_filtering_level: ViewportAnisotropicFiltering) 🔗
设置对纹理使用各向异性过滤时的最大样本数(2的幂)。更高的样本数将导致倾斜角度的纹理更清晰,但计算成本更高。0的值会强制禁用各向异性过滤,即使在启用它的材质上也是如此。
如果贴花和投影仪配置为使用各向异性过滤,各向异性过滤级别也会影响它们。请参阅ProjectSettings.rendering/textures/decals/filter和ProjectSettings.rendering/textures/light_projectors/filter。
注意:在3D中,为了使此设置具有效果,请将材质上的BaseMaterial3D.texture_filter设置为BaseMaterial3D.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC或BaseMaterial3D.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC。
注意:在2D中,要使此设置具有效果,请在显示纹理的CanvasItem节点上(或在CanvasTexture中)将CanvasItem.texture_filter设置为CanvasItem.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC或CanvasItem.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC。然而,各向异性过滤在2D中很少有用,因此只有在产生有意义的视觉差异时才对2D中的纹理启用它。
void viewport_set_canvas_cull_mask(viewport: RID, canvas_cull_mask: int) 🔗
设置与此Viewport关联的渲染掩码。此Viewport只会渲染具有匹配渲染可见性层的CanvasItem节点。
void viewport_set_canvas_stacking(viewport: RID, canvas: RID, layer: int, sublayer: int) 🔗
设置视口画布的堆叠顺序。
layer是实际的画布层,而sublayer指定画布在同一层中的堆叠顺序。
void viewport_set_canvas_transform(viewport: RID, canvas: RID, offset: Transform2D) 🔗
设置视口画布的转换。
void viewport_set_clear_mode(viewport: RID, clear_mode: ViewportClearMode) 🔗
设置视口的清除模式。有关选项,请参阅ViewportClearMode。
void viewport_set_debug_draw(viewport: RID, draw: ViewportDebugDraw) 🔗
设置视口的调试绘制模式。有关选项,请参阅ViewportDebugDraw。
void viewport_set_default_canvas_item_texture_filter(viewport: RID, filter: CanvasItemTextureFilter) 🔗
设置指定viewportRID的默认纹理过滤模式。有关选项,请参见CanvasItemTextureFilter。
void viewport_set_default_canvas_item_texture_repeat(viewport: RID, repeat: CanvasItemTextureRepeat) 🔗
设置指定viewportRID的默认纹理重复模式。有关选项,请参见CanvasItemTextureRepeat。
void viewport_set_disable_2d(viewport: RID, disable: bool) 🔗
如果true,则不呈现视口的画布(即2D和GUI元素)。
void viewport_set_disable_3d(viewport: RID, disable: bool) 🔗
如果true,则不呈现视口的3D元素。
void viewport_set_environment_mode(viewport: RID, mode: ViewportEnvironmentMode) 🔗
设置视口的环境模式,允许启用或禁用在2D画布上渲染3D环境。禁用时,2D将不受环境影响。启用时,如果环境背景模式为ENV_BG_CANVAS,2D将受到环境影响。默认行为是从视口的父级继承设置。如果最上面的父级也设置为VIEWPORT_ENVIRONMENT_INHERIT,则行为将与设置为VIEWPORT_ENVIRONMENT_ENABLED相同。
void viewport_set_fsr_sharpness(viewport: RID, sharpness: float) 🔗
确定使用FSR放大模式时放大图像的清晰度。清晰度与每个整数减半。值从0.0(最清晰)到2.0。高于2.0的值不会产生明显差异。
void viewport_set_global_canvas_transform(viewport: RID, transform: Transform2D) 🔗
设置视口的全局变换矩阵。
void viewport_set_measure_render_time(viewport: RID, enable: bool) 🔗
设置给定viewportRID的度量值(使用Viewport.get_viewport_rid()获得)。一旦启用,viewport_get_measured_render_time_cpu()和viewport_get_measured_render_time_gpu()将在使用给定viewport查询时返回大于0.0的值。
void viewport_set_msaa_2d(viewport: RID, msaa: ViewportMSAA) 🔗
在指定的viewportRID上为2D/Canvas设置多采样抗锯齿模式。有关选项,请参阅ViewportMSAA。相当于ProjectSettings.rendering/anti_aliasing/quality/msaa_2d或Viewport.msaa_2d。
void viewport_set_msaa_3d(viewport: RID, msaa: ViewportMSAA) 🔗
在指定的viewportRID上设置3D的多采样抗锯齿模式。有关选项,请参阅ViewportMSAA。相当于ProjectSettings.rendering/anti_aliasing/quality/msaa_3d或Viewport.msaa_3d。
void viewport_set_occlusion_culling_build_quality(quality: ViewportOcclusionCullingBuildQuality) 🔗
设置用于遮挡剔除的ProjectSettings.rendering/occlusion_culling/bvh_build_quality。此参数是全局的,不能在每个视口的基础上设置。
void viewport_set_occlusion_rays_per_thread(rays_per_thread: int) 🔗
设置用于遮挡剔除的ProjectSettings.rendering/occlusion_culling/occlusion_rays_per_thread。此参数是全局的,不能在每个视口的基础上设置。
void viewport_set_parent_viewport(viewport: RID, parent_viewport: RID) 🔗
将视口的父级设置为由parent_viewportRID指定的视口。
void viewport_set_positional_shadow_atlas_quadrant_subdivision(viewport: RID, quadrant: int, subdivision: int) 🔗
设置在指定阴影图集quadrant中用于全向和点阴影的细分数量。另请参见Viewport.set_positional_shadow_atlas_quadrant_subdiv()。
void viewport_set_positional_shadow_atlas_size(viewport: RID, size: int, use_16_bits: bool = false) 🔗
在viewportRID指定的视口上设置阴影图集图像(用于全光和聚光灯)的size。该值向上舍入到最接近的2次方。如果use_16_bits为true,则使用16位作为全光/聚光灯阴影深度图。启用此功能会导致阴影精度降低,并可能导致阴影痤疮,但可以提高某些设备的性能。
注意:如果设置为0,则根本看不到位置阴影。这可以通过减少CPU和GPU负载来显着提高低端系统的性能(因为绘制没有阴影的场景需要更少的绘制调用)。
void viewport_set_render_direct_to_screen(viewport: RID, enabled: bool) 🔗
如果true,则直接将视口的内容渲染到屏幕上。这允许进行低级优化,您可以跳过将视口绘制到根视口。虽然这种优化可以显着提高速度(尤其是在旧设备上),但它是以可用性为代价的。启用此功能后,您无法从视口或screen_texture读取。您还失去了某些窗口设置的好处,例如各种拉伸模式。另一个需要注意的后果是,在2D中,渲染发生在窗口坐标中,因此如果您的视口是窗口大小的两倍,并且您设置了此设置,则只会绘制适合窗口的部分,即使您的应用场景明显大于窗口大小,也无法自动缩放。
void viewport_set_scaling_3d_mode(viewport: RID, scaling_3d_mode: ViewportScaling3DMode) 🔗
设置3D分辨率缩放模式。双线性缩放以不同的分辨率呈现,以对视口进行欠采样或超采样。FidelityFX超级分辨率1.0,缩写为FSR,是一种升级技术,通过使用空间感知的升级算法以快速帧速率生成高质量图像。FSR比双线性稍贵,但它产生的画质明显更高。应尽可能使用FSR。
void viewport_set_scaling_3d_scale(viewport: RID, scale: float) 🔗
根据视口大小缩放3D渲染缓冲区使用ViewportScaling3DMode中指定的图像过滤器将输出图像缩放到完整的视口大小。低于1.0的值可用于以质量为代价(欠采样)加速3D渲染。大于1.0的值仅对双线性模式有效,可用于以高性能成本(超采样)提高3D渲染质量。另请参阅ViewportMSAA以获得多样本抗锯齿,这显着更便宜,但仅平滑多边形的边缘。
使用FSR升级时,AMD建议将以下值作为预设选项公开给用户“超质量:0.77”、“质量:0.67”、“平衡:0.59”、“性能:0.5”,而不是公开整个刻度。
void viewport_set_scenario(viewport: RID, scenario: RID) 🔗
设置视口的场景。该场景包含有关环境信息、反射图集等的信息。
void viewport_set_screen_space_aa(viewport: RID, mode: ViewportScreenSpaceAA) 🔗
设置视口的屏幕空间抗锯齿模式。相当于ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa或Viewport.screen_space_aa。
void viewport_set_sdf_oversize_and_scale(viewport: RID, oversize: ViewportSDFOversize, scale: ViewportSDFScale) 🔗
设置视口的2D有符号距离字段ProjectSettings.rendering/2d/sdf/oversize和ProjectSettings.rendering/2d/sdf/scale。这用于在CanvasItem着色器中采样有符号距离字段以及GPUParticles2D碰撞。这是SDFGI在3D渲染中使用的而不是。
void viewport_set_size(viewport: RID, width: int, height: int) 🔗
以像素为单位设置视口的宽度和高度。
void viewport_set_snap_2d_transforms_to_pixel(viewport: RID, enabled: bool) 🔗
如果true,则渲染时画布项变换(即原点位置)会被捕捉到最近的像素。这可能会导致更清晰的外观,但代价是移动不太流畅,尤其是在启用Camera2D平滑时。相当于ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel。
void viewport_set_snap_2d_vertices_to_pixel(viewport: RID, enabled: bool) 🔗
如果true,则渲染时将画布项顶点(即多边形点)捕捉到最近的像素。这可能会导致更清晰的外观,但代价是移动不太流畅,尤其是在启用Camera2D平滑时。相当于ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel。
void viewport_set_texture_mipmap_bias(viewport: RID, mipmap_bias: float) 🔗
通过从较低或较高的mipmap读取来影响最终的纹理清晰度(也称为“纹理LOD偏差”)。负值使mipmap纹理在远距离观察时更清晰但更粒度,而正值使mipmap纹理更模糊(即使在近距离观察时)。要在不引入太多粒度的情况下在远处获得更清晰的纹理,请将其设置在-0.75和0.0之间。启用时间抗锯齿(ProjectSettings.rendering/anti_aliasing/quality/use_taa)有助于减少使用负mipmap偏差时可见的粒度。
注意:当3D缩放模式设置为FSR 1.0时,该值用于调整内部根据缩放因子计算的自动mipmap偏差。公式是-log2(1.0/scale)+mipmap_bias。
void viewport_set_transparent_background(viewport: RID, enabled: bool) 🔗
如果true,则视口将其背景呈现为透明。
void viewport_set_update_mode(viewport: RID, update_mode: ViewportUpdateMode) 🔗
设置应更新视口的时间。有关选项,请参阅ViewportUpdateMode常量。
void viewport_set_use_debanding(viewport: RID, enable: bool) 🔗
如果true,则在指定的视口上启用去色带。相当于ProjectSettings.rendering/anti_aliasing/quality/use_debanding或Viewport.use_debanding。
void viewport_set_use_hdr_2d(viewport: RID, enabled: bool) 🔗
如果true,2D渲染将使用与3D帧缓冲区的位深度匹配的高动态范围(HDR)格式帧缓冲区。当使用Forward+渲染器时,这将是一个RGBA16帧缓冲区,而当使用Mobile渲染器时,它将是一个RGB10_A2帧缓冲区。此外,2D渲染将发生在线性色彩空间中,并将在闪光到屏幕之前立即转换为sRGB空间(如果Viewport连接到屏幕)。实际上,这意味着Viewport的最终结果不会被钳制在0-1范围内,并且可以在无需色彩空间调整的情况下用于3D渲染。这允许2D渲染利用需要高动态范围的效果(例如2D发光),以及大幅改善需要高度详细渐变的效果的外观。此设置与Viewport.use_hdr_2d具有相同的效果。
注意:此设置在使用兼容性渲染器时无效,出于性能原因,它总是在低动态范围内渲染。
void viewport_set_use_occlusion_culling(viewport: RID, enable: bool) 🔗
如果true,则在指定的视口上启用遮挡剔除。相当于ProjectSettings.rendering/occlusion_culling/use_occlusion_culling。
void viewport_set_use_taa(viewport: RID, enable: bool) 🔗
如果true,则使用时间抗锯齿。相当于ProjectSettings.rendering/anti_aliasing/quality/use_taa或Viewport.use_taa。
void viewport_set_use_xr(viewport: RID, use_xr: bool) 🔗
如果true,则视口使用增强或虚拟现实技术。见XRInterface。
void viewport_set_vrs_mode(viewport: RID, mode: ViewportVRSMode) 🔗
为视口设置可变速率着色(VRS)模式。如果GPU不支持VRS,则忽略此属性。相当于ProjectSettings.rendering/vrs/mode。
void viewport_set_vrs_texture(viewport: RID, texture: RID) 🔗
VRS模式设置为VIEWPORT_VRS_TEXTURE时使用的纹理。相当于ProjectSettings.rendering/vrs/texture。
void viewport_set_vrs_update_mode(viewport: RID, mode: ViewportVRSUpdateMode) 🔗
为视口设置可变速率着色(VRS)的更新模式。VRS要求将输入纹理转换为硬件支持的VRS方法可用的格式。更新模式定义了这种情况发生的频率。如果GPU不支持VRS,或者未启用VRS,则忽略此属性。
如果设置为VIEWPORT_VRS_UPDATE_ONCE,则复制一次输入纹理,并将模式更改为VIEWPORT_VRS_UPDATE_DISABLED。
RID visibility_notifier_create() 🔗
创建一个新的3D可见性通知对象并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有visibility_notifier_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
要放置在场景中,请使用返回的RID使用instance_set_base()将此通知程序附加到实例。
注:等价节点为OnScreenVisibleSignal。
void visibility_notifier_set_aabb(notifier: RID, aabb: AABB) 🔗
void visibility_notifier_set_callbacks(notifier: RID, enter_callable: Callable, exit_callable: Callable) 🔗
void voxel_gi_allocate_data(voxel_gi: RID, to_cell_xform: Transform3D, aabb: AABB, octree_size: Vector3i, octree_cells: PackedByteArray, data_cells: PackedByteArray, distance_field: PackedByteArray, level_counts: PackedInt32Array) 🔗
创建一个新的基于体素的全局照明对象并将其添加到RenderingServer。可以使用返回的RID访问它。此RID将用于所有voxel_gi_*RenderingServer函数。
完成RID后,您将希望使用RenderingServer的free_rid()方法释放RID。
注意:等效节点为VoxelGI。
PackedByteArray voxel_gi_get_data_cells(voxel_gi: RID) const 🔗
PackedByteArray voxel_gi_get_distance_field(voxel_gi: RID) const 🔗
PackedInt32Array voxel_gi_get_level_counts(voxel_gi: RID) const 🔗
PackedByteArray voxel_gi_get_octree_cells(voxel_gi: RID) const 🔗
Vector3i voxel_gi_get_octree_size(voxel_gi: RID) const 🔗
Transform3D voxel_gi_get_to_cell_xform(voxel_gi: RID) const 🔗
void voxel_gi_set_baked_exposure_normalization(voxel_gi: RID, baked_exposure: float) 🔗
用于通知渲染器在烘焙体素gi时使用了什么曝光归一化值。该值将在运行时使用和调制,以确保即使在运行时更改场景范围的曝光归一化,体素gi也能保持一致的曝光水平。有关更多信息,请参见camera_attributes_set_exposure()。
void voxel_gi_set_bias(voxel_gi: RID, bias: float) 🔗
设置用于指定voxel_gi的RID的VoxelGIData.bias值。
void voxel_gi_set_dynamic_range(voxel_gi: RID, range: float) 🔗
设置用于指定voxel_gi的RID的VoxelGIData.dynamic_range值。
void voxel_gi_set_energy(voxel_gi: RID, energy: float) 🔗
设置用于指定voxel_gi的RID的VoxelGIData.energy值。
void voxel_gi_set_interior(voxel_gi: RID, enable: bool) 🔗
设置在指定voxel_gi的RID上使用的VoxelGIData.interior值。
void voxel_gi_set_normal_bias(voxel_gi: RID, bias: float) 🔗
设置用于指定voxel_gi的RID的VoxelGIData.normal_bias值。
void voxel_gi_set_propagation(voxel_gi: RID, amount: float) 🔗
设置要在指定voxel_gi的RID上使用的VoxelGIData.propagation。
void voxel_gi_set_quality(quality: VoxelGIQuality) 🔗
设置渲染时使用的ProjectSettings.rendering/global_illumination/voxel_gi/quality值。此参数是全局的,不能基于per-VoxelGI设置。
void voxel_gi_set_use_two_bounces(voxel_gi: RID, enable: bool) 🔗
设置用于指定voxel_gi的RID的VoxelGIData.use_two_bounces值。