Commit Graph
34 Commits
Author SHA1 Message Date
moandJan Laupetin 61fd267b2b feat: T4 add xmodel loader (#989)
* feat: T4 add xmodel loader

* chore: remove unused xmodel related struct from T4

* fix: allocating too little trans for t4

---------

Co-authored-by: Jan Laupetin <[email protected]>
2026-09-04 19:37:24 +02:00
moandJan Laupetin 9f49e0e31c feat: QOS (007: Quantum of Solace) support (#894)
* feat: QOS (007: Quantum of Solace) support

* feat: add qos localize loader

* feat: add qos stringtable loader

* chore: comment about official zones

* fix: add qos gfximage runtime fields

* chore: remove useless dev time comments

* fix: remove all `static_asserts`s from asset headers causing build fail on x64

* chore: change union ordering of qos `entryInternalData`

* chore: move qos asset type enum to qos.h

* fix: qos and t4 xsurface index buffer

* chore: implement qos MaterialInfo struct

* chore: adjust some gfxworld struct members

* chore: implement qos PhysPreset and PhysConstraints

* chore: fix and adjust slight inconsistencies with qos zone code

* chore: reorder qos ZoneCode.lua entries in order of asset type enum

* chore: remove asset types that are not actual asset types in zones

* chore: check common asset arrays with static_assert

* chore: rename qos assets

* chore: reorder qos in templates to be in alphabetical order

* chore: use function for CopyMipLevel in Dx9TextureLoader

* chore: use templates for qos MapEntsDumper

* chore: add missing braces in XModelToCommonConverter

* chore: add generic way to peek at zone data

* Qos does not use a classic ZoneHeader so code needs to be more generic

* fix: do not use raw_byte and raw_uint typedefs for qos

* fix: not being able to write clipmapmp

* chore: additional research on qos vertex property and stuff

---------

Co-authored-by: Jan Laupetin <[email protected]>
2026-08-05 00:32:23 +02:00
mo 8c61fa3b62 feat: T4 XModel dumper (#852) 2026-06-25 15:03:07 +02:00
Jan Laupetin 0c1bc747dc chore: update default root bone name to empty string and do not specify if matching default name 2026-05-03 13:51:56 +02:00
Jan Laupetin d6a736eb5d feat: preserve root bone name when dumping xmodels with omitted default armature 2026-05-03 13:09:02 +02:00
Jan 6b7752376a Merge pull request #780 from Laupetin/fix/iw3-part-classification
fix: incomplete iw3 part classification
2026-05-01 22:37:59 +02:00
Jan Laupetin 4d66911203 fix: incomplete iw3 part classification 2026-05-01 21:52:10 +02:00
Michael Oliver 98d8ea9005 fix: xmodel glTF dumps dropping COLOR_0 vertex attributes 2026-05-01 21:48:28 +02:00
Jan Laupetin eee44b5860 chore: use ordered_json for gltf
order is based on what blender does
https://github.com/KhronosGroup/glTF-Blender-IO/blob/7bea3666f8b5043292e578501a779f244d8e8f06/addons/io_scene_gltf2/io/exp/export.py#L48
2026-04-20 20:08:46 +01:00
Jan Laupetin d469af2328 chore: use namespace for FileUtils 2026-03-05 20:27:47 +01:00
Jan Laupetin 3fb887b5dd fix: compilation 2025-09-06 09:02:50 +01:00
Jan Laupetin 3a5cfc01d9 fix: make ObjLoader load updated gltf bone data 2025-09-06 09:02:50 +01:00
Jan Laupetin 250556ab61 refactor: streamline namespaces of xmodel dumping and loading 2025-08-03 17:47:21 +02:00
Jan Laupetin 89b7482a0a chore: dump xmodel type as part of json 2025-07-20 15:06:09 +02:00
Jan 311d5935b3 feat: use templated xmodel loading and dumping code for iw3 2025-07-10 16:59:23 +01:00
Jan 3daa8b0412 refactor: use templated xmodel loading and dumping code for iw4 2025-07-09 23:23:16 +01:00
Jan a9c693d04d refactor: template remaining xmodel files for iw5,t5,t6 2025-07-09 21:57:22 +01:00
Jan 7eb1714e89 feat: support gltf bone rotation as matrix notation 2024-09-06 21:37:48 +02:00
Jan 1f5050befa feat: first draft of loading gltf models for t6 2024-09-05 21:19:39 +02:00
Jan f8b5734f86 chore: make XModelCommon use offset instead of pointer 2024-09-05 21:19:38 +02:00
Jan d45f0ffab7 chore: adjust XModelCommon numeric types 2024-09-05 21:19:38 +02:00
Jan c89a6631b0 chore: replace custom vector, quaternion, matrix implementation with eigen library 2024-05-12 19:32:06 +02:00
Jan 499b752272 chore: add names to exported gltf models 2024-05-11 01:51:28 +02:00
Jan a0138c8abc chore: set gltf material default metallicness to 0 2024-05-09 22:12:39 +02:00
Jan 1a35152098 chore: dump more information about gltf materials 2024-05-09 22:12:38 +02:00
Jan 07fa12b7f6 chore: implement mesh gltf export 2024-05-09 22:12:38 +02:00
Jan a39e993cc6 chore: use XModelCommon for dumping obj to reduce code duplication 2024-05-09 22:12:37 +02:00
Jan 826e59d627 chore: update xmodel common to be a struct with substructs 2024-05-09 22:12:37 +02:00
Jan 0a65c93aa5 chore: move materialIndex to XModelObject 2024-05-09 22:12:36 +02:00
Jan 0d96213f21 chore: export gltf basic attributes 2024-05-09 22:12:36 +02:00
Jan f2438bea12 chore: write gltf header with new writers and outputs 2024-05-09 22:12:35 +02:00
Jan c27f4ed544 chore: add output implementations for gltf and glb 2024-05-09 22:12:35 +02:00
Jan 7a0930a208 chore: add json types for gltf 2024-05-09 22:12:35 +02:00
Jan d4ef9fa3d9 chore: move xmodel packages 2024-05-09 22:12:35 +02:00