

For use with a 4x4 matrix, a point is represented by and a direction vector is represented by. Transforms are easily concatenated via matrix arithmetic. A transform includes rotations around the three axes, independent scaling along the axes, translations in 3D, and even skewing. The mathematical technique is common to computer graphics and geometric modeling. A homogeneous coordinate transformation is represented by 4x4 matrix.

So, instead of projecting curved edges and surfaces in the 3D scene to the 2D image plane, transformed lines (rays) are intersected with the objects in the scene. Ray casting greatly simplified image rendering of 3D objects and scenes because a line transforms to a line. Plus, silhouettes of curved surfaces have to be explicitly solved for whereas it is an implicit by-product of ray casting, so there is no need to explicitly solve for it whenever the view changes. Rendering an image in that way is difficult to achieve with hidden surface/edge removal. The world-to-image plane projection is a 3D homogeneous coordinate system transformation (aka: 3D projection, affine transformation, or projective transform ( Homography)). This figure on the right shows a U-Joint modeled from cylinders and blocks in a binary tree using Roth's ray casting system, circa 1979.īefore ray casting (and ray tracing), computer graphics algorithms projected surfaces or edges (e.g., lines) from the 3D world to the image plane where visibility logic had to be applied. See Solid modeling for a broad overview of solid modeling methods. The general idea of using these binary operators for solid modeling is largely due to Voelcker and Requicha's geometric modelling group at the University of Rochester. His paper, "Ray Casting for Modeling Solids", describes modeled solid objects by combining primitive solids, such as blocks and cylinders, using the set operators union (+), intersection (&), and difference (-). The term "Ray Casting" was introduced by Scott Roth while at the General Motors Research Labs from 1978–1980. It is essentially the same as ray tracing for computer graphics where virtual light rays are "cast" or "traced" on their path from the focal point of a camera through each pixel in the camera sensor to determine what is visible along the ray in the 3D scene. Ray casting is the methodological basis for 3D CAD/CAM solid modeling and image rendering. Ray-cast image of idealized universal joint with shadow
