Commit graph

661 commits

Author SHA1 Message Date
Magnus Norddahl
3fdd22ef91 Merge remote-tracking branch 'gzdoom/master' into big_beautiful_merge 2025-08-06 21:06:53 +02:00
Marcus Minhorst
649ddd7774 Replaced uint with unsigned int 2025-07-19 11:37:24 -03:00
Marcus Minhorst
9b0f5d9b0d Fixes sign-compare warnings 2025-07-18 21:11:50 -03:00
Magnus Norddahl
c8509d000c Fix some warnings reported by gcc 2025-06-22 08:01:47 +02:00
Boondorl
c6825a9881 Added ViewModelFOV field for models
Allows manually setting FOV for models instead of scaling from 90 degrees. Positive values are exact FOVs while negative FOVs are scalars from 90. SCALEWEAPONFOV does not work with exact values since it automatically scales based on FOV.
2025-06-13 14:04:08 -03: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
nashmuhandes
b44f8f0cc9 - Add "Intensity" property for dynamic lights in GLDEFS that will multiply the brightness of the light, useful for overbrightening/underbrightening a light.
- Also add an "intensity" parameter for A_AttachLight in ZScript.

Note that for any kind of light overbrightening to do anything at all, one of the unclamped LightBlendModes in MAPINFO must be enabled.
2025-05-17 00:42:01 -03: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
0532a298d2 fix MDL_USEROTATIONCENTER 2025-05-11 01:12:55 -03: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
385033e999 fix CalcModelFrame/SetBone/GetBone/SetAnimation not grabbing smf from modeldata for decoupled anims 2025-05-10 18:24:16 -03: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
9e2b1f9c4c
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-09 17:06:16 -03: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
3780c5910a
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 10:15:46 -03:00
Gene
20c234b90f Scrap dlight lighthead link lists 2025-04-06 13:06:57 -07:00
Ricardo Luís Vaz Silva
7eaab2691b fix out-of-bounds array access (again) 2025-02-08 17:55:51 -03: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
Ricardo Luís Vaz Silva
a872097da1 fix out-of-bounds array access 2025-02-04 18:08:30 -03:00
Ricardo Luís Vaz Silva
eb7c99b34a more misc animation fixes 2025-02-04 18:08:30 -03: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
Ricardo Luís Vaz Silva
3d2f9e06ed remove bone component cache to decrease memory consumption
caching this is entirely unnecessary, as it changes every frame
2025-01-27 17:04:46 -03: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
e12d51c5a2 add default values, vec4 uniforms, and cvar uniforms to post-process uniforms 2025-01-06 19:21:21 -05: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
Rachael Alexanderson
f3b0c3ac5e
- Roll back filesystem changes. These were causing instabilities in the master branch that were interfering with development. 2025-01-04 11:27:21 -05: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