Commit graph

63 commits

Author SHA1 Message Date
Christoph Oelckers
9d36e61d3f - depth bias fixes. 2021-06-09 00:47:13 +02:00
Christoph Oelckers
a32489be31 - wall sprite positioning tweaks.
Turns out that a distance of one Build unit from a wall alone is not enough to render them glitch-free, some depth bias is still needed.
2021-06-09 00:31:54 +02:00
Christoph Oelckers
3c5ef9c8e6 - properly render geometry that's fully shrouded in fog. 2021-06-01 21:48:39 +02:00
Christoph Oelckers
264d42179e - optimized the wall drawer a bit to avoid repeated calls to the render API's deoth bias function.
The setters in FRenderState should check if the value actually changes and the wall drawer should only call it for non-translucent wall sprites.
2021-05-21 19:07:22 +02:00
Christoph Oelckers
f7a424cd06 - fixed precision issues with GetClosestPointOnWall for orthogonal lines.
The math failed for some large wall sprites (e.g. Blood E2M4, sprite #181), and in orthogonal cases it is better anyway to perform direct checks of the coordinates
2021-05-21 18:25:30 +02:00
Christoph Oelckers
079a95a0a3 - use a higher depth bias for non-orthogonal wall sprites.
Due to minor angular inaccuracies they are more sensitive to z-ordering than orthogonal ones when things are closely stacked.
2021-05-21 14:32:01 +02:00
Christoph Oelckers
5cfd810311 - new renderer: take fog properties for walls and ceilings from the proper elements. 2021-05-20 19:17:21 +02:00
Christoph Oelckers
b5358bc03c - fixed typo in wall sprite offsetting code. 2021-05-20 18:25:19 +02:00
Christoph Oelckers
d4eb54d686 - render free standing wall sprites without depth bias.
Otherwise they can end up badly ordered with walls.
2021-05-20 12:36:35 +02:00
Christoph Oelckers
a348508779 - handle the wall sprite clipping properly. 2021-05-16 16:00:00 +02:00
Christoph Oelckers
5bb438b817 - new renderer: fixed bad positioning when a y-flipped wall sprite had to be clipped to floor or ceiling. 2021-05-16 12:17:26 +02:00
Christoph Oelckers
845ce63348 - make sure that all objects rendered as shadow reset the object color after the draw call. 2021-05-15 10:40:25 +02:00
Christoph Oelckers
b644000b02 - fixed texture y-flipping on bottom tiers of walls.
The flip flag was taken from the wrong side of the wall.
2021-05-07 00:18:13 +02:00
Christoph Oelckers
29b0106a96 - fixed yet another problem with the local 'sprite' variables in HWWall causing problems.
This variable and its companions in HWFlat and HWSprite have now been renamed to avoid these issues.
2021-05-07 00:09:30 +02:00
Christoph Oelckers
dc0df7d081 - don't clamp shade values in the setup pass.
We need their proper values when setting up the lighting.
2021-04-21 22:32:27 +02:00
Christoph Oelckers
be20b6a839 - fixed: wall sprites do not need NPOT emulation. 2021-04-20 16:58:18 +02:00
Christoph Oelckers
d078b511b8 - flip backwards oriented wall sprites before submitting them to the render list.
Backwards orientation will break the translucent object sorter so this needs to be sorted out beforehand.
2021-04-20 14:30:22 +02:00
Christoph Oelckers
bf019ac028 - Build must draw the sky for completely closed sectors as well. 2021-04-12 16:31:44 +02:00
Christoph Oelckers
ef95754e87 - fixed bad texture checks. 2021-04-11 18:38:26 +02:00
Christoph Oelckers
2e191f2742 - consolidated the SetLightAndFog code fragments. 2021-04-10 10:34:20 +02:00
Christoph Oelckers
345275db5d - better handling for portal lines having sloped back sectors.
This is a very ugly special case that probably needs a bit more work to get right, for now this should be enough as this combination is rather rare.
2021-04-09 22:48:16 +02:00
Christoph Oelckers
c9483353ff - some more translucency checks. 2021-04-08 19:56:18 +02:00
Christoph Oelckers
1362a7ebc5 - added extended translucency support and did a bit of code consolidation. 2021-04-08 19:45:18 +02:00
Christoph Oelckers
7a03967ceb - fixed clipping info not properly reset when rendering the scene in two passes.
We need to reset the gotsector array for that, but since we also need the accumulate result of both passes there's now two such arrays.
2021-04-07 16:52:17 +02:00
Christoph Oelckers
f9f1d591b3 - must set up fog before textures.
Otherwise the PickTexture callback won't get all needed info.
2021-04-07 10:30:49 +02:00
Christoph Oelckers
d193e199f1 - reorganized hightile offset storage. 2021-04-06 15:55:33 +02:00
Christoph Oelckers
ea91b5ba5d - added a map patch for SW:WT's 'skyline' map.
This contains a badly tagged sky sector that makes the new renderer glitch out.
2021-04-04 18:57:03 +02:00
Christoph Oelckers
d71ebace97 - fixed fog density of the new renderer.
The actual value needs to be a lot lower than for Polymost due to the different projection.
2021-04-03 22:51:31 +02:00
Christoph Oelckers
54eee347a6 - do y-flipping of wall textures correctly.
1.f - h is not correct for NPOT texures due to hpw they tile.
2021-04-02 22:50:53 +02:00
Christoph Oelckers
7446d0441b - use LGPLv2 for all Raze specific render code. 2021-04-02 18:22:54 +02:00
Christoph Oelckers
6afbb82e66 - fixed one-sided wall sprite checks. 2021-04-02 09:04:13 +02:00
Christoph Oelckers
85020b374a - use texture clamping on non-tiled walls. 2021-04-01 19:21:24 +02:00
Christoph Oelckers
ab9c7de147 - use texture clamping for all sprites. 2021-03-29 20:18:49 +02:00
Christoph Oelckers
389d61d086 - fixed texture selection for one-sided walls with the one-way flag set. 2021-03-29 09:11:38 +02:00
Christoph Oelckers
18cf208b7d - fixed SW shadows in new renderer.
shade clamping and full sprite sort was missing,
2021-03-28 22:29:13 +02:00
Christoph Oelckers
0ae93318e3 - flip camera textures to have the correct orientation. 2021-03-28 21:00:24 +02:00
Christoph Oelckers
d9ff2fd1e2 - used display size for all texture positioning. 2021-03-28 18:22:30 +02:00
Christoph Oelckers
83760d4974 - fixed a few wall sprite rendering issues.
* masked walls were inserted into the sprite render list, causing sorting issues and depth fighting (see Duke's cameras and the 'closed' sign in Route66/Carnival.map)
* vertical and horizontal wall sprites needed their sorting functions swapped.
* plane clipping for wall sprites used bad coordinates.
2021-03-28 13:09:26 +02:00
Christoph Oelckers
fa44d75e98 - draw regular sprites.
Mostly functional, but the projected size is off.
2021-03-27 23:12:41 +01:00
Christoph Oelckers
d1c23d1ad0 - fixed wall sprite rendering. 2021-03-27 14:18:33 +01:00
Christoph Oelckers
efe0d57fca - removed all the decal stubs.
Build has wall sprite for decals so this is redundant and ultimately not usable.
2021-03-27 13:26:11 +01:00
Christoph Oelckers
d0f38d7362 - wall sprite WIP. 2021-03-27 13:22:34 +01:00
Christoph Oelckers
1dfb2672a8 - flat sprite rendering! 2021-03-26 20:28:44 +01:00
Christoph Oelckers
1297e4ed02 - SW's line to sprite portals are working now.
Also fixed a clipper issue with Blood's line to line portals.
2021-03-24 10:33:50 +01:00
Christoph Oelckers
087da46522 - finally got mirrors working. 2021-03-23 21:23:49 +01:00
Christoph Oelckers
096ce5e025 - initial sky fixes. 2021-03-22 16:02:52 +01:00
Christoph Oelckers
e884a418f8 - portal WIP 2021-03-22 12:07:29 +01:00
Christoph Oelckers
75159e06c0 - uncommented the portal code in hw_walls.cpp. 2021-03-21 19:36:55 +01:00
Christoph Oelckers
fedfc2cfa4 - removed global variables that were only being used by the automap drawer plus a few other obsolete things. 2021-03-20 16:46:06 +01:00
Christoph Oelckers
dd15fc54c1 - top texture means RENDERWALL_TOP, not that it matters much at the moment... 2021-03-19 12:02:20 +01:00