You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Merge pull request #88313 from wagnerfs/run-time-anisotropic-filtering
Allow changing the anisotropic filter level at run-time per Viewport
This commit is contained in:
@@ -66,6 +66,10 @@ void RenderSceneBuffersConfiguration::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("get_texture_mipmap_bias"), &RenderSceneBuffersConfiguration::get_texture_mipmap_bias);
|
||||
ClassDB::bind_method(D_METHOD("set_texture_mipmap_bias", "texture_mipmap_bias"), &RenderSceneBuffersConfiguration::set_texture_mipmap_bias);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "texture_mipmap_bias"), "set_texture_mipmap_bias", "get_texture_mipmap_bias");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_anisotropic_filtering_level"), &RenderSceneBuffersConfiguration::get_anisotropic_filtering_level);
|
||||
ClassDB::bind_method(D_METHOD("set_anisotropic_filtering_level", "anisotropic_filtering_level"), &RenderSceneBuffersConfiguration::set_anisotropic_filtering_level);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "anisotropic_filtering_level"), "set_anisotropic_filtering_level", "get_anisotropic_filtering_level");
|
||||
}
|
||||
|
||||
void RenderSceneBuffers::_bind_methods() {
|
||||
@@ -76,6 +80,7 @@ void RenderSceneBuffersExtension::_bind_methods() {
|
||||
GDVIRTUAL_BIND(_configure, "config");
|
||||
GDVIRTUAL_BIND(_set_fsr_sharpness, "fsr_sharpness");
|
||||
GDVIRTUAL_BIND(_set_texture_mipmap_bias, "texture_mipmap_bias");
|
||||
GDVIRTUAL_BIND(_set_anisotropic_filtering_level, "anisotropic_filtering_level");
|
||||
GDVIRTUAL_BIND(_set_use_debanding, "use_debanding");
|
||||
}
|
||||
|
||||
@@ -91,6 +96,10 @@ void RenderSceneBuffersExtension::set_texture_mipmap_bias(float p_texture_mipmap
|
||||
GDVIRTUAL_CALL(_set_texture_mipmap_bias, p_texture_mipmap_bias);
|
||||
}
|
||||
|
||||
void RenderSceneBuffersExtension::set_anisotropic_filtering_level(RS::ViewportAnisotropicFiltering p_anisotropic_filtering_level) {
|
||||
GDVIRTUAL_CALL(_set_anisotropic_filtering_level, p_anisotropic_filtering_level);
|
||||
}
|
||||
|
||||
void RenderSceneBuffersExtension::set_use_debanding(bool p_use_debanding) {
|
||||
GDVIRTUAL_CALL(_set_use_debanding, p_use_debanding);
|
||||
}
|
||||
|
||||
@@ -47,6 +47,7 @@ private:
|
||||
RS::ViewportScaling3DMode scaling_3d_mode = RS::VIEWPORT_SCALING_3D_MODE_OFF;
|
||||
RS::ViewportMSAA msaa_3d = RS::VIEWPORT_MSAA_DISABLED;
|
||||
RS::ViewportScreenSpaceAA screen_space_aa = RS::VIEWPORT_SCREEN_SPACE_AA_DISABLED;
|
||||
RS::ViewportAnisotropicFiltering anisotropic_filtering_level = RS::VIEWPORT_ANISOTROPY_4X;
|
||||
|
||||
float fsr_sharpness = 0.0;
|
||||
float texture_mipmap_bias = 0.0;
|
||||
@@ -84,6 +85,9 @@ public:
|
||||
float get_texture_mipmap_bias() const { return texture_mipmap_bias; }
|
||||
void set_texture_mipmap_bias(float p_texture_mipmap_bias) { texture_mipmap_bias = p_texture_mipmap_bias; }
|
||||
|
||||
RS::ViewportAnisotropicFiltering get_anisotropic_filtering_level() const { return anisotropic_filtering_level; }
|
||||
void set_anisotropic_filtering_level(RS::ViewportAnisotropicFiltering p_anisotropic_filtering_level) { anisotropic_filtering_level = p_anisotropic_filtering_level; }
|
||||
|
||||
bool get_use_taa() const { return use_taa; }
|
||||
void set_use_taa(bool p_use_taa) { use_taa = p_use_taa; }
|
||||
|
||||
@@ -109,6 +113,7 @@ public:
|
||||
// for those settings that are unlikely to require buffers to be recreated, we'll add setters
|
||||
virtual void set_fsr_sharpness(float p_fsr_sharpness) = 0;
|
||||
virtual void set_texture_mipmap_bias(float p_texture_mipmap_bias) = 0;
|
||||
virtual void set_anisotropic_filtering_level(RS::ViewportAnisotropicFiltering p_anisotropic_filtering_level) = 0;
|
||||
virtual void set_use_debanding(bool p_use_debanding) = 0;
|
||||
};
|
||||
|
||||
@@ -121,6 +126,7 @@ protected:
|
||||
GDVIRTUAL1(_configure, const RenderSceneBuffersConfiguration *)
|
||||
GDVIRTUAL1(_set_fsr_sharpness, float)
|
||||
GDVIRTUAL1(_set_texture_mipmap_bias, float)
|
||||
GDVIRTUAL1(_set_anisotropic_filtering_level, int)
|
||||
GDVIRTUAL1(_set_use_debanding, bool)
|
||||
|
||||
public:
|
||||
@@ -130,6 +136,7 @@ public:
|
||||
|
||||
virtual void set_fsr_sharpness(float p_fsr_sharpness) override;
|
||||
virtual void set_texture_mipmap_bias(float p_texture_mipmap_bias) override;
|
||||
virtual void set_anisotropic_filtering_level(RS::ViewportAnisotropicFiltering p_anisotropic_filtering_level) override;
|
||||
virtual void set_use_debanding(bool p_use_debanding) override;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user