Commit graph

642 commits

Author SHA1 Message Date
Magnus Norddahl
c8509d000c Fix some warnings reported by gcc 2025-06-22 08:01:47 +02:00
nashmuhandes
051751220b Add SoftShadowRadius and Linearity to GLDEFS and A_AttachLight 2025-05-18 02:08:37 +08:00
nashmuhandes
af7c9db9c5 GLDEFS light intensity and A_AttachLight intensity, VKDoom edition 2025-05-17 21:43:47 +08:00
Ricardo Luís Vaz Silva
f522296970 cache FName conversion for GetGlobalShader 2025-05-12 23:28:04 +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
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
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
4f6b3119e6 fix out-of-bounds array access 2025-02-09 01:48:43 +08:00
Ricardo Luís Vaz Silva
3f4c66681e more misc animation fixes 2025-02-09 01:48:31 +08:00
Ricardo Luís Vaz Silva
9d1f7f1bff support color fields as actor uniforms 2025-02-08 01:57:08 +08:00
nashmuhandes
87bda3d8d4 Remove bone component cache, VKDoom Edition 2025-01-30 21:54:29 +08:00
nashmuhandes
aba5cbf768 Revert "fix for vkdoom"
This reverts commit 5eb9a1095e.

Revert "upload bones 😅"

This reverts commit cc766311f7.

Revert "remove bone component cache to decrease memory consumption"

This reverts commit e2908ce0a3.
2025-01-30 20:44:14 +08:00
Ricardo Luís Vaz Silva
5eb9a1095e fix for vkdoom 2025-01-30 20:37:08 +08:00
Ricardo Luís Vaz Silva
e2908ce0a3 remove bone component cache to decrease memory consumption
caching this is entirely unnecessary, as it changes every frame
2025-01-30 20:37:08 +08:00
Ricardo Luís Vaz Silva
d09c749e1d fix typo in varying parse code 2025-01-28 00:56:37 +01:00
Magnus Norddahl
df125c3916 Turn not returning from a function into an error!!!! 2025-01-19 15:22:17 +01:00
Ricardo Luís Vaz Silva
73e17842d3 remove AActor from common 2025-01-11 11:23:42 +01:00
Ricardo Luís Vaz Silva
fcf4c9d07e implement actor uniforms 2025-01-11 11:23:42 +01:00
Ricardo Luís Vaz Silva
d4d379c476 parse actor actor uniform field bindings 2025-01-11 11:23:42 +01:00
Ricardo Luís Vaz Silva
91300ac3b4 implement per-class globalshaders 2025-01-11 11:23:42 +01:00
Ricardo Luís Vaz Silva
8c3268ae1c pass actor to FModelRenderer::SetMaterial 2025-01-11 11:23:42 +01:00
Ricardo Luís Vaz Silva
e246639085 implement per-map shaders
per-class shaders TODO
2025-01-11 11:23:42 +01:00
Ricardo Luís Vaz Silva
1845de1428 allow omitting "material" for globalshader in gldefs 2025-01-09 05:49:10 +08:00
Ricardo Luís Vaz Silva
fee7fed1d0 add in/out varyings to materials in gldefs 2025-01-09 05:49:10 +08:00
Ricardo Luís Vaz Silva
0bbc0cd8b4 make sure cvar uniforms are replicated for every instance of global shader 2025-01-08 18:25:36 +08:00
Ricardo Luís Vaz Silva
65aef94671 improve global target choices 2025-01-08 18:25:36 +08:00
Ricardo Luís Vaz Silva
ea09ae1461 implement custom uniforms for material shaders 2025-01-08 18:25:36 +08:00
Ricardo Luís Vaz Silva
d23c727350 refactor custom uniforms in preparation for custom material uniforms 2025-01-08 18:25:36 +08:00
Ricardo Luís Vaz Silva
711f2b5f92 add custom vertex shaders 2025-01-08 18:25:36 +08:00
Ricardo Luís Vaz Silva
3a31008aa8 implement global shaders 2025-01-08 18:25:36 +08:00
Ricardo Luís Vaz Silva
5938204fa9 add default values, vec4 uniforms, and cvar uniforms to post-process uniforms 2025-01-07 00:42:50 +01:00
Ricardo Luís Vaz Silva
9073fb8501 add shadowMinQuality property and gl_light_shadow_max_quality CVar 2025-01-03 07:30:54 +01:00
Boondorl
419fc91522 Stop interpolators constantly force updating mesh 2024-12-14 06:08:49 +08:00
Rachael Alexanderson
7980d351b7
Merge branch '4.13' of ../gzdoom into gz4.13.1-merge 2024-10-20 10:25:15 -04:00
nashmuhandes
a45bf49616
Move no-mipmapping from actor renderflag/particle flag, to a material property in GLDEFS, where it makes more sense. The feature was introduced in the short-lived engine version of 4.13 which was deemed too broken and needed to be replaced with a newer version anyway, so might as well perform an API-breaking change at this point in time. Note that this currently only works for sprites (its primary targeted use case) -- walls, flats and models can be patched in later. 2024-10-19 18:36:34 -04:00
Ricardo Luís Vaz Silva
74a49ca919 change light strength to light linearity 0.0 = inverse square, 1.0 = linear 2024-10-11 11:43:09 +02:00
Ricardo Luís Vaz Silva
56787bbc17 Add LightStrength to UDMF, move SoftShadowRadius from AActor to DynamicLight 2024-10-09 04:44:51 +02:00
nashmuhandes
21d99b105c Merge branch 'master' of https://github.com/ZDoom/gzdoom 2024-09-27 23:52:20 +08:00
Ricardo Luís Vaz Silva
326480cb31 Fix typo 2024-09-25 18:57:05 -03:00
nashmuhandes
1fae4b9d4a Merge branch 'master' of https://github.com/ZDoom/gzdoom 2024-09-24 15:31:08 +08:00
Ricardo Luís Vaz Silva
712dd1133d Fix typo 2024-09-17 14:14:23 -03:00
Ricardo Luís Vaz Silva
79dacdf1b7 Properly fix double interpolation for IQM models 2024-09-13 17:05:22 -03:00
Ricardo Luís Vaz Silva
1429e22441 rework interpolation to allow for precalculated frames 2024-09-13 17:05:22 -03:00
Ricardo Luís Vaz Silva
17d7006d72 replace naive interpolation logic with more exact logic 2024-09-13 12:17:09 -03:00
nashmuhandes
4b2cdd375a Enable DisableAlphaTest feature inside Material blocks. Needed for some custom materials that need to do stuff with the material alpha. 2024-09-13 16:56:55 +08:00
nashmuhandes
58fecd4b92 Move depth fade definition to GLDEFS 2024-09-09 18:57:07 +08:00
Magnus Norddahl
e94bd7f641 Fix 'Could not find space in level mesh buffer' error
Interpolate sector height updates
2024-08-26 00:49:30 +02:00
Magnus Norddahl
bde15af593 Merge remote-tracking branch 'gzdoom/master' 2024-07-23 19:23:26 +02:00
Ricardo Luís Vaz Silva
0caa036a96 fix compilation 2024-07-09 12:25:28 -03:00