Commit graph

23,396 commits

Author SHA1 Message Date
Magnus Norddahl
51c6e8add6 Create VBO vertex data before the level mesh since the mesh uses it to build geometry.
Draw all sectors as subsectors if lightmaps are enabled (even if a sector doesn't have a tile initially it could gain one)
2025-05-15 23:53:34 +02:00
Magnus Norddahl
dfeec3c123 Hook up lm_always_update 2025-05-15 10:07:25 +02:00
Ricardo Luís Vaz Silva
9f23178e76 save extraArgs to CVar for easier testing 2025-05-14 23:25:19 +02:00
Magnus Norddahl
5299453486 Fix missing lights when baking a map with vktool 2025-05-14 15:08:42 +02:00
Magnus Norddahl
23e4c46684 Restrict light-only changes to only happen in sectors with the SECF_LM_DYNAMIC flag 2025-05-14 13:26:10 +02:00
dpjudas
33b2c792cd Pick up iwads from folders 2025-05-14 02:15:37 +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
RaveYard
27f0bea2bc Prevent levelmesh updates when ceiling/floor is moving at a zero speed 2025-05-13 01:50:41 +02:00
Magnus Norddahl
398c9304b6 Enable background tile updates again 2025-05-13 00:27:42 +02:00
Ricardo Luís Vaz Silva
f522296970 cache FName conversion for GetGlobalShader 2025-05-12 23:28:04 +02:00
Magnus Norddahl
b27d094def Improve GetVisibleSurfaces performance 2025-05-12 22:43:30 +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
5d3f16b0d6 Only update VBO lightmap if its a full update 2025-05-12 13:41:51 +02:00
Magnus Norddahl
3127e2598a Implement the shadow and light list updates 2025-05-12 13:23:56 +02:00
Magnus Norddahl
5f3f51140f Remove debugging code 2025-05-12 12:10:08 +02:00
Magnus Norddahl
2c069349a3 Portal and high update count fixes 2025-05-12 00:39:41 +02:00
Magnus Norddahl
8bf31755df Update sectors and sides where light falls 2025-05-11 20:32:43 +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
Ricardo Luís Vaz Silva
7f031ab2cc fix MDL_USEROTATIONCENTER 2025-05-11 12:35:35 +08:00
Ricardo Luís Vaz Silva
4bdc3ee28d fix CalcModelFrame/SetBone/GetBone/SetAnimation not grabbing smf from modeldata for decoupled anims 2025-05-11 10:46:43 +08:00
Magnus Norddahl
b61941b4a6 Add IsActive check in DoomLevelMesh::CreateLightList 2025-05-10 16:03:35 +02:00
Magnus Norddahl
ae33d583ad A hack is best solved by adding another hack on top. Everyone knows this. 2025-05-10 03:07:17 +02:00
Magnus Norddahl
6e5df8ef4c Fix the shadow data VBO not updating its lightmap UVs 2025-05-10 03:07:17 +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
Nash Muhandes
bc76545e44
Merge pull request #157 from RicardoLuis0/gz_merge
4.14.2 merge
2025-05-03 04:33:52 +08:00
Ricardo Luís Vaz Silva
0efa138cca fix up merge issues 2025-05-02 17:19:07 -03: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
g4.14.2
* 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
091e5d76d5 set zscript version as 4.15.1 for now, since bone manip is 4.15.1 2025-05-01 15:47:38 +02: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
3befb3f5e7 limit light alpha mult to renderflag 2025-04-29 15:49:55 -03:00
Ricardo Luís Vaz Silva
eee9382d88 4.14.2 2025-04-29 08:14:34 -03:00
Xaser Acheron
16dffcbbf0 add a few commonly-used gzdoom-specific properties to the dehacked parser 2025-04-29 08:06:01 -03:00
Xaser Acheron
fc470b4f7c fix dsdhacked actors not spawning when placed in a map 2025-04-29 07:56:20 -03:00
DyNaM1Kk
2d030d5313 Added am_showlevelname CVar
Allows controlling the visibility of the level name on the automap.
2025-04-29 07:56:20 -03:00
MajorCooke
bf6f175305 SpawnBlood now returns an actor spawned by the function. 2025-04-29 07:56:20 -03:00
dileepvr
a2236c144e Ensure boolean to suppress compiler warning
Finally used `!!(...)` somewhere.
2025-04-29 07:56:19 -03:00
dileepvr
451b5cb5d9 Boolean op instead of mod with 2
`( ... & 1)` is simpler than `(... % 2 != 0)`.
2025-04-29 07:56:19 -03:00
dileepvr
4162c4b19e Fixed pitch culling in reflective flats for OoB Viewpoints
The vertical clipper needed viewpoint pitch sign to be flipped to work correctly. Only relevant for OoB viewpoints.
2025-04-29 07:56:19 -03:00
Boondorl
ce922225e7 Added OnLoad virtual
Allows for things to be reinitialized where needed for Thinkers. Moved hidden state of items over to OnLoad.
2025-04-29 07:56:19 -03:00
Ricardo Luís Vaz Silva
e406770efa save togglehud to ini so that it can be properly restored on crash/exit 2025-04-29 07:56:19 -03: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
f360ae82cf Part of the patent-pending light list design in gzdoom keeps invalid lights in the light lists and you must check for that everywhere... 2025-04-26 17:03:46 +02:00
Magnus Norddahl
91cc8b15ae Oops, this shouldn't have been committed :p 2025-04-26 15:57:02 +02:00