1
Fork 0
mirror of https://github.com/redstrate/Physis.git synced 2025-04-23 13:17:44 +00:00
Commit graph

62 commits

Author SHA1 Message Date
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
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
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
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
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
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
e23383f439 Remove for loop in writing MDL indices 2023-11-24 08:29:32 -05:00
7b162f6644 Replace some magic numbers with more readable constants 2023-11-24 08:25:45 -05:00
49a8752462 Remove unused round function in MDL 2023-11-24 08:18:46 -05:00
108d33f166 Add MDL::pad_slice test 2023-11-24 08:18:15 -05:00
cf79810dc9 Fix rounding errors
Now model files can be read and written and are (almost) identical!
There's some mysterious padding issues yet to solve, but that's only at
the end of the file.
2023-11-24 08:16:03 -05:00
5f7dd355cf Add support for UV1 reading/writing, tangent and color 2023-11-24 08:07:30 -05:00
18bb4ac54c Add fill argument for MDL::pad_slice 2023-11-24 08:07:10 -05:00
280ba9b292 Add tests for MDL component reading and writing 2023-11-24 08:06:57 -05:00
b99599867a Fix up more model writing woes 2023-11-22 21:21:01 -05:00
7a75c170cc Make a semantic difference between owned and non-owned byte data 2023-10-13 16:16:04 -04:00
4dfd36dbd8 Fix and quiet clippy warnings 2023-09-22 19:17:24 -04:00
bbbbb7cd02 Add the last missing pieces for model writing
This isn't a complete 1-to-1 yet, and still untested. However the
general idea is there now.
2023-09-22 17:42:04 -04:00
3a50523dd5 Add support for writing the rest of the model header and metadata 2023-09-22 17:04:48 -04:00
3d621d3588 Begin work on implementing MDL write support 2023-09-22 16:44:19 -04:00
2000b978b3 Ensure compliance with REUSE, add to CI 2023-08-06 08:25:04 -04:00
b3f8523677 Add support for single3/4 normals and UVs
Seems to be common in TexTools imported MDLs
2023-07-09 11:56:45 -04:00
ef97cfd1ce Simplify vertex loading and fix incorrect bone data 2023-07-05 19:42:53 -04:00
ba80ca326b Export material indices for MDL parts 2023-03-31 21:31:15 -04:00
8af6bfeb8b Export material names used in MDL files 2023-03-31 21:31:03 -04:00
67d2f035c3 Reformat code with rustfmt 2022-10-20 11:45:55 -04:00
a9fa6d714a Use read_le instead of manually passing ReadOptions 2022-10-17 19:24:02 -04:00
eebe89a4bd Remove some import warnings 2022-10-13 17:11:28 -04:00