1
Fork 0
mirror of https://github.com/redstrate/Physis.git synced 2025-04-22 20:57:46 +00:00
Commit graph

281 commits

Author SHA1 Message Date
90bd2d334d Reorganize some functions in EXD 2024-04-14 13:28:43 -04:00
6f12227134 Remove now useless debug message 2024-04-14 13:28:32 -04:00
9e7fc833ef Don't parse submesh bonemaps in Dawntrail models
Not sure if these are completely gone yet, but this is needed to at
least partially load Dawntrail models.
2024-04-14 13:26:51 -04:00
7c3d5a3142 Add new unknown vertex type found in Dawntrail benchmark
Not sure what it's used for yet, but needed to be added so parsing
doesn't completely fail.
2024-04-14 13:25:50 -04:00
04025e0707 Make EXL parsing more resilient
It now stops tripping up over basic parsing errors and comments.
2024-04-14 13:22:05 -04:00
4fa77965c1 Support index2 files
Needed for extracting data from benchmarks, which only ship with this
index file type.
2024-04-14 11:24:18 -04:00
8e6b0dd6b4 Fix issue where patches could panic because file didn't exist
Some of the recent boot updates now include patch files that try to
ask us to remove files that were already deleted. Now the patch process
is smarter and will quietly warn that said operation failed but will
continue to chug along.
2024-03-23 11:56:55 -04:00
733a079f9a Add preliminary support for writing shape keys into MDL files
This is not complete as it only deals with the header data and doesn't
append the morphed vertices properly yet.
2024-03-05 17:08:07 -05:00
6bf60b0cfd Add support for reading shape morphs from MDL 2024-03-02 17:23:55 -05:00
840fb21ba0 Test the replace_vertices function 2024-03-01 15:47:58 -05:00
d75296f4d2 Make the data offset calculations a little bit clearer 2024-03-01 15:47:47 -05:00
ebca076c2d Begin testing some of the model parsing functions 2024-02-25 10:30:50 -05:00
ed5a9b52b1 Separate the model header updating, and add test
This adds the model file for c0201e0038_top but everything but the
header parts are zeroed out to prevent possible copyright infringement.
2024-02-25 10:26:05 -05:00
3389f62340 Implement shape reading/writing, fix runtime size calculation 2024-02-25 09:35:18 -05:00
36027c9a9f Write out a proper end of stream vertex element 2024-02-25 09:01:59 -05:00
f43812fa55 Fix up padding/unknowns in ModelHeader 2024-02-25 08:54:27 -05:00
4194ec4432 Rename Uint4 to Byte4 so it's clearer 2024-02-25 08:54:16 -05:00
ecc872ead1 Use better constant values for model file header and vertex element 2024-02-25 08:41:03 -05:00
256b3f9305 Add basic support for LGB and TERA files
This is for the Novus map editor, although TERA is much more complete
than LGB right now.
2024-02-02 14:20:53 -05:00
872cabb2fa Support terrain shadow meshes and submesh meshes
This should fix most terrain models which has this data filled.
2024-02-02 14:19:36 -05:00
47649dfff5 Support half2 reading/writing 2024-02-02 14:18:58 -05:00
fd43401eae Protect model file i/o, decls behind visual_data feature 2024-01-31 16:33:53 -05:00
e26c70221e Oops, half4 positions should not be written as single4 2024-01-29 17:18:13 -05:00
5629cc5551 When writing half4 normals, fill it with 0.0 instead of 1.0 2024-01-29 17:06:24 -05:00
afe809f33c Store the unknown padding
Don't know what it's used for yet still.
2024-01-29 17:05:57 -05:00
f2475c99ce Remove unused imports in SHPK 2024-01-29 16:22:45 -05:00
c7c9c38980 Move comment to it's right place in ModelData::calculate_runtime_size 2024-01-29 16:02:56 -05:00
1810821fd7 Implement Default trait for Vertex 2024-01-29 16:01:58 -05:00
eb08d9f142 Move calculating runtime size to it's own function 2024-01-29 15:57:00 -05:00
d925bf6e95 Add more unknown event filters and channels 2024-01-29 15:49:16 -05:00
8b1be6306c The single Blowfish test is for encryption and decryption 2024-01-29 15:10:38 -05:00
189c891b07 Support shader keys better in MTRL 2024-01-29 15:07:59 -05:00
a18602e3d5 Rewrite SHPK reading 2024-01-29 15:07:35 -05:00
6000720658 Fix tangent reading/writing 2023-12-17 18:58:48 -05:00
3721644340 Separate vertex declaration/element code into its own file
This is around 100 LoC by itself, so it's nice to separate that
2023-12-13 17:23:56 -05:00
0b0850c574 Use custom binrw parsers/writers for VertexDeclarations
Eventually I want to consolidate the model headers, and this makes it,
so we only need a ModelFileHeader::read or write call without a separate
step.
2023-12-13 17:19:06 -05:00
835b48ff5b Add explicit calculate_stack_size function and test it 2023-12-13 16:51:40 -05:00
1902dadbec Add cmake to ci 2023-12-12 22:22:21 -05:00
6b240a804b Shut up Clippy about the code I didn't write 2023-12-12 22:16:19 -05:00
fadf811505 Move the model file operations to their own file
It helps declutter the already huge model file a bit.
2023-12-12 22:13:15 -05:00
60f4d49a0c Remove more magic constant numbers with std::mem::size_of 2023-12-12 22:08:19 -05:00
5cce23bd3c Finish model writing support
It now handles writing a model of a higher vertex count (which is
unfortunately really common in round trips, for example in Blender.)

Some of the code is still WIP, but it works!
2023-12-12 21:43:04 -05:00
5f1721fe14 Begin work on supporting writing different vertex counts 2023-12-10 14:52:49 -05:00
fc2d2f73cf Begin support for importing models of different vertex/index counts 2023-12-09 17:18:02 -05:00
c2426193ca Add MDL::replace_vertices function
Will be used for model writing in the future
2023-12-09 14:45:00 -05:00
8efbe484a5 Fix other misc warnings 2023-12-02 20:33:08 -05:00
609284ce8f Improve FIIN documentation 2023-12-02 20:28:28 -05:00
7b739f655b Don't expose ChatLogHeader publicly 2023-12-02 20:27:02 -05:00
61e6d2d5db Improve race documentation 2023-12-02 20:26:38 -05:00
c79cfc3df6 Improve log documentation 2023-12-02 20:26:34 -05:00