Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
RenderSceneBuffersRD
继承: RenderSceneBuffers < RefCounted < Object
渲染场景缓冲的实现,适用于基于 RenderingDevice 的渲染器。
描述
该对象管理基于渲染设备的渲染器的所有 3D 渲染缓冲区。为每个启用 3D 渲染的视口创建该对象的实例。
所有缓冲区都被组织在上下文中。默认上下文被称为 render_buffers,可以包含颜色缓冲区、深度缓冲区、速度缓冲区、VRS 密度图和这些缓冲区的 MSAA 变体等。
缓冲区仅保证在视口渲染期间存在。
注意:这是内部渲染服务器对象,请勿在脚本中实例化。
方法
方法说明
void clear_context(context: StringName) 🔗
释放与这个上下文相关的所有缓冲。
RID create_texture(context: StringName, name: StringName, data_format: DataFormat, usage_bits: int, texture_samples: TextureSamples, size: Vector2i, layers: int, mipmaps: int, unique: bool, discardable: bool) 🔗
使用给定的定义创建一个新纹理,并将其缓存在给定的名称下。如果已有纹理已经存在,则返回该已有纹理。
RID create_texture_from_format(context: StringName, name: StringName, format: RDTextureFormat, view: RDTextureView, unique: bool) 🔗
使用给定的格式创建一个新纹理,并在给定的名称下查看和缓存它。如果已有纹理已经存在,则返回该已有纹理。
RID create_texture_view(context: StringName, name: StringName, view_name: StringName, view: RDTextureView) 🔗
为已有纹理创建一个新的纹理视图,并将其缓存在给定的 view_name
下。如果已有的纹理视图已经存在,则返回该视图。如果源纹理不存在则会出错。
RID get_color_layer(layer: int, msaa: bool = false) 🔗
从渲染 3D 内容的颜色纹理返回指定的图层。
如果 msaa
为 true
并且启用了 MSAA,则会返回缓冲的 MSAA 变种。
RID get_color_texture(msaa: bool = false) 🔗
返回渲染 3D 内容的颜色纹理。如果使用多视图,这将是一个包含所有视图的纹理数组。
如果 msaa
为 true
并且启用了 MSAA,则会返回缓冲的 MSAA 变种。
RID get_depth_layer(layer: int, msaa: bool = false) 🔗
从渲染 3D 内容的深度纹理返回指定的图层。
如果 msaa
为 true
并且启用了 MSAA,则会返回缓冲的 MSAA 变种。
RID get_depth_texture(msaa: bool = false) 🔗
返回渲染 3D 内容的深度纹理。如果使用多视图,这将是一个包含所有视图的纹理数组。
如果 msaa
为 true
并且启用了 MSAA,则会返回缓冲的 MSAA 变种。
float get_fsr_sharpness() const 🔗
返回渲染 3D 内容时使用的 FSR 锐度值(如果 get_scaling_3d_mode() 是 FSR 模式)。
Vector2i get_internal_size() const 🔗
返回默认情况下创建纹理的渲染缓冲区的内部大小(放大之前的大小)。
ViewportMSAA get_msaa_3d() const 🔗
返回该视口应用的 3D MSAA 模式。
RID get_render_target() const 🔗
返回与该缓冲区对象关联的渲染目标。
ViewportScaling3DMode get_scaling_3d_mode() const 🔗
返回用于放大的缩放模式。
ViewportScreenSpaceAA get_screen_space_aa() const 🔗
返回所应用的屏幕空间抗锯齿方法。
Vector2i get_target_size() const 🔗
返回渲染缓冲区的目标大小(放大后的大小)。
RID get_texture(context: StringName, name: StringName) const 🔗
返回具有该名称的缓存纹理。
RDTextureFormat get_texture_format(context: StringName, name: StringName) const 🔗
返回用于创建缓存纹理的纹理格式信息。
TextureSamples get_texture_samples() const 🔗
返回使用的 MSAA 样本的数量。
RID get_texture_slice(context: StringName, name: StringName, layer: int, mipmap: int, layers: int, mipmaps: int) 🔗
返回缓存纹理的指定切片(层或 mipmap)。
Vector2i get_texture_slice_size(context: StringName, name: StringName, mipmap: int) 🔗
返回缓存纹理给定切片的纹理大小。
RID get_texture_slice_view(context: StringName, name: StringName, layer: int, mipmap: int, layers: int, mipmaps: int, view: RDTextureView) 🔗
返回缓存纹理的指定切片视图(层或 mipmap)。
bool get_use_debanding() const 🔗
如果启用了去色带功能,则返回 true
。
如果启用 TAA,则返回 true
。
RID get_velocity_layer(layer: int, msaa: bool = false) 🔗
从渲染 3D 内容的速度纹理返回指定的图层。
RID get_velocity_texture(msaa: bool = false) 🔗
返回渲染 3D 内容的速度纹理。如果使用多视图,这将是一个包含所有视图的纹理数组。
如果 msaa
为 true 并且启用了 MSAA,则会返回缓冲的 MSAA 变种。
返回关联视口的视图数。
bool has_texture(context: StringName, name: StringName) const 🔗
如果存在使用该名称的缓冲纹理,则返回 true
。