Turn the anisotropic filtering setting into an enum
Since it only accepts power-of-two values, exposing it as an enum makes more sense. This also allows for adding property hints to indicate the performance cost of each value. This also improves property hints for MSAA and FXAA.
This commit is contained in:
parent
e45735ec4a
commit
3a11baaeac
4 changed files with 9 additions and 9 deletions
|
@ -1070,7 +1070,7 @@
|
||||||
Lower-end override for [member rendering/quality/reflections/texture_array_reflections] on mobile devices, due to performance concerns or driver support.
|
Lower-end override for [member rendering/quality/reflections/texture_array_reflections] on mobile devices, due to performance concerns or driver support.
|
||||||
</member>
|
</member>
|
||||||
<member name="rendering/quality/screen_filters/msaa" type="int" setter="" getter="" default="0">
|
<member name="rendering/quality/screen_filters/msaa" type="int" setter="" getter="" default="0">
|
||||||
Sets the number of MSAA samples to use. MSAA is used to reduce aliasing around the edges of polygons. A higher MSAA value results in smoother edges but can be significantly slower on some hardware.
|
Sets the number of MSAA samples to use (as a power of two). MSAA is used to reduce aliasing around the edges of polygons. A higher MSAA value results in smoother edges but can be significantly slower on some hardware.
|
||||||
[b]Note:[/b] MSAA is not available on HTML5 export using the GLES2 backend.
|
[b]Note:[/b] MSAA is not available on HTML5 export using the GLES2 backend.
|
||||||
</member>
|
</member>
|
||||||
<member name="rendering/quality/screen_filters/screen_space_aa" type="int" setter="" getter="" default="0">
|
<member name="rendering/quality/screen_filters/screen_space_aa" type="int" setter="" getter="" default="0">
|
||||||
|
@ -1143,9 +1143,8 @@
|
||||||
<member name="rendering/quality/subsurface_scattering/subsurface_scattering_scale" type="float" setter="" getter="" default="0.05">
|
<member name="rendering/quality/subsurface_scattering/subsurface_scattering_scale" type="float" setter="" getter="" default="0.05">
|
||||||
Scales the distance over which samples are taken for subsurface scattering effect. Changing this does not impact performance, but higher values will result in significant artifacts as the samples will become obviously spread out. A lower value results in a smaller spread of scattered light.
|
Scales the distance over which samples are taken for subsurface scattering effect. Changing this does not impact performance, but higher values will result in significant artifacts as the samples will become obviously spread out. A lower value results in a smaller spread of scattered light.
|
||||||
</member>
|
</member>
|
||||||
<member name="rendering/quality/texture_filters/max_anisotropy" type="int" setter="" getter="" default="4">
|
<member name="rendering/quality/texture_filters/anisotropic_filtering_level" type="int" setter="" getter="" default="2">
|
||||||
Sets the maximum number of samples to take when using anisotropic filtering on textures. A higher sample count will result in sharper textures at oblique angles, but is more expensive to compute.
|
Sets the maximum number of samples to take when using anisotropic filtering on textures (as a power of two). A higher sample count will result in sharper textures at oblique angles, but is more expensive to compute. A value of [code]0[/code] forcibly disables anisotropic filtering, even on materials where it is enabled.
|
||||||
Only power of two values are valid ([code]1[/code], [code]2[/code], [code]4[/code], [code]8[/code], [code]16[/code]). A value of [code]1[/code] forcibly disables anisotropic filtering, even on materials where it is enabled.
|
|
||||||
</member>
|
</member>
|
||||||
<member name="rendering/quality/texture_filters/use_nearest_mipmap_filter" type="bool" setter="" getter="" default="false">
|
<member name="rendering/quality/texture_filters/use_nearest_mipmap_filter" type="bool" setter="" getter="" default="false">
|
||||||
If [code]true[/code], uses nearest-neighbor mipmap filtering when using mipmaps (also called "bilinear filtering"), which will result in visible seams appearing between mipmap stages. This may increase performance in mobile as less memory bandwidth is used. If [code]false[/code], linear mipmap filtering (also called "trilinear filtering") is used.
|
If [code]true[/code], uses nearest-neighbor mipmap filtering when using mipmaps (also called "bilinear filtering"), which will result in visible seams appearing between mipmap stages. This may increase performance in mobile as less memory bandwidth is used. If [code]false[/code], linear mipmap filtering (also called "trilinear filtering") is used.
|
||||||
|
|
|
@ -1422,11 +1422,11 @@ SceneTree::SceneTree() {
|
||||||
current_scene = nullptr;
|
current_scene = nullptr;
|
||||||
|
|
||||||
int msaa_mode = GLOBAL_DEF("rendering/quality/screen_filters/msaa", 0);
|
int msaa_mode = GLOBAL_DEF("rendering/quality/screen_filters/msaa", 0);
|
||||||
ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/screen_filters/msaa", PropertyInfo(Variant::INT, "rendering/quality/screen_filters/msaa", PROPERTY_HINT_ENUM, "Disabled,2x,4x,8x,16x"));
|
ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/screen_filters/msaa", PropertyInfo(Variant::INT, "rendering/quality/screen_filters/msaa", PROPERTY_HINT_ENUM, "Disabled (Fastest),2x (Fast),4x (Average),8x (Slow),16x (Slower)"));
|
||||||
root->set_msaa(Viewport::MSAA(msaa_mode));
|
root->set_msaa(Viewport::MSAA(msaa_mode));
|
||||||
|
|
||||||
int ssaa_mode = GLOBAL_DEF("rendering/quality/screen_filters/screen_space_aa", 0);
|
int ssaa_mode = GLOBAL_DEF("rendering/quality/screen_filters/screen_space_aa", 0);
|
||||||
ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/screen_filters/screen_space_aa", PropertyInfo(Variant::INT, "rendering/quality/screen_filters/screen_space_aa", PROPERTY_HINT_ENUM, "Disabled,FXAA"));
|
ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/screen_filters/screen_space_aa", PropertyInfo(Variant::INT, "rendering/quality/screen_filters/screen_space_aa", PROPERTY_HINT_ENUM, "Disabled (Fastest),FXAA (Fast)"));
|
||||||
root->set_screen_space_aa(Viewport::ScreenSpaceAA(ssaa_mode));
|
root->set_screen_space_aa(Viewport::ScreenSpaceAA(ssaa_mode));
|
||||||
|
|
||||||
{ //load default fallback environment
|
{ //load default fallback environment
|
||||||
|
|
|
@ -5833,14 +5833,14 @@ RasterizerStorageRD::RasterizerStorageRD() {
|
||||||
sampler_state.min_filter = RD::SAMPLER_FILTER_LINEAR;
|
sampler_state.min_filter = RD::SAMPLER_FILTER_LINEAR;
|
||||||
sampler_state.mip_filter = RD::SAMPLER_FILTER_LINEAR;
|
sampler_state.mip_filter = RD::SAMPLER_FILTER_LINEAR;
|
||||||
sampler_state.use_anisotropy = true;
|
sampler_state.use_anisotropy = true;
|
||||||
sampler_state.anisotropy_max = GLOBAL_GET("rendering/quality/texture_filters/max_anisotropy");
|
sampler_state.anisotropy_max = 1 << int(GLOBAL_GET("rendering/quality/texture_filters/anisotropic_filtering_level"));
|
||||||
} break;
|
} break;
|
||||||
case RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC: {
|
case RS::CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC: {
|
||||||
sampler_state.mag_filter = RD::SAMPLER_FILTER_LINEAR;
|
sampler_state.mag_filter = RD::SAMPLER_FILTER_LINEAR;
|
||||||
sampler_state.min_filter = RD::SAMPLER_FILTER_LINEAR;
|
sampler_state.min_filter = RD::SAMPLER_FILTER_LINEAR;
|
||||||
sampler_state.mip_filter = RD::SAMPLER_FILTER_LINEAR;
|
sampler_state.mip_filter = RD::SAMPLER_FILTER_LINEAR;
|
||||||
sampler_state.use_anisotropy = true;
|
sampler_state.use_anisotropy = true;
|
||||||
sampler_state.anisotropy_max = GLOBAL_GET("rendering/quality/texture_filters/max_anisotropy");
|
sampler_state.anisotropy_max = 1 << int(GLOBAL_GET("rendering/quality/texture_filters/anisotropic_filtering_level"));
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
default: {
|
default: {
|
||||||
|
|
|
@ -2451,7 +2451,8 @@ RenderingServer::RenderingServer() {
|
||||||
GLOBAL_DEF("rendering/quality/depth_prepass/disable_for_vendors", "PowerVR,Mali,Adreno,Apple");
|
GLOBAL_DEF("rendering/quality/depth_prepass/disable_for_vendors", "PowerVR,Mali,Adreno,Apple");
|
||||||
|
|
||||||
GLOBAL_DEF("rendering/quality/texture_filters/use_nearest_mipmap_filter", false);
|
GLOBAL_DEF("rendering/quality/texture_filters/use_nearest_mipmap_filter", false);
|
||||||
GLOBAL_DEF("rendering/quality/texture_filters/max_anisotropy", 4);
|
GLOBAL_DEF("rendering/quality/texture_filters/anisotropic_filtering_level", 2);
|
||||||
|
ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/texture_filters/anisotropic_filtering_level", PropertyInfo(Variant::INT, "rendering/quality/texture_filters/anisotropic_filtering_level", PROPERTY_HINT_ENUM, "Disabled (Fastest),2x (Faster),4x (Fast),8x (Average),16x (Slow)"));
|
||||||
|
|
||||||
GLOBAL_DEF("rendering/quality/depth_of_field/depth_of_field_bokeh_shape", 1);
|
GLOBAL_DEF("rendering/quality/depth_of_field/depth_of_field_bokeh_shape", 1);
|
||||||
ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/depth_of_field/depth_of_field_bokeh_shape", PropertyInfo(Variant::INT, "rendering/quality/depth_of_field/depth_of_field_bokeh_shape", PROPERTY_HINT_ENUM, "Box (Fast),Hexagon (Average),Circle (Slow)"));
|
ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/depth_of_field/depth_of_field_bokeh_shape", PropertyInfo(Variant::INT, "rendering/quality/depth_of_field/depth_of_field_bokeh_shape", PROPERTY_HINT_ENUM, "Box (Fast),Hexagon (Average),Circle (Slow)"));
|
||||||
|
|
Loading…
Reference in a new issue