fabiangreffrath / crispy-doom

Crispy Doom is a limit-removing enhanced-resolution Doom source port based on Chocolate Doom.
https://fabiangreffrath.github.io/crispy-homepage
GNU General Public License v2.0
802 stars 132 forks source link

Possible new "Display options" menu #231

Closed JNechaevsky closed 6 years ago

JNechaevsky commented 7 years ago

Maybe it will be a good idea to replace "Screen size" item in main menu to whole new page with bunch of elements. It also will be a good place for adding new graphical features thats are planned, I'll also suggest some below. Some of them may be interesting, some not, so let's just say: "any idea is better than no idea". And as always, everything at your discretion.

"Display" title can be drawn through in-iwad M_DISP lump (not sure about BFG Edition, can't check right now). Mockup of first page:

Suggested menu elemets:

Here goes few ideas. Just need to keep in mind, that menu will look proper only with following logic - slidered elements first/top, toggable elements second/below. No need to mix it.

Suggestion №77

fabiangreffrath commented 7 years ago

Hi @JNechaevsky , thank you very much for this idea. In fact, I have already played the thought to introduce a "Rendering" section on the first page of the Crispness menu. This would contain the switches for Truecolor rendering, uncapped framerate and smooth scaling. Honestly, all the items you suggested for the second page seem somewhat "over-engineered" to me. ;)

Let me add comments to some of the items you suggested:

Screen size

This already has its own slider in the top-level menu and I 'd like to avoid cluttering Doom's classical menu as little as possible.

Brightness

My current WIP truecolor code uses gamma in the same way as the paletted renderer. I am not sure if hardware gamma will work on all supported platforms and also in windowed mode at all? Also, there is already a well-known key for that and thus I am not going to add a menu entry.

Truecolor rendering

Will be able to toggle in-game and be disabled by default (of course).

Smoothing

Is already implemented in the features branch and works like a charm in-game.

Field of view

This is a neat idea, but a major effort throughout the entire rendering code.

Wipe speed / Wipe method

Isn't the number of gametics that a swipe takes demo-critical?

Maximum visible sprites

Sure but why? How is the average player supposed to know what's a reasonable value for this?

Text shadows

I think I have already found a reasonable default setting, not?

Diminished lightning

What's that?

Fake contrast

The "smooth" variant has been removed for now, as it blended certain pixels (!) on distant walls that speedrunners may use for alignment before rocket jumps. I consider making it the default in truecolor mode (because then, pixels on distant wall will look differently anyway).

BSP tree view

Sorry, what?

HOM indication

Removed as the command line option that nobody used, but still available via the TNTHOM cheat.

JNechaevsky commented 7 years ago

Oh... But well, it is good that no additional work should be in this direction. :)

Truecolor rendering Will be able to toggle in-game and be disabled by default (of course).

I wonder why I still haven't checked it out. Is it available in the "features" branch? Should I start to test it?

Field of view This is a neat idea, but a major effort throughout the entire rendering code.

Doh, I forgot a little bit how actually whole screen picture is building...

Wipe speed / Wipe method Isn't the number of gametics that a swipe takes demo-critical?

I honestly don't know. All I know here - if there is no wipe at all, it does not affect demo synchronization. But am I wrong by thinking that demo is actually not starting until wipe effect fully passes?

Maximum visible sprites Sure but why? How is the average player supposed to know what's a reasonable value for this?

Probably average is Crispy's current. From another hand, this feature is really necessary for ports like (G)ZDoom, where some really bloodbath mods exist.

Text shadows I think I have already found a reasonable default setting, not?

Well, sure, but you know how highly I'm addicted on shadows, so I was not planning to easily give up and say "well, sure". :)

Diminished lightning What's that?

It's a light levels, that's, roughly speaking, becomes more darken in far from player and brighten near player. Here's a screenshot to make myself more clear. AFAIK, there is a variable in the code that naming them, but I can't remember it.

BSP tree view Sorry, what?

Here, take look at examples: one and two. Again, this feature will not give any useful information, but may interesting in technical POV, just to see the "skeleton" of the level.

JNechaevsky commented 7 years ago

Diminished lightning

Ah, yes, remembered one more idea. I still can't remember how these light levels are named in the code (sorry), but maybe it will be looking good, if true color mode will have more levels, for making transition from-light-to-dark more smoothened. Something like this, before and after:

fabiangreffrath commented 6 years ago

I will probably have to add another Crispness menu page that is dedicated to Rendering options. I will close this request whenever that happens, as I don't want to "pollute" Doom's menu with another Crispy-specific sub-menu.

fabiangreffrath commented 6 years ago

Which of the current "Visual" features should get moved to the "Rendering" menu once it is available?

SoDOOManiac commented 6 years ago

Rendering Framerate and Smooth Scaling, I think.

fabiangreffrath commented 6 years ago

Yes, definitely!

"High Resolution Rendering" will follow (and then "True-Color Rendering"). "Smooth Diminishing Lighting" will soon be another item for the "Visual" menu and "Number of sound Channels" for the "Audible" one.