godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.12k stars 69 forks source link

Set default 3D material sampling method to Linear Mipmap Anisotropic #3134

Open mrjustaguy opened 3 years ago

mrjustaguy commented 3 years ago

Describe the project you are working on

Unrelated to any specific project

Describe the problem or limitation you are having in your project

Currently, by Default Anisotropic Filter does nothing with Default settings, despite being 4x, because Texture Sampling Default is Linear Mipmap, instead of Linear Mipmap Anisotropic.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

It Makes sense to have Linear Mipmap Anisotropic as the Default Sampling setting, so that by Default Anisotropic Filtering takes effect, and you can easily just disable Anisotropic Filtering in Project Settings.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

Just Change Default Sampling to Linear Mipmap Anisotropic

Do note this is most relevant in Godot 4 where Sampling is a part of Materials and not done on Import like in Godot 3

If this enhancement will not be used often, can it be worked around with a few lines of script?

Yes, you can set it in a Material, for each one.

Is there a reason why this should be core and not an add-on in the asset library?

This is a Logical Correction to a Core setting.

jfaz13 commented 2 years ago

At the very least there should be a rendering project setting to set the default 3D material sampling setup, like with decals/canvas textures.

Calinou commented 2 years ago

At the very least there should be a rendering project setting to set the default 3D material sampling setup, like with decals/canvas textures.

I started work on adding a default BaseMaterial3D texture filter project setting: https://github.com/Calinou/godot/tree/basematerial3d-add-default-texture-filter

The way it's implemented isn't ideal though, as it'll require restarting the project/editor to apply (once I can get it to compile). Still, it's better than nothing.

jfaz13 commented 2 years ago

I started work on adding a default BaseMaterial3D texture filter project setting: https://github.com/Calinou/godot/tree/basematerial3d-add-default-texture-filter

Great! I think it's fine, better than having to apply it manually to dozens of materials. There's already other rendering settings that require a restart so not a big deal.