Skip to content

Releases: JOML-CI/JOML

1.8.0

03 Jun 19:08
Compare
Choose a tag to compare

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

02 Sep 22:41
Compare
Choose a tag to compare
Release 1.7.1

1.7.0

02 Sep 22:42
Compare
Choose a tag to compare
Release 1.7.0

1.6.8

02 Sep 22:42
Compare
Choose a tag to compare
Maintenance release 1.6.8

1.6.7

02 Jan 21:07
Compare
Choose a tag to compare

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

02 Sep 22:44
Compare
Choose a tag to compare
Maintenance release 1.6.6

1.6.5

02 Sep 22:44
Compare
Choose a tag to compare
Maintenance release 1.6.5

1.6.0

02 Sep 22:45
Compare
Choose a tag to compare
New release version 1.6.0

1.5.0

02 Sep 22:46
Compare
Choose a tag to compare
Next release 1.5.0

1.4.0

02 Sep 22:46
Compare
Choose a tag to compare
Release 1.4.0