Commit graph

50 commits

Author SHA1 Message Date
RaveYard
adfc7082f5 Remove hacks associated with SetLevelMesh 2023-09-11 14:44:17 +02:00
RaveYard
d96d1aeffc Visible surfaces are gathered in processing (gathering) render phase and lightmaps drawn before rendering 2023-09-10 23:42:00 +02:00
RaveYard
139ce34535 WIP refactoring of surface gathering 2023-09-10 23:42:00 +02:00
RaveYard
1466eeefc0 Fix off by one 2023-09-10 23:42:00 +02:00
RaveYard
fd4b3a8e73 Update lightmapper and add limiter to updates 2023-09-10 23:42:00 +02:00
RaveYard
b163901862 WIP partial lightmapping 2023-09-10 23:42:00 +02:00
Magnus Norddahl
a7f4971d5d Add HWDrawContext so that multiple threads can maintain their own drawinfo without need for synchronization 2023-06-29 03:33:07 +02:00
Magnus Norddahl
7bdf3f7364 Create a RenderState object for each thread 2023-05-17 22:39:22 +02:00
Magnus Norddahl
1fd14f1140 Remove FFlatVertexBuffer 2023-05-08 23:12:14 +02:00
Magnus Norddahl
1d8f406162 Let the backend manage the shadowmap buffers 2023-05-01 02:10:43 +02:00
Magnus Norddahl
d7a7953d10 Move bone buffer to backend 2023-04-30 04:49:06 +02:00
Magnus Norddahl
f2585a3b17 Manage the light buffer in the backend 2023-04-30 03:43:38 +02:00
Magnus Norddahl
aadb1c31b6 Manage viewpoint buffer internally in the backend 2023-04-30 02:32:04 +02:00
Magnus Norddahl
87c3be94d5 Adjust meshbuilder to vkdoom changes and make sure the drawinfo functions always allocate vertices from the output renderstate object 2023-04-26 04:22:07 +02:00
Magnus Norddahl
640c86d0c7 Build a mesh cache for all sectors 2023-04-26 01:09:05 +02:00
Magnus Norddahl
6894eb013f Begin removing binding points from the hwrenderer layer.
Well known buffers should be created and managed by the backend, otherwise the backend just becomes an OpenGL emulator.
2023-04-16 19:30:27 +02:00
Christoph Oelckers
bafd6be342 - removed backend dependencies on game data. 2023-01-15 08:23:26 +01:00
Magnus Norddahl
181eda0a83 Fix canvas textures getting clipped by wrong scissor box 2022-10-28 18:01:59 -04:00
Shiny Metagross
08f520f1c6 IQM Support Implemented
More info to come
2022-10-19 22:48:57 +02:00
Christoph Oelckers
4032576519 - blocked off direct access to TAngle’s internal storage. 2022-08-26 18:09:29 +02:00
Christoph Oelckers
f0fbdba593 - disable implicit conversions from float to TAngle 2022-08-26 18:01:26 +02:00
Christoph Oelckers
ee2c775bd8 - fix last commit 2022-07-29 08:36:26 +02:00
Christoph Oelckers
5bae588f80 - get rid of M_Malloc call in WriteSavePic
Use TArray instead
2022-07-29 08:25:55 +02:00
Magnus Norddahl
b8569fa29f Fix GC shutdown crash due to canvas objects not getting GC'ed at the end
Fix typo in Draw2D and add support for specifying the viewport size directly
2022-07-25 18:50:16 +02:00
Magnus Norddahl
bb503950df Add canvastexture definition to animdefs.
Split canvas texture rendering from camera texture rendering.
2022-07-25 18:50:16 +02:00
Magnus Norddahl
97073410c4 Upload acceleration structures for the level mesh 2022-06-22 07:55:19 +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
b0382599f6 - removed the SSBO block for desktop OS’s when gl_pipeline_depth is enabled 2021-09-14 00:13:08 +02:00
Rachael Alexanderson
92a3731f20 Merge remote-tracking branch 'origin/master' into gles2_merge 2021-08-13 08:11:58 -04: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
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
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
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
80b5a66635 - fixed bad range check in shadowmap code.
Since the last refactoring this only counts lights, not occupied entries in the array, but the check wasn't adjusted for that.
2020-06-12 15:07:13 +02:00
Christoph Oelckers
b06af634e2 - added a flash component to the colormap shader.
Its main purpose is for RR's lightning flash in Raze but this looks very useful for manipulating fullscreen colormaps. Currently not exposed, though.
2020-06-07 09:16:56 +02:00
drfrag
332dfa4d6f - Remove wrong GL includes. 2020-05-27 21:35:09 +02:00
Christoph Oelckers
0cf967dc06 - fixed wrong order of actions on shadow map updater. 2020-05-04 22:15:18 +02:00
Christoph Oelckers
6cf91d3941 - moved the remaining core parts of the GL renderer to 'common'. 2020-04-29 17:19:17 +02:00
Christoph Oelckers
2196b4fb04 - moved the frame rate drawer out of DFrameBuffer.
Too much of this is not shareable and all it consists of are drawing operations on the 2D drawer.
2020-04-27 23:53:26 +02:00
Christoph Oelckers
67a50d084a - started cleanup of model code.
* refactored FBoundingBox so that the game dependent members are global functions now.
* changed some methods of the model renderer to take a render style parameter instead of a full actor.
2020-04-27 00:03:23 +02:00
Christoph Oelckers
c30165db0d - removed the remaining dependencies of the shadowmap code on game data.
Everything is handled with callbacks now.
2020-04-26 19:58:17 +02:00
Christoph Oelckers
ba0b42465d - changed shadowmap setup so that the AABB tree is owned and controlled by the map, not the renderer.
Needed to properly separate game logic from backend implementation, the shadowmap had both in the same object thanks to the old setup.
2020-04-26 18:54:43 +02:00
Christoph Oelckers
69d724ae73 - moved lightbuffers and flatvertices to 'common'. 2020-04-26 12:41:13 +02:00
Christoph Oelckers
cf41a0b1fb - moved hw_cvars to 'common'. 2020-04-26 11:38:38 +02:00
Christoph Oelckers
686aa9779d - moved VR code and IntRect to 'common' 2020-04-26 10:26:29 +02:00
Christoph Oelckers
0c63f5c832 - moved FRenderState to 'common' and removed some game-dependent parts from it. 2020-04-25 23:29:38 +02:00
Christoph Oelckers
59360f2d77 - started cleanup of dependencies of the framebuffer class.
* made the portal state global, outside the framebuffer, because it is pure logic state without dependencies on the backend.
* took the setup functions out of FDynLightData - there is no need to have them as members and they age game dependent.
2020-04-25 21:08:07 +02:00
Christoph Oelckers
9872065fc6 - moved file to its proper place. 2020-04-25 18:38:17 +02:00
Renamed from src/rendering/gl/renderer/gl_scene.cpp (Browse further)