Releases: JOML-CI/JOML
Releases · JOML-CI/JOML
1.8.0
Changes compared to 1.7.1:
Breaking changes:
- renamed Matrix.*4x3() methods to Matrix.*Affine()
- removed Matrix4.unproject() overload taking explicit 'view' and 'projection' matrices
- changed Matrix4.origin() to not require 'this' to be affine
- changed Matrix4.set3x3() to only modify the upper left 3x3 submatrix, unlike Matrix4.set(Matrix3f)
Improvements:
- Performance improvement for all Matrix3/4.invert*() and .mul*() and other methods (See 0e29266 and 1d46507)
- Performance improvement for transferring a matrix from/to a NIO buffer via new MemUtil class
Additions:
- FrustumIntersection now implements a version of the "temporal coherency" frustum culling algorithm layed out in section 2.5 of Efficient View Frustum Culling in addition to "plane masking"
- added Matrix4.perspectiveLH(), .frustumLH(), .orthoLH(), .lookAtLH() - for left-handed coordinate systems, for example for people coming from Direct3D
- added Intersection.intersectLineSegmentPlane() and .intersectLineLine()
- added TrapezoidOrthoCrop - for implementing Trapezoidal Shadow Maps
- added Matrix4.orthoCrop() and .trapezoidCrop() - to support Trapezoidal Shadow Maps
- added Matrix4.projectedGridRange() - to support "Projected Grid" rendering
- added Matrix4.perspectiveFrustumSlice() - to support Cascaded Shadow Maps
- added Matrix4.frustumAabb() - to support Cascaded Shadow Maps
- added Matrix4.arcball() overload with 'dest' matrix parameter
- added Matrix4.invertAffineUnitScale()/invertLookAt() - for faster special-case matrix inversion
- added Matrix4.invertFrustum(), .invertOtho() and .invertPerspective() - for faster special-case matrix inversion
- added Matrix4.invertPerspectiveView() - for faster special-case matrix inversion
- added Matrix4.mulOrthoAffine() and .mulPerspectiveAffine() - for faster special-case matrix multiplication
- added Matrix4.translationRotateScaleMulAffine() - for faster special-case matrix composition/multiplication
- added Vulkan compatibility to all applicable Matrix4 methods, such as ortho() and perspective()
- added Matrix4.perspectiveFar(), .perspectiveNear()
- added Matrix4.transformAab() - to support fast AABB/frustum culling
- added Matrix4.originAffine() - was previously .origin()
- added MemUtil - for faster copying between Matrix and NIO Buffers using sun.misc.Unsafe when available
- added Vector.mul(), .add() with object and primitive overloads, where missing
- added Matrix4.translateLocal(), .rotateLocal(), .scaleLocal() - for pre-multiplication
- added Matrix3.rotateLocal(), .scaleLocal() - for pre-multiplication
- added Matrix4.rotateAffine()
- added Matrix4.unprojectRay(), .unprojectInvRay() - for ray picking
- added getter methods for matrix elements for future Matrix subclasses not using primitive fields
1.7.1
Release 1.7.1
1.7.0
Release 1.7.0
1.6.8
Maintenance release 1.6.8
1.6.7
Changes to the 1.6.6 release:
- rename Matrix4.transformPoint() -> .transformPosition()
- fix Vector3.maxComponent()
- fix Matrix3.determinant()
- fix various JavaDocs
- add hashCode()/equals() to all matrix classes
- add Matrix4.billboardCylindrical() and .billboardSpherical()
- add Matrix3.positiveX/Y/Z()
- add Matrix.swap()
- add Matrix4.transformAffine(Vector4)
- add Matrix4.origin(Vector3)
- add Matrix4.pick()
- add Matrix4.isAffine()
- add MatrixStack.rotateXYZ/YXZ/ZYX()
- add Vector3.minComponent()
1.6.6
Maintenance release 1.6.6
1.6.5
Maintenance release 1.6.5
1.6.0
New release version 1.6.0
1.5.0
Next release 1.5.0
1.4.0
Release 1.4.0