hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
10.84k stars 2.13k forks source link

What's the differences between the Spline/Bezier curves quality setting? #18503

Open WarmestKrafter opened 7 months ago

WarmestKrafter commented 7 months ago

There are three options (Low, Medium,High) for the Spline/Bezier curves quality setting, and I only knows about how the setting works, but never know the differences between them. I want a proper example of how does these options change the quality of the Spline/Bezier curves. I already tried to test some games that use the Spline/Bezier curves but they're hard for me to find an example from them.

LunaMoo commented 7 months ago

Spine/bezier curves when done via CPU have this quality setting, unfortunately nowadays it's used only for medium and high while low is on GPU and is affected by inaccuracy bugs like with hardware tesselation. The lower you go the less curvy the curves will get, however they'll be also lighter to emulate and some games use curves to draw squares so it's a free boost there.

Overall curves are used by just a tiny fraction of PSP library and curves related setting are not doing anything in majority of PSP games. Personally I'd stick to high, switching to medium only on weak hardware and avoid low and hardware tesselation due to it's bugs.

You can easily see quality setting in action in a game like Loco Roco and see bugs of hardware implementation in for example Test Drive Unlimited.

WarmestKrafter commented 7 months ago

Spine/bezier curves when done via CPU have this quality setting, unfortunately nowadays it's used only for medium and high while low is on GPU and is affected by inaccuracy bugs like with hardware tesselation. The lower you go the less curvy the curves will get, however they'll be also lighter to emulate and some games use curves to draw squares so it's a free boost there.

Overall curves are used by just a tiny fraction of PSP library and curves related setting are not doing anything in majority of PSP games. Personally I'd stick to high, switching to medium only on weak hardware and avoid low and hardware tesselation due to it's bugs.

You can easily see quality setting in action in a game like Loco Roco and see bugs of hardware implementation in for example Test Drive Unlimited.

What does it looks like when it set at medium quality? I only see high amd low quality.

LunaMoo commented 7 months ago

I tested and I think low quality doesn't work anymore for some reason at least it doesn't do anything for me and looks like medium quality. Maybe hardware tesselation broke as that shouldn't be affected by quality at all while it is now.

Low quality was very blocky like if Loco Roco's looked like potatoes in high(very round) and medium(very round, but noticeable points), on low it was like a potato that was peeled quickly via normal knife.

WarmestKrafter commented 7 months ago

I tested and I think low quality doesn't work anymore for some reason at least it doesn't do anything for me and looks like medium quality. Maybe hardware tesselation broke as that shouldn't be affected by quality at all while it is now.

Low quality was very blocky like if Loco Roco's looked like potatoes in high(very round) and medium(very round, but noticeable points), on low it was like a potato that was peeled quickly via normal knife.

I still don't understand why medium quality isn't the default option?

LunaMoo commented 7 months ago

Because while it's barely noticeable during gameplay, it is a slight downgrade to quality compared to real PSP and that's a no-no to default settings.

WarmestKrafter commented 7 months ago

Because while it's barely noticeable during gameplay, it is a slight downgrade to quality compared to real PSP and that's a no-no to default settings.

So why they don't make it to look like the real psp?

LunaMoo commented 7 months ago

But by default it is. It's on high, which is like on real PSP.

WarmestKrafter commented 7 months ago

But by default it is. It's on high, which is like on real PSP.

What does that mean?

LunaMoo commented 7 months ago

What does what mean? Curves on real PSP were very cheap, they aren't on all modern hardware, but when it comes to looks, you should see same roundiness on PSP as with PPSSPP and curves set to high.

On a side note I think I was wrong about hardware tesselation being buggy, it's probably hardware or driver dependant as it doesn't appear to be anything on PPSSPP side changing from a long time and I just never retested after switching my OS/GPU/Drivers, which still means it can be buggy, but might as well not depending on your device.

anr2me commented 7 months ago

May be showing the difference using illustration might be better for common users :) I couldn't found an illustration that shows the difference between Low and High, but i think it's affects the number of control points (the dots) in this illustration (ie. High have more dots)

image

PS: Correct me if i'm wrong :)

hrydgard commented 7 months ago

It's really a very tricky setting to explain to users, especially since its so few games where it matters and differences can indeed be hard to perceive. I'd really like to just remove the setting and default to whatever makes sense on the hardware and API, but there's always gonna be some edge cases where you'd like another mode..