Commit graph

80 commits

Author SHA1 Message Date
alexey.lysiuk
9ab9548723 Additional fix for splitting of complex wall in compatibility renderer
warp 2720 -200 -32 on Extreme Terror
https://www.doomworld.com/idgames/levels/doom2/Ports/d-f/exterror
2016-08-08 12:19:37 +02:00
alexey.lysiuk
924b8105c5 Fixed splitting of complex walls in compatibility renderer
Example: +warp 2720 -200 -32 on Extreme Terror
https://www.doomworld.com/idgames/levels/doom2/Ports/d-f/exterror
2016-06-29 12:34:35 +02:00
alexey.lysiuk
56ce6abbc2 Fixed splitting of walls in compatibility renderer
Any wall adjacent to 3D floor sector were not rendered at all
2016-06-05 12:38:23 +03:00
Christoph Oelckers
2b92048a5b - renamed the texture coord variables in GLWall.
It makes no sense having them organized differently in this struct than what the rendering code needs. This saves one redundant copy operation and a function-local static variable.
2016-05-05 11:48:39 +02:00
Christoph Oelckers
ec7b4b1ba4 - initial work on textured dynamic light processing. 2016-05-04 22:14:39 +02:00
Christoph Oelckers
0a94371974 - reinstated old code for rendering fog boundaries and mirrot surfaces without shaders.
- added code for filling the render list for textured dynamic lights. This is not yet active because no code is present to handle this data.
2016-05-03 23:28:42 +02:00
Christoph Oelckers
ec037bfd1a - fixed: The check for one-way portals in the renderer was incomplete. 2016-05-02 19:47:27 +02:00
Christoph Oelckers
51991ef22d * - render partial sprites on the front side of a portal for actors behind it. 2016-04-30 23:18:37 +02:00
Christoph Oelckers
b06c86db38 - added old wall splitting code as a fallback for old hardware. 2016-04-26 21:42:15 +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
f77c4642cb - made the adjustments. 2016-04-24 13:35:43 +02:00
Christoph Oelckers
a17e0b70d2 - adjustment for function name changes. 2016-04-23 11:38:33 +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
1f32f5a258 - some minor fixing and cleanup on gL portal code. 2016-04-20 11:39:41 +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
caf80e74c4 - fixed multiplication/division mixup in TextureAdjustWidth.
- fixed: For top textures an incorrect ceiling height was passed to DoTexture.
2016-04-13 23:09:45 +02:00
Christoph Oelckers
d0b30f31e1 - fixed: Checking for slopes at untextured bottom parts of the wall checked the ceiling's slope not the floor's. 2016-04-13 11:41:51 +02:00
Christoph Oelckers
7a7e1652fc - fixed: lower textures used the wrong reference height for alignment 2016-04-09 21:06:32 +02:00
Christoph Oelckers
3e94832bfd - use the correct reference heights for positioning textures. 2016-04-08 01:58:13 +02:00
Christoph Oelckers
4d5671d654 - floatified the texture coordinate code. 2016-04-08 01:42:43 +02:00
Christoph Oelckers
eaf055dff4 - floatified the remaining parts of gl_walls.cpp. 2016-04-08 00:19:51 +02:00
Christoph Oelckers
4ac3734375 - floatified more of gl_wall.cpp. 2016-04-07 23:19:37 +02:00
Christoph Oelckers
ee3e3e35e6 - partial floatification of wall texturing code. 2016-04-07 17:00:13 +02:00
Christoph Oelckers
603af1bb92 - compile bug in gl_sprite and some optimization in gl_walls.cpp 2016-04-03 22:13:38 +02:00
Christoph Oelckers
58eb64a7e0 - fixed a few fixed/float parameter mixups. 2016-04-03 12:54:47 +02:00
Christoph Oelckers
8a20f901a3 - removed the non.slope special handling in the wall processing code.
This may have made some sense when I added this 11 years ago but on a current computer it actually hurts performance a bit due to the branching that is involved - the code runs a bit faster with those special cases removed.
2016-04-03 02:07:37 +02:00
Christoph Oelckers
af78937a15 - updated GL renderer. 2016-04-02 23:17:16 +02:00
Christoph Oelckers
a27181cb0b - partial adjustments.
No point changing all the viewx/y/z stuff when that is about to get floatified next.
2016-03-31 21:42:27 +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
cadd8f2d4a - made adjustments for changes to linedef delta. 2016-03-29 16:31:58 +02:00
Christoph Oelckers
59bb003285 - GL adjustments for plane changes. 2016-03-29 13:45:50 +02:00
Christoph Oelckers
a87c292f10 - adjustments to GL code for texture scale and vertex coordinate access. 2016-03-29 11:26:33 +02:00
Christoph Oelckers
dbd89c2702 - refactoring of portal grouping for the renderer, to allow more efficient clipping. 2016-03-04 14:10:13 +01:00
Christoph Oelckers
bd9907f20f - missing #includes in GL code. 2016-02-16 22:06:26 +01:00
Christoph Oelckers
c69fd3ac80 - removed redundant SKYBOX enum. 2016-02-16 10:14:37 +01:00
Christoph Oelckers
9608252873 - copied over some stuff from the abandoned portals branch. 2016-02-15 13:11:31 +01:00
Christoph Oelckers
141065c3d5 - fixed: positioning of camera textures on 2-sided walls was not correct. 2016-02-14 14:33:52 +01:00
Christoph Oelckers
6a408b1a99 - added missing include to gl_walls.cpp 2016-02-10 20:49:06 +01:00
Christoph Oelckers
7105a87a1e - fixed retrieval of mapsection for polyportals.
- render wall portals on one sided lines.
2016-02-06 19:19:18 +01:00
Christoph Oelckers
3683a8ac58 - implemented line-to-line portal rendering. So far working for two-sided portal lines - one-sided yet to come. 2016-02-06 12:32:47 +01:00
Christoph Oelckers
297cf52ac9 - copied line portal code from portal branch and made some adjustments to make it compile. Portal rendering is not yet working. 2016-02-06 05:17:47 +01:00
Christoph Oelckers
b2158c5b96 - removed unneeded parameter. 2016-02-05 01:48:53 +01:00
Christoph Oelckers
c129cb3ca4 - reinstated software clipping by light volumes for walls.
It turned out that using hardware clipping planes exclusively to handle this cost more than it gained.
Now only the expensive or formerly impossible cases of intersecting light volumes or light volumes intersecting with the top and bottom of the wall polygon will use hardware clipping. The trivial cases will go back to software splitting.
2016-02-04 15:34:12 +01:00
Christoph Oelckers
67fc35e738 - some cleanup of wall processing code.
* removed SplitWall function
 * split PutWall into PutWall and PutPortal because none of the portal cases needs the overhead for normal walls.
2016-02-01 01:49:49 +01:00
Christoph Oelckers
9305cd86a0 - remove the GLWallLightEntry type. Everything it contains can be retrieved from the existing lightlist just as easily, and this approach avoids a lot of memory allocations.
- removed the SplitWall profiling timer because all it measures now is an almost empty function.
2016-02-01 01:03:34 +01:00
Christoph Oelckers
53a389aafc - fixed: for untextured walls, the texture must be disabled before rendering.
- fixed: untextured walls should never be passed to SplitWall.
- fixed: untextured walls should not be affected by dynamic lights (it's either fog boundaries or outsides of 3D fog volumes.)
2016-01-31 22:24:48 +01:00
Christoph Oelckers
9ce6a7932c - implemented rendering of 3D lights with clip planes. 2016-01-31 22:04:20 +01:00
Christoph Oelckers
5448b335c6 - rewrote render loop for walls. Not working yet. 2016-01-31 21:10:59 +01:00
Christoph Oelckers
1d9ab5c632 - clean out GLWall::SplitWall and instead of actually splitting the wall just attach a list of lights to it.
Actual handling will be in the rendering function because this doesn't need multiple vertex transfers to the GPU. All slices can be drawn from the same buffer with different uniform info being set.
2016-01-31 00:45:29 +01:00