Commit graph

2,300 commits

Author SHA1 Message Date
Magnus Norddahl
3f1dcce970 Bake models into the level mesh 2025-06-11 03:38:40 +02:00
Magnus Norddahl
cfe282f4bd Model rendering to mesh builder 2025-06-10 20:32:27 +02:00
Ricardo Luís Vaz Silva
daab336784 make lm_dynlights toggling work 2025-06-01 01:10:42 +02:00
Ricardo Luís Vaz Silva
42e20f248d force allow light updates when lm_dynlights is on 2025-06-01 01:10:42 +02:00
Magnus Norddahl
1791167fe5 Draw sorted by pipeline 2025-05-30 18:52:44 +02:00
Ricardo Luís Vaz Silva
af653e8b67 bone getters part 2.5 2025-05-26 13:33:51 +02:00
dpjudas
cc92dda41a Avoid applying state on every draw 2025-05-26 04:26:36 +02:00
Magnus Norddahl
f302f03287 Change level mesh draw code to draw ranges in the mesh rather than the entire mesh 2025-05-25 18:18:29 +02:00
Ricardo Luís Vaz Silva
7461fc202b match gzdoom light limit 2025-05-25 13:54:16 +02:00
Magnus Norddahl
a85cd66747 Use the tonemap PP pass to convert blended render styles back to palette colors 2025-05-20 04:09:31 +02:00
Magnus Norddahl
5a5c8d4bde Use the game palette to find the material color 2025-05-20 03:20:46 +02:00
dpjudas
3dbb4d7b9c Add lightmap and dynamic lights 2025-05-19 17:23:28 +02:00
Magnus Norddahl
990ce7c6c9 Render scene with indexed textures for vid_rendermode 2 2025-05-19 05:55:03 +02:00
Ricardo Luís Vaz Silva
e0897ae8b2 remove broken precise midtexture trace, fix sky tracing for actors 2025-05-16 00:47:50 +02:00
Magnus Norddahl
156d7e7af2 Correctly apply sunlight to line portals 2025-05-13 15:18:33 +02:00
Magnus Norddahl
0c0e29b18d Add sunlight to line portals 2025-05-13 14:38:35 +02:00
Magnus Norddahl
76fb5901d7 Only force baking of tiles where the geometry changed 2025-05-13 01:52:02 +02:00
Magnus Norddahl
2d772dc0f2 GCC doesn't like this static const int for some weird reason... 2025-05-12 20:00:32 +02:00
Magnus Norddahl
be4b0cb67b Stop memory allocations by keeping the RectPacker around 2025-05-12 14:26:24 +02:00
Magnus Norddahl
2c069349a3 Portal and high update count fixes 2025-05-12 00:39:41 +02:00
Magnus Norddahl
6cf3cdb871 Make LevelMeshUpdater responsible for updating the tiles (playsim tells the mesh updater, the level mesh tells the tiles) 2025-05-11 20:11:18 +02:00
Magnus Norddahl
bfb37a89c3 Fix deactivated lightmap light not working 2025-05-11 17:58:07 +02:00
Magnus Norddahl
737b7ece96 Dynamically allocate and free lightmap tiles 2025-05-10 03:07:17 +02:00
Ricardo Luís Vaz Silva
d5f5c71d67 Bone Getters Part 2/3, plus fixed warnings for MSVC
* add getters for frame poses

* fix missing joint in GetJointPose

* clean up models_iqm.cpp

* clean up usage of I_GetTimeFrac, split out matrix calculation into its own function

* clean up SetModelBoneRotationInternal

* clean up a few float <-> double and unsigned <-> signed warnings

* fix more warnings

* further clean up warnings

* split mode ObjectToWorldMatrix stuff

* initial work on bone getters, matrix hell

(the matrix/vec3 multiplications are probably wrong af, just gotta add more stuff 'till i can test it)

* clean up matrix math

* GetBone/TransformByBone

* fix GetBoneFramePose

* fix ObjectToWorldMatrix

* fix missing array resize

* raw matrix getters (for use with gutamatics/etc)

* reverse matrix mult order

* replace GetBoneLength/GetBoneDir with GetBoneBaseTRS

* fix GetBonePosition, remove GetBoneWorldMatrix as it's useless

* GetBonePosition

* deduplicate code

* rename GetBonePosition to GetBoneBasePosition to avoid confusion

* GetBoneBaseRotation

* GetBonePosition helper function

* forgot include_offsets
2025-05-10 08:42:20 +08:00
nashmuhandes
db8bdab669 Fix coronas duplicate-drawing sometimes 2025-05-03 07:01:11 +08:00
Ricardo Luís Vaz Silva
9aa44fa13b Merge branch '4.14.2' into gz_merge 2025-05-02 17:15:41 -03:00
Ricardo Luís Vaz Silva
99aa489d09 4.14.2 model refactor cherry pick
Some checks failed
Continuous Integration / macOS | Debug (push) Has been cancelled
Continuous Integration / Linux Clang 11 | Debug (push) Has been cancelled
Continuous Integration / Visual Studio 2022 | Debug (push) Has been cancelled
Continuous Integration / Linux GCC 12 | MinSizeRel (push) Has been cancelled
Continuous Integration / Linux GCC 9 | RelWithDebInfo (push) Has been cancelled
Continuous Integration / macOS | Release (push) Has been cancelled
Continuous Integration / Linux Clang 15 | Release (push) Has been cancelled
Continuous Integration / Visual Studio 2019 | Release (push) Has been cancelled
Continuous Integration / Visual Studio 2022 | Release (push) Has been cancelled
* split frame info calculation from RenderFrameModels

* clean up FindModelFrame

* refactor model overrides into its own function

* refactor frame rendering into RenderModelFrame

* split frame processing into ProcessModelFrame
2025-05-01 18:22:30 -04:00
Ricardo Luís Vaz Silva
8833126801 Bone Manip part 1 - bone setters
* split frame info calculation from RenderFrameModels

* clean up fvec4 being used as quat in iqms

* initial work on bone setting

* implement bone setters

* clean up FindModelFrame

* refactor model overrides into its own function

* refactor frame rendering into RenderModelFrame

* split frame processing into ProcessModelFrame

* refactor BoneOverride in preparation for translation/scale overrides

* clean up macros

* SetBoneTranslation/SetBoneScaling

* GetBoneOffset

* fix compilation on linux/mac (fuck you MSVC)

* fix typo 😅

* make sure bone overrides are cleared on model switches, add ClearBoneOffsets to clear them manually

* bone info getters

* fix joint lengths, add joint dirs

* serialize bone overrides

* fix bone dir return type

* GetBoneIndex/GetBoneCount

* helper functions for working with non-quat angles

* add mode enum, add more helper functions

* fix up formatting
2025-05-01 15:47:38 +02:00
Ricardo Luís Vaz Silva
56999fecd2 fix bug with direct cvar assignment being mistakenly allowed 2025-04-29 07:56:19 -03:00
Magnus Norddahl
91cc8b15ae Oops, this shouldn't have been committed :p 2025-04-26 15:57:02 +02:00
Magnus Norddahl
64e08cc921 Include address info to access violations 2025-04-26 15:56:39 +02:00
dpjudas
03ba95e7e1 Improve call stack by using the CONTEXT record from the SEH exception 2025-04-26 13:32:01 +02:00
Magnus Norddahl
98ff358a3a Workaround AMD driver crash by disabling rayquery for all AMD cards 2025-04-21 18:49:22 +02:00
Magnus Norddahl
4e0d6d5932 Fix missing inlined function 2025-04-21 01:53:54 +02:00
Magnus Norddahl
1312772e8b Use the error dialog window, like on Windows, instead of xmessage from 1865 2025-04-21 01:05:24 +02:00
Magnus Norddahl
1471eea6e5 Fix compile error and the backtrace (sorta, still sucks) for Linux 2025-04-21 00:01:42 +02:00
Magnus Norddahl
213305cc2d Move the fatal error logging out of win32 and use it on Linux and macOS 2025-04-20 23:19:45 +02:00
Magnus Norddahl
8090f395e2 Fix some warnings 2025-04-20 18:25:08 +02:00
Magnus Norddahl
26b10dbdda Validation layer wants layout specified during linking (is it right? nobody knows! the vulkan spec is unreadable in this part, thanks khronos!)
Fix light probe pass using depth stencil format selection before it was set
2025-04-20 18:15:38 +02:00
Magnus Norddahl
0c3c0c6271 Use zwidget for the fatal error dialog 2025-04-20 15:26:18 +02:00
dpjudas
4f1316b3fd Add thread safety to VkShaderCache 2025-04-19 09:30:17 +02:00
dpjudas
74e2e39e35 Add thread safety to VkShaderManager::GetProgram 2025-04-19 08:57:43 +02:00
dpjudas
22b7f02305 Remove vulkan shader modules 2025-04-19 08:24:43 +02:00
Magnus Norddahl
ddffb4193a Dbgeng didn't work - let's try do it ourselves 2025-04-18 14:43:29 +02:00
dpjudas
8f180e3a3f Never clear the RenderPassSetup map as that will force pipelines to rebuild 2025-04-14 01:41:44 +02:00
Magnus Norddahl
3823196765 Revert "Remove resource system voodoo and make some lines slightly more readable"
This reverts commit 9bc869e1a6.

Revert "Fix race condition"

This reverts commit 883e3ce907.

Revert "Run the GLSL compiler on the worker thread"

This reverts commit da0ff9ab04.
2025-04-13 17:15:13 +02:00
Magnus Norddahl
a0e6ebe226 Fuck it! Let's just mutex guard EVERYTHING.... 2025-04-13 15:23:31 +02:00
Magnus Norddahl
9bc869e1a6 Remove resource system voodoo and make some lines slightly more readable 2025-04-13 14:49:04 +02:00
Magnus Norddahl
54e9ae15e5 Make FString copy-on-write (COW) thread safe 2025-04-13 02:09:46 +02:00
RaveYard
b1a61d5f30 Add fallback for pipeline creation
Wait... you have to check an extra boolean to know if the extension is actually supported?! What were they thinking?!
2025-04-12 17:25:55 +02:00