Commit graph

79 commits

Author SHA1 Message Date
Christoph Oelckers
cd7986b1b1 - refactored global sides array to be more VM friendly.
- moved FLevelLocals to its own header to resolve some circular include conflicts.
2017-01-08 18:46:17 +01:00
Christoph Oelckers
c02281a439 - refactored the global sectors array into a more VM friendly type and moved it into FLevelLocals. 2017-01-07 19:32:24 +01:00
Christoph Oelckers
1a16f664e4 - added a TStaticArray class that allows safe access to resizable static data (like the sectors, linedefs, etc.) for the VM.
- used this to replace the line list in Sector because that gets already used and implemented proper bounds checks for this type of array.
2017-01-02 21:40:52 +01:00
Christoph Oelckers
17698467d7 - made application of dynamic lights to additively blended surfaces a MAPINFO option. In most cases this is not wanted but sometimes this can be used to good effect so it should be there as an option. 2016-12-06 12:58:45 +01:00
alexey.lysiuk
7510ad1635 Fixed missing fake floors in deferred buffer mode
wow.wad is now genuine and authentic...
2016-10-11 14:56:22 +03:00
Christoph Oelckers
4eb5f10b02 - use normals to have proper light attenuation. So far only implemented for walls and flats. Models are planned but need some thinking about how to efficiently collect all required lights for an object. 2016-10-03 16:09:32 +02:00
Christoph Oelckers
8b6e09ca09 - changed the license of the OpenGL renderer to LGPL v3.
This was done to clean up the license and to ensure that any commercial fork of the engine has to obey the far stricter requirements concerning source distribution. The old license was compatible with GPLv2 whereas combining GPLv2 and LGPLv3 force a license upgrade to GPLv3. The license of code that originates from ZDoomGL has not been changed.
2016-09-14 20:01:13 +02:00
Christoph Oelckers
b9ca3c85f8 - fixed: translucency detection in multipatch textures did not work.
- fixed: The flat drawer never checked if a texture had translucent parts.
2016-09-08 12:18:09 +02:00
Christoph Oelckers
e7856ce1e3 - removed unused forceadditive parameter from gl_GetLight.
- restricted gl_lights_additive to legacy code and removed menu entry for this.

For modern hardware this setting is completely pointless, it offers no advantage and degrades visual quality. Its only reason for existence was that drawing additive lights with textures is a lot faster, and that's all it's being used for now.
2016-09-04 12:35:26 +02:00
Christoph Oelckers
3389a5a74e - removed most of the specific options for legacy hardware and consolidated them in one variable (does not work yet.) 2016-09-01 11:52:52 +02:00
Christoph Oelckers
c9578ae72d - create vertex buffer data for horizon portals in the constructor instead of in the draw function.
This was the last remaining place where the vertex buffer was accessed in the render pass.
2016-08-26 18:18:50 +02:00
Christoph Oelckers
abba548e40 - render sector hacks through the quad renderer if the vertex buffer is not accessible. 2016-08-26 02:03:24 +02:00
Christoph Oelckers
f6544f3c44 - removed unused GLFLat::sub and all codes depending on it a valid pointer. 2016-08-26 00:04:29 +02:00
Christoph Oelckers
6755cb2a25 - use the quad drawer for skybox-flagged sectors. 2016-08-26 00:02:32 +02:00
alexey.lysiuk
a185886924 Added compatibility handling for fog and dynamic lights used together
See http://forum.drdteam.org/viewtopic.php?t=7063
2016-08-24 10:26:11 +03:00
Christoph Oelckers
5017a192eb - fixed: The texture matrix was not reset after drawing the texture pass for multipass textured dynamic lights. 2016-05-19 12:22:39 +02:00
Christoph Oelckers
13da14e915 - disable dynamic lights on additively blended surfaces because it doesn't look good at all. 2016-05-18 22:20:18 +02:00
Christoph Oelckers
15c711f2a1 - added a missing break in the wall draw dispatcher. 2016-05-09 00:58:55 +02:00
Christoph Oelckers
d5eb1008a4 - implemented texture overlay pass for textured dynamic lights. 2016-05-08 22:07:18 +02:00
Christoph Oelckers
0b2821d696 - added dynamic light rendering with textures on flats 2016-05-05 10:28:21 +02:00
Christoph Oelckers
4412f99b38 - added the flat dispatcher for textured lighting. 2016-05-04 23:07:16 +02:00
Christoph Oelckers
09f54b0940 - cleaned up the clip plane management for portals.
Unfortunately the math behind the old clip planes is utterly impenetrable and so poorly documented that I have no idea how to set that up, so it is deactivated for now. It wasn't working anyway.
2016-04-27 00:41:00 +02:00
Christoph Oelckers
090d13b915 - updated gl_interface to deal with older GL versions.
- added the framework for allowing multipass textured dynamic lights again.
2016-04-26 15:20:26 +02:00
Christoph Oelckers
22b7a38539 - fixed incorrect sky texture check with Transfer_Heights. The actual sector was checked, not the one created by gl_FakeFlat. 2016-04-24 14:17:06 +02:00
Christoph Oelckers
f77c4642cb - made the adjustments. 2016-04-24 13:35:43 +02:00
Christoph Oelckers
1c7b512cc0 - GL handling of new portal data organization.
This also fixes some oversights with plane and horizon portals which were included in several checks.
2016-04-20 20:08:53 +02:00
Christoph Oelckers
8a010ab871 - allow 90° rotations in skybox sectors. 2016-04-17 11:58:26 +02:00
Christoph Oelckers
a0a530945d - added new sector type 90 which designates a sector that is being used as a cubemapped skybox, in case someone wants to make one of those without using an actual sky for this. 2016-04-14 13:22:15 +02:00
Christoph Oelckers
485a1bd0a5 - fixed: The 3D-floor plane renderer mixed float and fixed point. 2016-04-07 16:25:30 +02:00
Christoph Oelckers
a0d0d9339e - fixed some uninitialized stuff in particle rendering.
- added gl_ClampLight to all places where the light level is set.
2016-04-06 14:03:21 +02:00
Christoph Oelckers
5a2eac8f15 - floatified vertices and removed the now redundant fx and fy members. This needs an added check for polyobject origins, though, so that such subsectors don't get rendered. 2016-04-03 11:40:14 +02:00
Christoph Oelckers
af78937a15 - updated GL renderer. 2016-04-02 23:17:16 +02:00
Christoph Oelckers
c6ada2397c - adjustments. 2016-03-31 09:50:59 +02:00
Christoph Oelckers
cf44d2e37a - adjustments. 2016-03-30 20:01:44 +02:00
Christoph Oelckers
59bb003285 - GL adjustments for plane changes. 2016-03-29 13:45:50 +02:00
Christoph Oelckers
b54b34a512 - adjustments for floating point changes. 2016-03-21 02:57:02 +01:00
Christoph Oelckers
365c192a1d - added portal support for dynamic lights.
This requires fixed offsets so it only works with linked portals.
2016-03-08 21:22:12 +01:00
Christoph Oelckers
ee18fdeb83 - fixed: Visplane merging should not be done for linedef based portals. 2016-02-28 10:10:01 +01:00
Christoph Oelckers
387f3dd03a - fixed compile errors due to changes in ZDoom. 2016-02-25 13:06:13 +01:00
Christoph Oelckers
bd9907f20f - missing #includes in GL code. 2016-02-16 22:06:26 +01:00
Christoph Oelckers
9608252873 - copied over some stuff from the abandoned portals branch. 2016-02-15 13:11:31 +01:00
Christoph Oelckers
d037493ffe - fixed handling of FF_FADEWALLS on 3D floors. The problems with the old method became quite obvious in the demo map after the light list bug got fixed. 2016-01-29 17:13:14 +01:00
Christoph Oelckers
5816049510 - made necessary adjustments for the coordinate refactoring in ZDoom. 2016-01-21 12:36:37 +01:00
Christoph Oelckers
a5a53c51e6 - fixed: The flat drawing code assumed that the first element of the light list originated from the sector itself. This had been true formerly but in some situations it no longer is. 2015-02-10 21:52:19 +01:00
Christoph Oelckers
eb753a0b7c - fixed: We also should use the proper 'copied' info for the non-inverted planes. 2014-11-27 10:49:03 +01:00
Christoph Oelckers
99d81621f9 - fixed: The 'copied' information of a 3D floor plane should only apply to that particular plane, but never the opposite one of the same 3D floor. 2014-11-27 10:46:28 +01:00
Christoph Oelckers
bca47bb9bc - removed debug code.
- fixed: planes that are created by splitting translucent 3D-floors may never be rendered.
2014-10-23 17:35:58 +02:00
Christoph Oelckers
4bb320a27c - route texture binding through the renderstate class for better control. Currently it's just a direct passthrough but this will change. 2014-09-09 12:00:42 +02:00
Christoph Oelckers
b96dd6c421 - fixed: The missing fourth component of the texture coordinate must be filled with 1.0, not 0.0 before applying the texture matrix. Not doing so will cancel out the translation part of the matrix. 2014-09-02 10:31:48 +02:00
Christoph Oelckers
49ec7beb8f - separate draw lists for walls and flats. This makes the sorting much more efficient because draw types no longer need to be checked in the compare function. This is a lot more important than having perfect texture order. 2014-08-30 13:04:41 +02:00