Commit graph

601 commits

Author SHA1 Message Date
Ammar Askar
73e06f09cc Start loading IK chains from animations into sim 2023-08-20 19:04:44 -04:00
Ammar Askar
c4bc83fe97 Add test scene for sims animation rigging 2023-08-20 13:09:25 -04:00
Ammar Askar
69922d956c Store Inverse-Kinematics chain data from animations 2023-08-19 22:58:58 -04:00
Ammar Askar
cd2f968ed5 Add animation rigging package for inverse kinematics 2023-08-19 10:46:36 -04:00
Ammar Askar
979da1a147 Add ability to render multiple scenegraph resources to a single ScenegraphComponent 2023-08-19 10:44:52 -04:00
Ammar Askar
4685e52efd Add a SimCharacterComponent class and handle 1F animation channels 2023-08-19 02:37:50 -04:00
Ammar Askar
9dd80da480 Fix accidentally un-commited files in refactor 2023-08-18 19:12:35 -04:00
Ammar Askar
462e7fdd16 Move ScenegraphComponent to components folder 2023-08-18 19:02:39 -04:00
Ammar Askar
060dc588c8 Change byte array to ReadOnlyList in texture asset class 2023-08-18 01:05:44 -04:00
Ammar Askar
0f88ae3bd9 Fix bug where BGR textures were loaded as RGB 2023-08-18 01:05:11 -04:00
Ammar Askar
da3165d602 Add work-in-progress cLightRefNode rendering 2023-08-17 17:55:11 -04:00
Ammar Askar
77c490f858 Render sub-components of cShapeRef in scenegraph 2023-08-17 17:41:48 -04:00
Ammar Askar
dfdb07f4b9 Fix tangent values for animations 2023-08-17 16:42:00 -04:00
Nahuel Rocchetti
caf0e655fb
Merge pull request #48 from riperiperi/perf/reia
Improve performance of REIA decoding
2023-08-16 18:07:13 -03:00
riperiperi
d1fc4bfc79 Improve performance of REIA decoding
The REIA decoder was performing a lot of crops and copies using Texture2D containers, which was slowing down decoding significantly.

The enumerator now remembers frame data and modifies it in place when new frames are requested. It only needs a working array to decode block data into before it's added to the result.

The mode where it creates a new texture for each frame still works. Here's how decoding the whole startup animation into textures compares:

before:
REIA (800x600 153 frames) took 4.657419s

after:
REIA (800x600 153 frames) took 0.8785773s

I'm not sure how much time creating each of the textures takes, it's probably faster when just setting data to the same one repeatedly.
2023-08-16 20:08:35 +01:00
Ammar Askar
99e43f21ac Fix bug with rendering some scenegraph components 2023-08-16 00:18:39 -04:00
Ammar Askar
12c875deba Start animating blend/morph shapes 2023-08-16 00:14:35 -04:00
Ammar Askar
6df4f8b9dc Fix fixed point deserialization in animations 2023-08-15 22:19:45 -04:00
Ammar Askar
3662299bd4 Add recliner chair for animation testing 2023-08-15 14:04:45 -04:00
Ammar Askar
52950a16ca Disable discontinuous tangent values in animations 2023-08-15 13:46:44 -04:00
Ammar Askar
4113d74795 Change how in/out tangents are handled 2023-08-15 13:38:44 -04:00
Ammar Askar
8c6b8e109f Temporarily working animations! No tangents yet 2023-08-15 11:55:33 -04:00
Ammar Askar
db88f1f4f5 Fix animation rotation channels 2023-08-15 11:46:22 -04:00
Ammar Askar
130dd93a86 Add work in progress animation to scenegraph component 2023-08-15 01:15:21 -04:00
Ammar Askar
f7808e12ad Convert keyframe data to floats 2023-08-14 23:42:12 -04:00
Ammar Askar
d26e9e8f7a Start testing anim files 2023-08-14 13:10:37 -04:00
Ammar Askar
a27a8deced Document more of the animation format 2023-08-14 12:34:01 -04:00
Ammar Askar
956c3da7a6 Fix bug where some bones weren't being assigned 2023-08-14 00:56:25 -04:00
Ammar Askar
818f239526 Add Animation component to scenegraphs with bones/morphs 2023-08-13 22:58:37 -04:00
Ammar Askar
131023aeab Bind bones and bind poses to models 2023-08-13 22:26:27 -04:00
Ammar Askar
31faedf256 Refactor scenegraph rendering code into its own MonoBehaviour 2023-08-13 21:52:44 -04:00
Ammar Askar
ce70486e7f Hold scenegraph bone ids and bind poses for use after rendering scenegraph 2023-08-13 21:32:35 -04:00
Ammar Askar
f421d19e62 Refactor ScenegraphModelAsset for bones work 2023-08-13 21:06:18 -04:00
Ammar Askar
a217247086 Start loading bones from gmdc 2023-08-13 20:40:30 -04:00
Ammar Askar
838b3f2e95 Fix another bug with DXT3 conversion.
Maybe we should switch to a library at this point.
2023-08-13 15:13:31 -04:00
Ammar Askar
073aba2e49 Finish up basic animation reading code 2023-08-13 14:15:19 -04:00
Ammar Askar
eff377ac14 Read keyframes from animation data 2023-08-13 00:14:59 -04:00
Ammar Askar
835df69750 Add more animation parsing logic 2023-08-11 11:14:39 -04:00
Ammar Askar
5393e5ec93 Start reading scenegraph animations 2023-08-11 00:32:42 -04:00
Ammar Askar
5b335306f9 Render transform nodes with their correct names 2023-08-08 21:15:09 -04:00
Ammar Askar
66dd166834 Fix bug with morphs with missing normal deltas 2023-08-08 20:49:42 -04:00
Ammar Askar
c980bea304 Use correct morph target name in morph animations 2023-08-08 20:24:15 -04:00
Ammar Askar
cb5391f89b Fix up and document morph animations 2023-08-08 20:13:11 -04:00
Ammar Askar
570dc65407 Preserve order when storing morph/blend targets 2023-08-08 12:27:55 -04:00
Ammar Askar
ce57824e63 Add basic support for loading clothing meshes 2023-08-08 12:12:48 -04:00
Ammar Askar
96345c3186 Load blend shapes into meshes 2023-08-08 10:22:03 -04:00
Ammar Askar
4d4fc08724 Store morph targets read from GMDC 2023-08-07 22:55:39 -04:00
Ammar Askar
9d28ba09c0 Add cBoneDataExtension scenegraph reader 2023-08-07 22:08:42 -04:00
Ammar Askar
26312de18c Add WIP structure for new material types 2023-08-07 18:30:05 -04:00
Ammar Askar
d000ab5ea7 Start loading animation geometry elements from GMDC 2023-08-07 15:16:14 -04:00