Fix directional shadow alignment across backends

This commit is contained in:
2026-04-05 12:40:34 +08:00
parent bc6722e5ab
commit ec97445071
5 changed files with 677 additions and 50 deletions

View File

@@ -133,13 +133,10 @@ Quaternion Quaternion::LookRotation(const Vector3& forward, const Vector3& up) {
Vector3 r = Vector3::Normalize(Vector3::Cross(upVec, f));
Vector3 u = Vector3::Cross(f, r);
Matrix4 m;
m.m[0][0] = r.x; m.m[0][1] = r.y; m.m[0][2] = r.z;
m.m[1][0] = u.x; m.m[1][1] = u.y; m.m[1][2] = u.z;
m.m[2][0] = f.x; m.m[2][1] = f.y; m.m[2][2] = f.z;
m.m[0][3] = m[1][3] = m[2][3] = 0.0f;
m.m[3][0] = m[3][1] = m[3][2] = 0.0f;
m.m[3][3] = 1.0f;
Matrix4 m = Matrix4::Identity();
m.m[0][0] = r.x; m.m[1][0] = r.y; m.m[2][0] = r.z;
m.m[0][1] = u.x; m.m[1][1] = u.y; m.m[2][1] = u.z;
m.m[0][2] = f.x; m.m[1][2] = f.y; m.m[2][2] = f.z;
return FromRotationMatrix(m);
}