Commit graph

12 commits

Author SHA1 Message Date
alexey.lysiuk
7d88e2ec6b - fixed compilation with GCC 5 and newer
src/r_data/a_dynlightdata.cpp:72:44: error: no matching function for call to ‘FSerializer::Array(const char [5], int [5], int, std::nullptr_t)’
2019-07-07 11:51:34 +03:00
Christoph Oelckers
1dcbe43d95 - User definable dynamic lights
This hasn't been tested yet!
2019-06-28 12:35:42 +02:00
Christoph Oelckers
9f7fe203fc - had to fix a few things. 2019-02-02 17:29:13 +01:00
Christoph Oelckers
4af5ea25c1 - change per-level attenuation of dynamic lights for each viewpoint.
To avoid unnecessary work, the current state is tracked.
2019-01-29 20:09:06 +01:00
Christoph Oelckers
b4acb857ad - the final batch of easy level replacements.
What's left will require a bit more work...
2019-01-27 21:59:19 +01:00
Christoph Oelckers
8da1b5c1b0 - properly handle passing of the light flags.
Since these can be changed on the placed light actor they have to be read from there, so this is now a pointer in FDynamicLight, just like the other properties that can be user-changed.
Also did some cleanup on the interface so that external code doesn't need to dereference the lightflags pointer but can use utility functions for all flags.
2019-01-03 09:24:22 +01:00
Christoph Oelckers
d654e02dea - rewrote dynamic lights to not use actors for the internal representation and made DynamicLight a purely scripted class.
This should be less of a drag on the playsim than having each light a separate actor. A quick check with ZDCMP2 showed that the light processing time was reduced to 1/3rd from 0.5 ms to 0.17 ms per tic.
It's also one native actor class less.
2019-01-01 19:35:55 +01:00
alexey.lysiuk
3212da8fcf Cleaned up #include's in dynamic lights code 2018-04-19 11:12:29 +03:00
Christoph Oelckers
e77cba1fd8 - added a 'lightsizefactor' command to gldefs.
This is for mitigating the recently discovered problem with attenuated lights getting reduced in size, even on OpenGL 3+. The intent of the shrinking was to account for higher brightness of non-attenuated lights on OpenGL 2 and was never meant to be active on more modern versions.
The factor will apply to any attenuated light defined after it and will be inherited by included sub-lumps, but it will only last for the lunp it is set in.

If you have a definition for the broken behavior, AddLightAssociation

'lightsizefactor 0.667' at the top of your GLDEFS.
2018-04-18 22:15:06 +02:00
Christoph Oelckers
df4f435952 - merged vid_renderer, swtruecolor and r_polyrender into one CVAR to reduce menu clutter.
- with renderers freely switchable, some shortcuts in the 3D floor code had to be removed, because now the hardware renderer can get FF_THISINSIDE-flagged 3D floors.
- changed handling of attenuated lights in the legacy renderer to be adjusted when being rendered instead of when being spawned. For the software renderer the light needs to retain its original values.
2018-04-07 23:30:28 +02:00
Christoph Oelckers
1fc4c9801b - moved all GLDEFS parsing into a dedicated source file.
- split gl_postprocessshader.h in two so that the hardware independent part can be used by GLDEFS without pulling in all of OpenGL.
2018-04-02 12:28:20 +02:00
Christoph Oelckers
7083103a0e - moved dynlightdata to r_data 2018-04-02 09:51:51 +02:00
Renamed from src/g_shared/a_dynlightdata.cpp (Browse further)