
We investigate accuracy issues regarding the spectral analysis of two-dimensional point sets. We demonstrate the sensitivity of amplitude/power spectrum and radial statistics to the type of Fourier transform and formulate recommendations for crucial analysis and formatting parameters. The goal of these recommendations is to facilitate the comparison of different point-set generation methods with respect to their spectral characteristics.
Abstract Shading models that wrap around the hemisphere have been used to approximate subsurface scattering, area light sources, and softer reflectance profiles. We generalize a specific technique that has been used in games by parameterizing the amount of wrapping while retaining important mathematical properties. We include details on how to incorporate theses models with spherical harmonic lighting.
In this article we describe and investigate tiled shading. The tiled techniques, though simple, enable substantial improvements to both deferred and forward shading. Tiled Shading has been previously discussed only in terms of deferred shading (tiled deferred shading). We contribute a more detailed description of the technique, introduce tiled forward shading (a generalization of tiled deferred shading to also apply to forward shading), and a thorough performance evaluation. Tiled Forward Shading has many of the advantages of deferred shading, for example, scene management and light management are decoupled. At the same time, unlike traditional deferred and tiled deferred shading, full screen antialiasing and transparency are trivially supported. We also present a thorough comparison of the performance of tiled deferred, tiled forward, and traditional deferred shading. Our evaluation shows that tiled deferred shading has the least variable worst-case performance, and scales the best with faster GPUs. Tiled deferred shading is especially suitable when there are many light sources. Tiled forward shading is shown to be competitive for scenes with fewer lights, and is much simpler than traditional forward shading techniques. Tiled shading also enables simple transitioning between deferred and forward shading. We demonstrate how this can be used to handle transparent geometry, frequently a problem when using deferred shading. Demo source code is available online at the address provided at the end of this paper.
We present an algorithm for generating Poisson-disc patterns taking O(N) time to generate $N$ points. The method is based on a grid of regions which can contain no more than one point in the final pattern, and uses an explicit model of point arrival times under a uniform Poisson process.
Clipping a triangle or a convex quadrilateral to a plane is a common operation in computer graphics. This clipping is implemented by fixed function units within the graphics pipeline under most rasterization application programming interfaces (APIs). It is increasingly interesting to perform clipping in programmable stages as well. For example, to clip bounding volumes generated in the geometry unit to the near plane or to clip an area light source to the tangent plane of a surface in a pixel unit. Although clipping a convex polygon is algorithmically trivial, doing so efficiently on vector architectures such as GPUs can be tricky. This article presents an implementation of Sutherland-Hodgman clipping, designed for vector processors. It has high branch coherence, uses only register storage (i.e., it does not require a move-relative memory operation), leverages both data and instruction parallelism, and has a peak register count of only two 4-vectors (7 scalars). I found it to be approximately five times faster than direct Sutherland-Hodgman and to yield a 45% increase in net throughput when applied to the algorithm from a previous publication on two GPU architectures. The principles of optimization presented for this class of parallel algorithm extend to other algorithms and architectures.
Here we present a GPU-based heuristic method for approximating the size and reflectivity of a room relative to a given sound source origin that can potentially provide interactive response for the appropriate selections of geometry and hardware. The method calculates the average distance to the nearest surfaces in the environment and an approximate measure of the fraction of sound energy that would be reflected from those surfaces. Both of these values are then used to drive the reverberation effects of an audio API. The method can potentially provide interactive response for the appropriate selections of geometry and hardware. Source code is available online at address provided at the end of this paper.
Simple tone reproduction methods, such as the Reinhard global photographic tone-mapping operator, are popular methods for mapping high-dynamic range images to a low-dynamic range display. However, these methods deal mainly with how luminance is mapped; much less attention has been paid to how a full RGB color is produced. We introduce a simple method, inspired by traditional photography's use of polarizers to manage color, to map RGB colors when using global photographic operators for luminance. This method allows the user to trade off luminance for colorfulness, avoids unpredictable hue shifts and desaturation of the image, and guarantees that results lie in the RGB color cube without clamping.
Abstract This paper presents a simple technique for computing approximate radiosity by using a novel approach to visibility determination called stochastic depth buffering. By rendering random depth buffer values and using a simple sampling scheme, we gather light from parallel, global directions using the GPU. The technique makes it possible to quickly update indirect light on commodity graphics hardware. It is easy to implement and offers good trade-offs between performance and visual quality.
We present a representation of an axis-aligned bounding volume hierarchy (BVH) for ray tracing that removes redundant bounding information from the data structure. The observation that two children of a binary BVH node share at least six planes with their parent node leads to two possible optimizations: (a) the size of the data structure can be optimized by storing six floats instead of 12 for the bounds of the two children, and (b) the box-intersection code can be optimized by avoiding the reintersection with shared planes. These optimizations reduce memory consumption of the hierarchy by 37.5 percent with only a marginal impact on ray-shooting performance.
The SLERP of quaternions is a common operation in keyframe animation. The operation can be a significant bottleneck in an animation-heavy application. The standard implementation of SLERP for an FPU typically involves trigonometric function evaluations, divisions, and branching. Commonly available SIMD implementations will modify the standard implementation and obtain a moderate speed-up. This paper provides a novel approach to computing SLERP, using only multiplications and additions. The algorithm is based on ideas from Chebyshev polynomials, power series solutions for differential equations, and error balancing using the Chebyshev Equioscillation Theorem and the associated Remez Algorithm. Implementations are provided for the FPU and SIMD. When SLERPing a pair of quaternions in parallel using four time samples, performance measurements show a 10-fold acceleration per SLERP over the standard SLERP implementation on an FPU. Source code is available online.
Although its applications span a broad scope of scientific fields ranging from applied physics to computer graphics, the exponential integral is a nonelementary special function available in specialized software packages but not in standard libraries, consequently requiring custom implementations on most platforms. In this paper, we provide a concise and comprehensive description of how to evaluate the complex-valued exponential integral. We first introduce some theoretical background on the main characteristics of the function, and outline available third-party proprietary implementations. We then provide an analysis of the various known representations of the function and present an effective algorithm allowing the computation of results within a desired accuracy, together with the corresponding pseudocode in order to facilitate portability onto various systems. An application to the calculation of the closed-form solution to single light scattering in homogeneous participating media illustrates the practical benefits of the provided implementation with the hope that, in the long term, the latter will contribute to standardizing the availability of the complex-valued exponential integral on graphics platforms.
A method is presented for calculating the singular values used in texture stretch analysis. Based on the side lengths of the triangles involved, the method benefits from efficiency gained when the calculation of side lengths is shared by adjacent triangles in a patch. The method employs a new tool called the triangle product. An analogous tetrahedral product is also discussed.
Abstract We present a fast and simple method for adding high-frequency shadows into the foliage of trees rendered in real-time. When leaves of a tree project shadows onto other leaves, determining the relationships between cast shadows and the corresponding occluders is a visually difficult task. We present a method based on this assumption to quickly determine shadows cast by leaves onto other leaves. To this end, we simulate the presence of these shadows rather than projecting them exactly. The characteristics of these simulated shadows (movement, parallax, size, softness, and color) evolve realistically when the lighting conditions change. Our method is fast and supports soft shadows.
Most graphics packages allow users to create arcs from both circles and ellipses. Unfortunately, in some packages the elliptical arcs are drawn incorrectly, resulting in distorted arcs that do not begin and end at the specified angles. Based on the hypothesis that this is because the system is drawing elliptical arcs by non-uniformly scaling circular arcs, this paper presents the geometry for pre-distorting the desired angles so that the final image is correct.
Original bump mapping is only defined for surfaces with a known surface parametrization. In this paper a new method, for the GPU, is presented which does not use such a given parametrization. To compute the perturbed normal, the only inputs used are the surface position, the height value and the original normal. The method decouples bump mapping from the primitive type, thus allowing for a higher degree of proceduralism in generation of both the height value and the surface.
For triangles with linear vertex motion, common practice is to backface cull a triangle if it is backfacing at both the start and end of the motion. However, this is not conservative. We derive conservative tests that guarantee that a moving triangle is backfacing over an entire time interval and over the area of a lens. In addition, we present tests for the special cases of only motion blur and only depth of field. Our techniques apply to real-time and offline rendering, and to both stochastic point sampling and analytical visibility methods. The rendering errors introduced by the nonconservative test can easily be detected for large defocus blur, but in the majority of cases the errors are hard to detect. We conclude that our tests are needed if one needs guaranteed artifact-free images. Finally, as a side result, we derive time-continuous Bézier edge equations.
Abstract We present implementations of the spherical harmonic forward and inverse transforms on the GPU using CUDA. We implement two algorithms for the SH transform: the direct method and the semi-naive. Our direct method has low storage requirements due to our on-the-fly computation of the associated Legendre functions, and it can perform large transform sizes and non-power-of-two sizes. Our semi-naive implementation is faster than state-of-the-art CPU implementations by a factor of between five and six, depending on the transform size. We target our implementations at spherical panoramic image processing where a large number of basis functions are required. We apply our tool to decompose panoramic images into an overcomplete spherical wavelet model for spherical convolution. We present timings, errors, and application examples of our implementations.
This paper presents a method for quickly and seamlessly stitching together triangle meshes generated from multiresolution voxel data with the marching cubes algorithm. A layer of transition cells is inserted between volumes of differing voxel resolutions, and triangles are generated for these cells using a new algorithm that is based on a concept similar to that of marching cubes, but operates on voxel data at two different resolutions. To enable high performance for dynamically changing voxel data, our stitching algorithm requires access only to local data in the voxel map.
A new algorithmic technique for generating beautiful raster-based patterns is presented. The technique is quite simple and generates both periodic and aperiodic patterns. The technique is based on the phenomenon of unpainted pixels that occur sometimes in forward affine 2D texture mapping where, under certain conditions, the unpainted pixels are distributed in well-organized, eye-pleasing patterns. These patterns are intrinsically discrete, and they perform well even under low spatial and color resolution conditions, which makes the technique a good alternative to hand-designed decorating patterns commonly known as pixel patterns.
Abstract Recently efficient algorithms have been published for generating large point sets with Poisson-disk distribution. With their blue noise spectral characteristics, Poisson-disk distributions are considered to produce visually pleasing patterns. Some applications, e.g., non photo-realistic rendering (NPR), require, in addition to efficiency, the production of aesthetically pleasing point sets adapted to an arbitrary image or function. We present a novel linear order stippling method that generates a set of points with Poisson-disk distribution adapted to arbitrary images and compare this method with existing methods using two quantitative evaluation metrics, radial mean and anisotropy, to assess the technique.