From ef2e111fd209dba140c9062ad5275dc9294a3e78 Mon Sep 17 00:00:00 2001 From: Nan Date: Sun, 28 Jan 2024 11:00:23 +0800 Subject: [PATCH] look at ik tests --- expected/look_at/look_at_ik_00.rkyv | Bin 0 -> 14128 bytes expected/look_at/look_at_ik_01.rkyv | Bin 0 -> 14128 bytes expected/look_at/look_at_ik_02.rkyv | Bin 0 -> 14128 bytes expected/look_at/look_at_ik_03.rkyv | Bin 0 -> 14128 bytes expected/look_at/look_at_ik_04.rkyv | Bin 0 -> 14128 bytes expected/look_at/look_at_ik_05.rkyv | Bin 0 -> 14128 bytes expected/look_at/look_at_ik_06.rkyv | Bin 0 -> 14128 bytes expected/look_at/look_at_ik_07.rkyv | Bin 0 -> 14128 bytes expected/look_at/look_at_ik_08.rkyv | Bin 0 -> 14128 bytes expected/look_at/look_at_ik_09.rkyv | Bin 0 -> 14128 bytes expected/look_at/look_at_ik_10.rkyv | Bin 0 -> 14128 bytes resource/look_at/animation.ozz | Bin 0 -> 27312 bytes resource/look_at/skeleton.ozz | Bin 0 -> 3818 bytes tests/look_at.rs | 154 ++++++++++++++++++++++++++++ 14 files changed, 154 insertions(+) create mode 100644 expected/look_at/look_at_ik_00.rkyv create mode 100644 expected/look_at/look_at_ik_01.rkyv create mode 100644 expected/look_at/look_at_ik_02.rkyv create mode 100644 expected/look_at/look_at_ik_03.rkyv create mode 100644 expected/look_at/look_at_ik_04.rkyv create mode 100644 expected/look_at/look_at_ik_05.rkyv create mode 100644 expected/look_at/look_at_ik_06.rkyv create mode 100644 expected/look_at/look_at_ik_07.rkyv create mode 100644 expected/look_at/look_at_ik_08.rkyv create mode 100644 expected/look_at/look_at_ik_09.rkyv create mode 100644 expected/look_at/look_at_ik_10.rkyv create mode 100644 resource/look_at/animation.ozz create mode 100644 resource/look_at/skeleton.ozz create mode 100644 tests/look_at.rs diff --git a/expected/look_at/look_at_ik_00.rkyv b/expected/look_at/look_at_ik_00.rkyv new file mode 100644 index 0000000000000000000000000000000000000000..d84ae8122020f4e0f3b6571353608ef4841c09a4 GIT binary patch literal 14128 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 literal 0 HcmV?d00001 diff --git a/expected/look_at/look_at_ik_06.rkyv b/expected/look_at/look_at_ik_06.rkyv new file mode 100644 index 0000000000000000000000000000000000000000..50f06069f7483f9a8836b027f61babac3aaacd0e GIT binary patch literal 14128 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 G{rf*n$hXu0 literal 0 HcmV?d00001 diff --git a/expected/look_at/look_at_ik_08.rkyv b/expected/look_at/look_at_ik_08.rkyv new file mode 100644 index 0000000000000000000000000000000000000000..8284ff8b250ce4d894ff0e8dd322d493be8ff718 GIT binary patch literal 14128 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

8y((GE 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 AHUIzs literal 0 HcmV?d00001 diff --git a/expected/look_at/look_at_ik_10.rkyv b/expected/look_at/look_at_ik_10.rkyv new file mode 100644 index 0000000000000000000000000000000000000000..b9af24af647a57ef048150f8367624f5dfaf8765 GIT binary patch literal 14128 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 YD_fR2x9Wwz3|Z%~>P7vxLDc^L2L$QEcmMzZ literal 0 HcmV?d00001 diff --git a/resource/look_at/skeleton.ozz b/resource/look_at/skeleton.ozz new file mode 100644 index 0000000000000000000000000000000000000000..2418db26bf194e9a30fd3a47a1e58c3d9ad17d10 GIT binary patch literal 3818 zcmbW3dt6gT7RQH|B3fImZR8p3>atQ?t;!0vf)yVq;Ij%=3uNcqa3SHd`%n3NhBLpJoHO6g zZ{`H7VmEL0PFSm4r`!-5gRBukbIAC{2BEpCxCFFNxh_eSfELB6Vw9%e5>t?xf((T! zSFc5Ll`A8VzbZ~Faf4}S;wluPjNGtjO>E-22xUAgX2(afF(@`($<5cSjEP_u=aR|d zHHp!yB$iTYDP{eKgt!H%VxpAsV(ui!pBEFM+&Gxe%E5eA4$YUC=g(I~M66Q|7BK0- z3MM_Ygw(u5IH4LW0BSHD)X-$v(By@xn6;ZME3iwJW!R;mwS1sfxGHMRpzW*zuh|J_ zJS)I3)3TZM13T90!wXH!NPp51ZzG#`6Y27$|&~Haxo}2b_2Trlm0huYLyVT z#j#5E3A2ZpQrRiwvJ*CWU}ljWK9FrRB4kB+*9O@lJ2VUpCu0P1KqJv8^bQ)0-X(Di z8jId1@dNZB;*scxoRBk#6Ob#KNIpLa@sR+zBM;<>CX*;cQ;`>m-e@`!ktjh@BqPxm zeS~I^vt}YWQXoubeuzf1&}_72b8|8I>OkYNGpQYayh{bX*+GLopQzVIdKT!@GLsq5 z>1P^b$8<69+3Ieiu}X2ra2lnKI0kwc89~8vqC=gzeXE+QGs)bI44UkdnyJ5SgndU* z%nM3e)kOu1PEk9YYxNE@uIN!=KI7s%N8}u)DIWK1Uva$WNnKC7TqrWy9Rscdw=`w9 zt^~{87}cJ}Pv+%zC-%q=AMz+iXcl1_;r{w@3N9F5f;lefFKW8^xq5)nitzRs|G(z) zT=NuuTWnVt=HbbHSC?(~b7;~E4qD|`p6_}-xjVd2LUhp-M?TdWIJN`@!};@sa}$O1 z9c*j3FvnU;>Nw_K^kObpsi=m#eUpe^+M*_!Zav$MeY;W(a86LHKYqMSO~2YY$YV5P z15VH!Z?D6!DRn8!wtZi={B)Ga@ySn2(L~LRmUqUK3DNzx!M2c$$Zw z%E6c373V-J-)^I+eVbYTfQ93MXk+Fj`1+!s4|p}}?Wi3)TPWGvsg&mWW$e%-kiFA% zQ7(Hpy;#5Jo|yQ7`dp?Ol4}Je`%%7*_~E`{+Ihw8&Md`t=VJ=8tt$<^Uzz@PHhz7e z5w!H$e-;=XK8;c&o!G_tce6-MFMg}0pRF?a$N2+n;4c?@%rvaQa1hnuU*&C-@VcDR zY`zA3N?#`ZWjqXVPZfnI9{Vt>;;L-2pM&m?j z@R=PX&0@P`I`N+I8G{co15sreCO*y^h~OU# zV1~hQa*UB}4LGOaCgqxU1xGH{vV5J_F3Z6;_#u84+~Yq1U&vfb?iWeo_x_0Y*yb~W zgwL5i6 zr5|T~jY~cJnV!Y_!V2v#2)Zzq!rdv1_`ykr)RlDndADI~rLTP5 zh6BJSsq`kEbgOBxV(<>3PCrjI@R;8(XxN9f@M(8(^O1H+^OZBTJOTPwP)?Wau6VMM zU+#8I;6wN%tqW|K?s8l4lktU8$kQau$BCbJDi$LfY*gjAi#AEAW%@woLU1M9&q7_a zq3B?*yaa0ueMV!+s8BWiDfxb(Lrmv_H!z?UiPaoSzaC%%KGz?baGTeURAfj!UhZ4S z`p28@u2`ZKln3ORzW>7C>tROXy`tjg0vXhpkQdBUE^5Gg#CI@Co#pPIeuNrzd|9R1 zwT<+%S`wc*-f;U;q5MJecEXn@x!AXju4`A*%jcTzjeBe6e4K}{#`yn5T^JX^O9xr}b_mPh1vVD2A)W{}*t~0Et5OSPsL^w3vF85{4$+OPF^j6z^}79t@E|{Aj!~V7eXO)Lbvd~jqGr`nl3zL@{eQb=die6&Q~}G zM()8El(6k21&mU{=-x5P{2F51s!PV#vVq literal 0 HcmV?d00001 diff --git a/tests/look_at.rs b/tests/look_at.rs new file mode 100644 index 0000000..00d2dc6 --- /dev/null +++ b/tests/look_at.rs @@ -0,0 +1,154 @@ +#![cfg(feature = "rkyv")] + +use glam::{Mat4, Quat, Vec3A}; +use ozz_animation_rs::*; +use rkyv::{Archive, Deserialize, Serialize}; +use std::rc::Rc; + +#[derive(Debug, PartialEq, Archive, Serialize, Deserialize)] +struct TestData { + locals1: Vec, + locals2: Vec, + models1: Vec, + models2: Vec, + joint_corrections: [Quat; 4], + reacheds: [bool; 4], +} + +const JOINT_NAMES: &'static [&'static str] = &["Head", "Spine3", "Spine2", "Spine1"]; + +const TARGET_EXTENT: f32 = 1.0; +const TARGET_OFFSET: Vec3A = Vec3A::new(0.2, 1.5, -0.3); +const EYES_OFFSET: Vec3A = Vec3A::new(0.07, 0.1, 0.0); + +#[test] +fn test_deterministic_look_at() { + let skeleton = Rc::new(Skeleton::from_file("./resource/look_at/skeleton.ozz").unwrap()); + let animation = Rc::new(Animation::from_file("./resource/look_at/animation.ozz").unwrap()); + + let joints_chain = [ + skeleton.joint_by_name(JOINT_NAMES[0]).unwrap(), + skeleton.joint_by_name(JOINT_NAMES[1]).unwrap(), + skeleton.joint_by_name(JOINT_NAMES[2]).unwrap(), + skeleton.joint_by_name(JOINT_NAMES[3]).unwrap(), + ]; + if !validate_joints_order(&skeleton, &joints_chain) { + panic!("Invalid joints chain"); + } + + let locals1 = ozz_buf(vec![SoaTransform::default(); skeleton.num_soa_joints()]); + let locals2 = ozz_buf(vec![SoaTransform::default(); skeleton.num_soa_joints()]); + let models1 = ozz_buf(vec![Mat4::default(); skeleton.num_joints()]); + let models2 = ozz_buf(vec![Mat4::default(); skeleton.num_joints()]); + + let mut sample_job: SamplingJob = SamplingJob::default(); + sample_job.set_animation(animation.clone()); + sample_job.set_context(SamplingContext::new(skeleton.num_joints())); + sample_job.set_output(locals1.clone()); + + let mut l2m_job1: LocalToModelJob = LocalToModelJob::default(); + l2m_job1.set_skeleton(skeleton.clone()); + l2m_job1.set_input(locals1.clone()); + l2m_job1.set_output(models1.clone()); + + let mut ik_job = IKAimJob::default(); + + let mut l2m_job2: LocalToModelJob = LocalToModelJob::default(); + l2m_job2.set_skeleton(skeleton.clone()); + l2m_job2.set_input(locals2.clone()); + l2m_job2.set_output(models2.clone()); + + for i in 0..=10 { + let time = i as f32; + let delta = (time / 5.0).fract(); + + let animated_target = Vec3A::new(f32_sin(time * 0.5), f32_cos(time * 0.25), f32_cos(time) * 0.5 + 0.5); + let target = animated_target * TARGET_EXTENT + TARGET_OFFSET; + + sample_job.set_ratio(delta); + sample_job.run().unwrap(); + + l2m_job1.run().unwrap(); + locals2.borrow_mut().clone_from_slice(locals1.borrow().as_slice()); + + ik_job.set_pole_vector(Vec3A::Y); + ik_job.set_target(target); + + let mut joint_corrections = [Quat::IDENTITY; 4]; + let mut reacheds = [false; 4]; + + let mut previous_joint = SKELETON_NO_PARENT; + for (idx, joint) in joints_chain.iter().enumerate() { + ik_job.set_joint(models1.vec().unwrap()[*joint as usize].into()); + ik_job.set_up(Vec3A::X); + + if idx == joints_chain.len() - 1 { + ik_job.set_weight(1.0); + } else { + ik_job.set_weight(0.5); + } + + if idx == 0 { + ik_job.set_offset(EYES_OFFSET); + ik_job.set_forward(Vec3A::Y); + } else { + let transform: Mat4 = models1.vec().unwrap()[previous_joint as usize].into(); + let corrected_forward_ms = + transform.transform_vector3a(ik_job.joint_correction().mul_vec3a(ik_job.forward())); + let corrected_offset_ms = + transform.transform_point3a(ik_job.joint_correction().mul_vec3a(ik_job.offset())); + + let transform: Mat4 = models1.vec().unwrap()[*joint as usize].into(); + let inv_transform = transform.inverse(); + ik_job.set_offset(inv_transform.transform_point3a(corrected_offset_ms)); + ik_job.set_forward(inv_transform.transform_vector3a(corrected_forward_ms)); + } + + ik_job.run().unwrap(); + joint_corrections[idx] = ik_job.joint_correction(); + reacheds[idx] = ik_job.reached(); + + { + let mut locals_mut = locals2.vec_mut().unwrap(); + let idx = *joint as usize; + let quat = locals_mut[idx / 4].rotation.col(idx & 3) * ik_job.joint_correction(); + locals_mut[idx / 4].rotation.set_col(idx & 3, quat); + } + + previous_joint = *joint as i32; + } + + l2m_job2.set_from(previous_joint); + l2m_job2.run().unwrap(); + + let data = TestData { + locals1: locals1.vec().unwrap().clone(), + locals2: locals2.vec().unwrap().clone(), + models1: models1.vec().unwrap().clone(), + models2: models2.vec().unwrap().clone(), + joint_corrections, + reacheds, + }; + + test_utils::compare_with_rkyv("look_at", &format!("look_at_ik_{:02}", i), &data).unwrap(); + } +} + +fn validate_joints_order(skeleton: &Skeleton, joints: &[i16]) -> bool { + if joints.len() == 0 { + return true; + } + + let mut i = 1; + let mut joint = joints[0]; + let mut parent = skeleton.joint_parent(joint as usize); + while i != joints.len() && (joint as i32) != SKELETON_NO_PARENT { + if parent == joints[i] { + i += 1; + } + joint = parent; + parent = skeleton.joint_parent(joint as usize); + } + + return joints.len() == i; +}