From 23e335d93355a948adeb8d10ee6277939aaab43e Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 30 Apr 2018 02:47:48 +0200 Subject: Implemented MeshTangents() - Added Vector3OrthoNormalize() to raymath.h - not sure if it is correct - Implemented MeshBinormals() - Mesh struct has not a place for them... - Updated model_material_pbr example - tested but not working on my GPU (old Intel HD), actually, it never worked on it... --- src/raymath.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/raymath.h') diff --git a/src/raymath.h b/src/raymath.h index d49f3622..b0046522 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -372,6 +372,17 @@ RMDEF Vector3 Vector3Normalize(Vector3 v) return result; } +// Orthonormalize provided vectors +// Makes vectors normalized and orthogonal to each other +// Gram-Schmidt function implementation +RMDEF void Vector3OrthoNormalize(Vector3 *v1, Vector3 *v2) +{ + *v1 = Vector3Normalize(*v1); + Vector3 vn = Vector3CrossProduct(*v1, *v2); + vn = Vector3Normalize(vn); + *v2 = Vector3CrossProduct(vn, *v1); +} + // Transforms a Vector3 by a given Matrix RMDEF Vector3 Vector3Transform(Vector3 v, Matrix mat) { -- cgit v1.2.3