Commit graph

259 commits

Author SHA1 Message Date
Magnus Norddahl
81f7b083c0 Improve light probe lookup speed for large sectors by using a grid instead of subsectors 2021-10-15 04:21:18 +02:00
Magnus Norddahl
6a804cd4c7 Fix lightmaps got applied to model meshes 2021-10-14 06:11:54 +02:00
Magnus Norddahl
764a08752f Use a faster way to find the closest light probe
Fix light probe not being applied to psprite
2021-10-14 05:43:35 +02:00
Magnus Norddahl
b59bd46b79 Fix crash in GetDynSpriteLight when the actor is null 2021-10-08 21:47:43 +02:00
nashmuhandes
635a279186 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-10-08 16:26:26 +08:00
Christoph Oelckers
8d9d56c339 - push sprite shadows a little back for distance sorting
They always need to be behind sprites with the same distance.
2021-10-05 13:57:31 +02:00
Magnus Norddahl
247deff5bb Fix using wrong lightmap UV coordinates after all the wall clipping did its thing 2021-10-03 03:47:40 +02:00
Magnus Norddahl
0ac1baac48 Simplify the lightmap array slightly 2021-10-02 22:14:56 +02:00
Magnus Norddahl
e0ea5e3b55 Add light probe support for sprites 2021-09-25 18:53:18 +02:00
Magnus Norddahl
63ecb36889 Add lightmap texture support to vulkan backend
Also fix a warning in SetFlatVertex
2021-09-25 00:13:25 +02:00
nashmuhandes
934b5af975 Add lightmaps to 3D floors 2021-09-24 17:42:34 +08:00
nashmuhandes
3f3769afdb - implement drawing sides with lightmaps
- misc bug fixes in lump loading and format
2021-09-24 17:27:23 +08:00
nashmuhandes
2f8cff90b6 - Add lightmaps to the main shader (currently only OpenGL)
- Create a version of CreateIndexedSectorVertices that works with lightmap sectors
2021-09-24 16:56:15 +08:00
Christoph Oelckers
a0043ec09d - better handling of texture clamp state.
Free combination of clamping with all texture modes still missing in GLES and Softpoly renderers!
2021-09-19 14:54:34 +02:00
Christoph Oelckers
fb107f80e6 - fixed vertex generation when splitting walls by planes on old hardware. 2021-09-18 13:09:05 +02:00
Christoph Oelckers
31de21e6aa - GLES fixed: The weapon sprite must be rendered with the fullscreen colormap on. 2021-09-18 10:27:41 +02:00
Christoph Oelckers
67958833b7 Merge branch 'gles2_merge' 2021-09-17 21:22:41 +02:00
Christoph Oelckers
918e9e9b0d - fixed texture clamping for elements that are partially behind a slope.
This is mainly mid textures on linedefs and decals.
2021-09-17 00:25:28 +02:00
Christoph Oelckers
b0382599f6 - removed the SSBO block for desktop OS’s when gl_pipeline_depth is enabled 2021-09-14 00:13:08 +02:00
Christoph Oelckers
b550f57ce3 - fixed: Brightmap application for horizons was undefined..
This depended on the state of the previously rendered portal which could have switched it off.
2021-09-12 08:37:19 +02:00
Rachael Alexanderson
2096fefcee Merge remote-tracking branch 'origin/master' into gles2_merge 2021-08-18 12:31:47 -04:00
13bdd324e1 hud models: add nullptr check for psprites without caller. 2021-08-15 08:47:04 +02:00
Rachael Alexanderson
92a3731f20 Merge remote-tracking branch 'origin/master' into gles2_merge 2021-08-13 08:11:58 -04:00
888eab3063 HUD model tweaks:
- Look up HUD models by referencing the psprite's caller, rather than player's ReadyWeapon.
- Allow Strife hands psprite to be a model.
2021-08-11 20:09:25 +02:00
Christoph Oelckers
1097bd6c73 - fixed: instead of checking gl_lights, better check Level->HasDynamicLights.
Especially in the thinker code this is needed for software rendering.
Strictly speaking, the software renderer should do the same, but it checks r_dynlight in so many places deep in the logic where the level is not available.
2021-08-11 14:09:00 +02:00
Christoph Oelckers
f662c629e3 - ensure that shadowmap indices only get set when shadowmaps are enabled.
Having valid indices set when shadowmaps are off would cause the shader to run the full checks for all lights.
2021-08-11 10:06:22 +02:00
Christoph Oelckers
c24f644a61 - do not perform shadowmap updates when dynamic lights are disabled. 2021-08-11 08:08:29 +02:00
Christoph Oelckers
441cd0796f - merged gzdoom-gles2 and fixed some issues with pipeline size validation. 2021-08-03 20:12:19 +02:00
Christoph Oelckers
0cffeef2c6 - added map option to disable shadowmaps.
Prompted by 'Hurt' which has > 4000 lights and runs into both performance issues and unpredictable light selection for the limited amount of shadowmap slots.
2021-07-13 11:54:25 +02:00
Christoph Oelckers
5273ef360e - fixed: shadow alpha for translucent objects was not correct in the hardware renderer. 2021-07-02 08:54:15 +02:00
emily
4f034950be Make sprite shadows ignore float bob 2021-06-06 13:40:17 +02:00
Christoph Oelckers
f0d8bd0a74 - tweaked Hexen's weapon pieces so they do not floatbob into the floor with the hardware renderer. 2021-05-19 18:30:19 +02:00
Rachael Alexanderson
cfc080e37f - never run the shader timer on the 0th frame. fixes this bug: https://forum.zdoom.org/viewtopic.php?f=2&t=62693 2021-05-18 14:37:05 -04:00
nashmuhandes
e2d3f26a35 Fixed wrong alpha value being applied on sprite shadows in the hardware renderer. 2021-05-12 10:48:51 -04:00
Christoph Oelckers
c51af868de Revert "- restricted the portal rendering shortcut only to real skies in the primary layer."
This reverts commit b193e582ce.

This made the one thing I hoped it would fix even worse so it's useless.
2021-05-07 09:05:56 +02:00
Christoph Oelckers
52554dc32c - Backend update fron Raze, mainly new script exports and extensions. 2021-05-03 14:13:03 +02:00
Christoph Oelckers
b193e582ce - restricted the portal rendering shortcut only to real skies in the primary layer.
This won't work properly with sector portals that contain other portals because those setups require a proper stencil to work as expected.
2021-05-03 13:58:46 +02:00
nashmuhandes
15159a3c19 Add sprite shadows for the hardware renderer 2021-04-24 22:40:54 -04:00
Christoph Oelckers
ba146ed5e5 - Backend update from Raze 2021-04-19 12:58:35 +02:00
drfrag
25ab8e20ba - Fix crash with fog and software light modes. 2021-03-29 09:38:51 -04:00
James Le Cuirot
8ef02544a7 Fix camera texture aspect ratio in hardware renderer
It wasn't respecting the map's pixel ratio setting. This wouldn't have
been very noticeable with the default pixel ratio of 1.2 but it was
very obvious with 1.8.
2021-03-19 00:04:46 +01:00
Christoph Oelckers
d18b74b537 Merge branch 'master' of https://github.com/Chernoskill/gzdoom 2021-03-06 11:32:31 +01:00
Christoph Oelckers
8feba7dff9 - fixed: line portal rendering PR was missing handling for portals with z offset.
Since it used the back sector's height directly the needed offsetting was not applied to the upper and lower texture.
2021-03-05 17:19:02 +01:00
Christoph Oelckers
0c0ef4f938 - reinstated rendering of mid textures over two-sided wall portals.
This was removed in the last PR due to z-fighting problems which now have also been addressed
2021-03-05 12:25:41 +01:00
Timothy Quinn
a15216c90f - fixed rendering of one-sided line portals in the hardware renderer
# draw upper and lower textures when the back sector does not properly match
# do not draw middle textures on portal lines
# minor optimization to 'is***Portal' functions to avoid memory access in the most common case of no portal being present.
2021-03-05 12:02:31 +01:00
Chernoskill
fa2058004b The two TArrays of type FTextureID skinIDs and surfaceskinIDs no longer have any null elements. These elements will have a textureid (FTextureID.texnum) of 0.
Re-worded error messages which were unprecise or unfitting before (model index below 0 was not acknowledged at all, or grouped together with a "too many models" message).

modelIDs are given a default value of -1.

Important: A MODELDEF's FrameIndex lines can no longer refer to model indices that are beyond the number of models of that MODELDEF entry. There is in fact a check to avoid going beyond the number of an actor's models which would abort program operation at startup, but it never caught any such occurances.

surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case surfaceIndex + modelIndex * MD3_MAX_SURFACES]
Used TArray.Alloc to make TArrays have the correct size depending on the number of models.

Also removed MAX_MODELS_PER_FRAME.
Edited skinSurfaceIDs access for one-dimensional TArray

Added MD3_MODELS_MIN
To ensure compatibility with mods, all model-related TArrays (four in total) have a minimum size of 4, defined by MD3_MODELS_MIN.
2021-02-26 22:22:33 +01:00
Rachael Alexanderson
d6987ff6b2 Revert "Dynamic number of models per frame instead of a hard limit of four. (#1298)"
This reverts commit 769d60a64f.
2021-02-25 09:58:17 -05:00
Chernoskill
769d60a64f
Dynamic number of models per frame instead of a hard limit of four. (#1298)
* Changed model-related arrays to TArrays.

* Update models.cpp

Used TArray.Alloc to make TArrays have the correct size depending on the number of models. 
surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, it's size is now (models * MD3_MAX_SURFACES)
surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case sSurfaceIndex + modelIndex * MD3_MAX_SURFACES]

* Edited skinSurfaceIDs access for one-dimensional TArray

* Edited skinSurfaceIDs access for one-dimensional TArray

* Edited skinSurfaceIDs access for one-dimensional TArray

* Changed model-related arrays to TArrays.

Also removed MAX_MODELS_PER_FRAME.

* Used TArray.Alloc to make TArrays have the correct size depending on the number of models. 

surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case surfaceIndex + modelIndex * MD3_MAX_SURFACES]

* Used TArray.Alloc to make TArrays have the correct size depending on the number of models. 

surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case surfaceIndex + modelIndex * MD3_MAX_SURFACES]

* Update models.h

* Edited MAX_MODELS_MD3

* Update models_obj.cpp
2021-02-24 15:26:47 -05:00
Rachael Alexanderson
df4f41f4e8 - Modified commit from @OrdinaryMagician #1261
- Always allow skyboxes by default
- Add option to disable skyboxes through mapinfo
Squashed commit of the following:

commit d4c4d9310d0157ce575f52989b5b080398cf7629
Author: Marisa Kirisame <marisa@sayachan.org>
Date:   Wed Dec 30 09:58:39 2020 +0100

    Disable AO for skybox portals (can be forced back with MAPINFO flag).
2020-12-30 11:08:43 -05:00
Major Cooke
38eb6db9ce Disabled vertice off-screen check, but fixed it at the same time. If it's desired, the solution is simply commented out in the event its desired. 2020-10-25 15:42:12 +01:00