Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
111 stars 0 forks source link

Add a way to override max texture settings on a per texture basis #1979

Closed Epimonster closed 3 weeks ago

Epimonster commented 3 weeks ago

Is your feature request related to a problem? Please describe.

If I have a texture that needs to be a specific resolution there is no way to force it to always be that resolution since all methods can be overridden with texture settings.

An example of when this may be required is for textures that store data and are read via flux nodes. If they are decreased in size it will corrupt the data and break readback (Tested).

In addition there may be cases in a map where a shader effect relies on a specific resolution and changing that resolution can cause extreme deviations from the intended look (more than decreasing graphics settings would regularly).

Describe the solution you'd like

My first solution would be if a static texture has an explicit max texture size configured that overrides the setting.

Describe alternatives you've considered

As an alternative a new tickbox could be added called "ignore max texture size".

Additional Context

Enabling direct load does override the texture's size but it introduces a number of other caveats that make this still warrant a request in my opinion.

Requesters

Gareth48

ShrikeAlvaron commented 3 weeks ago

I understand the use cases for this but I’m worried that if such an override existed, people would use it in cases where it’s really not needed, like forcing 4k+ textures on their avatar or world environments and thus ultimately reduce the actual use of having the limiter in the first place.

Dusty-Sprinkles commented 3 weeks ago

If needing to do protoflux on a specific texture resolution is required, would there maybe be a way to run the flux locally to the host and then deliver the result to the players where it can be downscaled to match their settings without significantly altering the look?

I think if that isn't possible already it might work better here and be less impactful to other players

FlameSoulis commented 3 weeks ago

Using textures as ROM. Hmm... I really like that idea, and I get why it breaks in this situation. But equally, I do agree with what Shrike brought up, where if it can be disabled by force, then people will abuse it.

I'm not sure what can really be done about this, as I can also see a situation where user A is running on 'low' and user B is running on 'high,' and such a data check will differ between the two users due to local differences.

ohzee00 commented 3 weeks ago

I do think Readable textures shouldn't be affected by the texture resolution settings, if that is possible. That would solve one of the issues here.

Epimonster commented 3 weeks ago

I understand the use cases for this but I’m worried that if such an override existed, people would use it in cases where it’s really not needed, like forcing 4k+ textures on their avatar or world environments and thus ultimately reduce the actual use of having the limiter in the first place.

Yeah I agree there's the likelihood some people will use this to circumvent the limitation in less than ideal places. However in my eyes this is a similar situation to leaving texture compression to be controllable by the user. Also as I mentioned you can already bypass it with directload but the cost of enabling that is much worse than implementing a tick box like this would be. So people who are sufficiently motivated already have a higher cost method of bypassing this.

Also just in general I think this is an important tool to expose to world creators who might implement their own settings or need specific limitations. Like most things it'll come down to good education to guarantee its not abused.

BlueCyro commented 3 weeks ago

Being able to define overrides that enforce a certain look will be important for world creators down the line. For instance, if a particular texture in a world I create is required to be readable for the world to work properly, then being able to enforce a static size for it via the max texture size property on the provider itself would be ideal.

PointerOffset commented 3 weeks ago

This is a double-edge sword but, as has been stated in other comments, there's already other ways users could make less-than-optimal use of texture settings. There will definitely be situations where a specific texture resolution is needed to achieve a visual effect. IMO it's up to content creators to carefully use such settings.

In the case of readable textures there definitely should be a way to bypass the user's texture size settings if possible. At the very least that should be reliable.

Frooxius commented 3 weeks ago

This is something I planned to add anyways.

There is potential for abuse, but that comes with pretty much every tool, so I don't think we need to worry too much about this one specifically. Even if this wasn't added, there's lots of different ways for users to abuse things and make un-optimized content.

My perspective is that it's better to have the tools and then battle misuse with information and feedback on content - you notice someone is doing this, you give them feedback.

We might also add additional overrides as well, like per-texture / user ones too and so on.

Frooxius commented 3 weeks ago

This has been added in 2024.5.7.505! THanks!