Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Returns a view matrix, ie inverse world
- mat4 LookAt(const vec3& position, const vec3& target, const vec3& up) {
- vec3 forward = Normalized(target - position);
- vec3 right = Normalized(Cross(up, forward));
- vec3 newUp = Cross(forward, right);
- return
- mat4( // Rotation is transposed
- right.x, newUp.x, forward.x, 0.0f,
- right.y, newUp.y, forward.y, 0.0f,
- right.z, newUp.z, forward.z, 0.0f,
- -Dot(right, position), -Dot(newUp, position), -Dot(forward, position), 1.0f
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement