DaemonEngine / Daemon

The Dæmon game engine. With some bits of ioq3 and XreaL.
https://unvanquished.net
BSD 3-Clause "New" or "Revised" License
304 stars 60 forks source link

Renderer: unused features, untested features, and unported features #662

Open illwieckz opened 2 years ago

illwieckz commented 2 years ago

One a side note of this:

Remove sunShader and flareShader. They are only used in ET and not actually used anywhere in the engine. They just spam us.

I would like to know what those features were for and if we can benefit from them.

We have many things that are not working and because we don't use them no one fixes them or port them, and with time they just get deleted.

I would like to nuke the old forward renderer one day, but then we would nuke code we want to port.

The only successful feature restoration and fix (XreaL was wrong) I know was the parallax mapping stuff:

Screenshot with working water texture from 2012 (Citadel map):

water

ghost commented 2 years ago

we have water code,

would be nice to have. None of unv's official maps really use water, but several trem maps do.

we have direct sunlight but no one knows if it had ever worked once, and it has to be ported over the tiled renderer.

Most maps from trem and unv that unv are don't really feature exteriors, or they're a detail. I think this could be dropped.

we have dynamic shadows

Current stuff is to use blobs. It's quite ugly, though, so I'd say real shadows would be nice, but we can live without it, I guess.

Of course, this is the PoV of a player only, as I don't hack the engine.

illwieckz commented 2 years ago

On the other hand people may start to use features once they work.

And we know that: Unvanquished maps do not rely on darkness because we don't have a proper way to render nice dark lightmaps (either HDR, either sRGB). That's the perfect example of “things that looks bad are avoided”.

illwieckz commented 2 years ago

Here is an example of how looks ATCS (not HD) map on Q3 tremulous mod on ioquake3 with classic lighting:

ioquake3 tremulous atcs forcesun

Here is an example of how looks ATCS (not HD) map on Q3 tremulous mod on ioquake3 with r_forceSun 1:

ioquake3 tremulous atcs forcesun

Also not that it does not benefit from specular/normal/relief mapping here as none of this is implemented.

DolceTriade commented 2 years ago

Wow this would be really cool to have in Unv, what features are being used there?

illwieckz commented 2 years ago

Both maps are legacy maps done the Quake 3 way without any other fanciness we may support.

illwieckz commented 2 years ago

Current stuff is to use blobs.

@bmorel other options are not listed in menu on purpose because they are broken AND they are supposedly not compatible with our new renderer anyway. Because the old renderer isn't used it isn't tested and it may be broken because it rots while we edit other things in newer renderer.

You can see some examples of nice shadows on those screenshots from 2014/2015 (alpha 34, 41, 42):

dynamic shadows dynamic shadows dynamic shadows

DolceTriade commented 2 years ago

Shadows was always on our wishlist and we never got them working because we never had a performant dynamic light implementation. We no longer have anyone with real graphics expertise (maybe slipher? :D)

illwieckz commented 2 years ago

We may want to summon @gimhael, @Amanieu and @cmf028! 😁️

@Kangz has good graphics expertise too, but I would prefer to see him focusing on the port from NaCl to Wasm. 😉️

I remember @cmf028 even had a work-in-progress raytracing code (2019). 😲️

raytraced lightmap

There was also some experiment about lightmap filtering (2019):

lightmap filtering

About shadows, see also https://imgur.com/hVxHh,ZnLTa,YIRTN (2012):

dynamic shadows

DolceTriade commented 2 years ago

If we can summon some of our older devs, that would be amazing :D

slipher commented 1 month ago

Apparently at some point, a subset of non-blob shadows were made to work while tiled mode was enabled, by just using the forward lighting code for them. Specifically, "inverse dynamic lights" which are added by the cgame for players and buildables. a09f03bc8e775d83ac5e057593eff4e88cdea7eb

VReaperV commented 6 days ago

Remove sunShader and flareShader. They are only used in ET and not actually used anywhere in the engine. They just spam us.

I saw some flare code somewhere, I wonder if it's leftover from that and should be removed...