TL;DR: It is shown that aliasing artifacts are not an inherent part of point sampling, but a consequence of using regularly spaced samples, and frequencies above the Nyquist limit do not alias, but instead appear as noise of the correct average intensity.
Abstract: Ray tracing, ray casting, and other forms of point sampling are important techniques in computer graphics, but their usefulness has been undermined by aliasing artifacts. In this paper it is shown that these artifacts are not an inherent part of point sampling, but a consequence of using regularly spaced samples. If the samples occur at appropriate nonuniformly spaced locations, frequencies above the Nyquist limit do not alias, but instead appear as noise of the correct average intensity. This noise is much less objectionable to our visual system than aliasing. In ray tracing, the rays can be stochastically distributed to perform a Monte Carlo evaluation of integrals in the rendering equation. This is called distributed ray tracing and can be used to simulate motion blur, depth of field, penumbrae, gloss, and translucency.
TL;DR: In this article, an initial path estimate is perturbed using a geometric interpretation of the ray equations, and the travel time along the path is minimized in a piecewise fashion, iteratively performed until the travel times converges within a specified limit.
Abstract: A new approximate algorithm for two-point ray tracing is proposed and tested in a variety of laterally heterogeneous velocity models. An initial path estimate is perturbed using a geometric interpretation of the ray equations, and the travel time along the path is minimized in a piecewise fashion. This perturbation is iteratively performed until the travel time converges within a specified limit. Test results show that this algorithm successfully finds the correct travel time within typical observational error much faster than existing three-dimensional ray tracing programs. The method finds an accurate ray path in a fully three-dimensional form even where lateral variations in velocity are severe. Because our algorithm utilizes direct minimization of the travel time instead of solving the ray equations, a simple linear interpolation scheme can be employed to compute velocity as a function of position, providing an added computational advantage.
TL;DR: A fast and simple voxel traversal algorithm through a 3D space partition is introduced that is a variant of the DDA line algorithm and allows for simpler traversal at the expense of more voxels.
Abstract: A fast and simple voxel traversal algorithm through a 3D space partition is introduced. Going from one voxel to its neighbour requires only two floating point comparisons and one floating point addition. Also, multiple ray intersections with objects that are in more than one voxel are eliminated. Introduction In recent years, ray tracing has become the algorithm of choice for generating high fidelity images. Its simplicity and elegance allows one to easily model reflection, refraction and shadows. Unfortunately, it has a major drawback: computational expense. The prime reason for this is that the heart of ray tracing, intersecting an object with a ray, is expensive and can easily take up to 95% of the rendering time. Unless some sort of intersection culling is performed, each ray must intersect all the objects in the scene, a very expensive proposition. There are two general strategies for intersection culling: hierarchical bounding volumes 2, 3, 4 and space partitioning. 6, 7, 8 The general idea of the first approach is to envelop complicated objects that take a long time to intersect with simpler bounding volumes that are much easier to intersect, such as spheres or boxes. Before intersecting the complicated object, the bounding volume is first intersected. (Actually, it is not a full intersection test; all we care about is if the ray hits the bounding volume, not where). If there is no intersection with the bounding volume, there is no need to intersect the complicated object, thus saving time. For a complicated scene made up of many objects, a bounding volume is placed around the entire scene with each object also containing a bounding volume. If an object is made up of several parts each of these parts can also have a bounding volume. We thus can built a tree of bounding volumes, with each node containing a bounding volume that envelops its children. Objects within a subtree are intersected only if their parent node bounding volume is intersected by the ray. In this manner, the amount of actual intersections are significantly reduced. Of course, we now hav e to spent time intersecting bounding volumes but this is more than offset by the reduced total intersections. The second approach of reducing intersections is to partition space itself into regions or voxels. Each voxel has a list of objects that are in that voxel. If an object spans several voxels it is in more than one list. When a ray is shot, we first look into the voxel in which it originates. If it hits any objects in the starting voxel’s list, the intersections are sorted and the closest one is retained. If the intersection is in the current voxel there is no need to intersect any other objects as we have found the closest intersection. If no intersection is found in the current voxel or the object list is empty, we follow the ray into a neighbouring voxel and check its object list. We continue until either we find an intersection or we completely traverse the space partition. Since we intersect objects roughly in the order as they occur along the ray and trivially reject objects far from the ray, the number of intersections that need to be performed is vastly reduced. There are two popular space partition schemes: octrees by Glassner, where voxels are of different sizes, and constant size voxel partitioning (hereafter called a grid partition) by Fujimoto et. al. 8 The first conserves space but makes traversal difficult while the latter allows for simpler traversal at the expense of more voxels. In this paper, we introduce a fast and simple incremental grid traversal algorithm. Like Fujimoto et. al., 8 it is a variant of the DDA line algorithm. However, instead of basing it on the simple DDA (Fujimoto et. al.), in which an unconditional step along one axis is required, ours has no preferred axis. This considerably simplifies the inner loop and allows for easy testing of an intersection point to see if it is in the current voxel. Along with the the new traversal algorithm, we introduce a technique to eliminate multiple intersections when an object spans several voxels. This technique can be used with all space subdivision algorithms with minimum modifications. The New Traversal Algorithm Let us derive the new traversal algorithm. We consider the two dimensional case first; the extension to three dimensions is straightforward. Consider figure 1:
TL;DR: In this article, an octree-based algorithm is proposed to reduce the number of time-consuming object-ray intersection calculations by associating a given voxel with only those objects whose surfaces pass through the volume of the Voxel, which makes possible the ray tracing of complex scenes by medium-scale and small-scale computers.
Abstract: An algorithm is described that speeds up ray-tracing techniques by reducing the number of time-consuming object-ray intersection calculations that have to be made. The algorithm is based on subdividing space into an octree, associating a given voxel with only those objects whose surfaces pass through the volume of the voxel. It includes a technique for obtaining fast access to any node and a mechanism for finding the next node intersected by a ray when it has hit nothing in the current node. This new algorithm makes possible the ray tracing of complex scenes by medium-scale and small-scale computers.
TL;DR: The Gaussian beam method as mentioned in this paper associates with each ray a beam with a Gaussian intensity profile normal to the ray, and the beamwidth and curvature are governed by an additional pair of differential equations, which are integrated along with the usual ray equations to compute the beam field.
Abstract: The method of Gaussian beam tracing has recently received a great deal of attention in the seismological community. In comparison to standard ray tracing, the method has the advantage of being free of certain ray‐tracing artifacts such as perfect shadows and infinitely high energy at caustics. It also obviates the need for eigenray computations. The technique is especially attractive for high‐frequency, range‐dependent problems where normal mode, FFP, or parabolic models are not practical alternatives. The Gaussian beam method associates with each ray a beam with a Gaussian intensity profile normal to the ray. The beamwidth and curvature are governed by an additional pair of differential equations, which are integrated along with the usual ray equations to compute the beam field in the vicinity of the central ray of the beam. We have adapted the beam‐tracing method to the typical ocean acoustic problem of a point source in a cylindrically symmetric waveguide with depth‐dependent sound speed. We present an overview of the method and a comparison of results obtained by conventional ray‐tracing, beam‐tracing, and full‐wave theories. These results suggest that beam tracing is markedly superior to conventional ray tracing.