Package org.joml

Class FrustumRayBuilder


  • public class FrustumRayBuilder
    extends java.lang.Object
    Provides methods to compute rays through an arbitrary perspective transformation defined by a Matrix4fc.

    This can be used to compute the eye-rays in simple software-based raycasting/raytracing.

    To obtain the origin of the rays call origin(Vector3f). Then to compute the directions of subsequent rays use dir(float, float, Vector3f).

    Author:
    Kai Burjack
    • Constructor Detail

      • FrustumRayBuilder

        public FrustumRayBuilder()
        Create a new FrustumRayBuilder with an undefined frustum.

        Before obtaining ray directions, make sure to define the frustum using set(Matrix4fc).

      • FrustumRayBuilder

        public FrustumRayBuilder​(Matrix4fc m)
        Create a new FrustumRayBuilder from the given matrix by extracing the matrix's frustum.
        Parameters:
        m - the Matrix4fc to create the frustum from
    • Method Detail

      • origin

        public Vector3fc origin​(Vector3f origin)
        Store the eye/origin of the perspective frustum in the given origin.
        Parameters:
        origin - will hold the perspective origin
        Returns:
        the origin vector
      • dir

        public Vector3fc dir​(float x,
                             float y,
                             Vector3f dir)
        Obtain the normalized direction of a ray starting at the center of the coordinate system and going through the near frustum plane.

        The parameters x and y are used to interpolate the generated ray direction from the bottom-left to the top-right frustum corners.

        Parameters:
        x - the interpolation factor along the left-to-right frustum planes, within [0..1]
        y - the interpolation factor along the bottom-to-top frustum planes, within [0..1]
        dir - will hold the normalized ray direction
        Returns:
        the dir vector