Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Matrix VFunction Matrix::LookTo(const Vector& position, const Vector& direction, const Vector& up)
- {
- Vector vForward = direction;
- Vector vRight = Vector::Normalize3(Vector::Cross(up, vForward));
- Vector vUp = Vector::Cross(vForward, vRight);
- Vector vNegativePosition = _mm_mul_ps(position, Vector::Constant::NegativeOne);
- Vector vX = Vector::Dot3(vForward, vNegativePosition);
- Vector vY = Vector::Dot3(vRight, vNegativePosition);
- Vector vZ = Vector::Dot3(vUp, vNegativePosition);
- Matrix vResult;
- vResult.z = Vector::Select(vX, vForward, Vector::Constant::Select1110);
- vResult.x = Vector::Select(vY, vRight, Vector::Constant::Select1110);
- vResult.y = Vector::Select(vZ, vUp, Vector::Constant::Select1110);
- vResult.w = Vector::Constant::IdentityR3.v;
- return Matrix::Transpose(vResult);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement