69 results
Search Results
Now showing 1 - 10 of 69
Item Yocto/GL: A Data-Oriented Library For Physically-Based Graphics(The Eurographics Association, 2019) Pellacini, Fabio; Nazzaro, Giacomo; Carra, Edoardo; Agus, Marco and Corsini, Massimiliano and Pintus, RuggeroIn this paper we present Yocto/GL, a software library for computer graphics research and education. The library is written in C++ and targets execution on the CPU, with support for basic math, geometry and imaging utilities, path tracing and file IO. What distinguishes Yocto/GL from other similar projects is its minimalistic design and data-oriented programming style, which makes the library readable, extendible, and efficient. We developed Yocto/GL to meet our need, as a research group, of a simple and reliable codebase that lets us experiment with ease on research projects of various kind. After many iterations carried out over a few years, we settled on a design that we find effective for our purposes. In the hope of making our efforts valuable for the community, we share our experience in the development and make the library publicly available.Item Compressed Bounding Volume Hierarchies for Efficient Ray Tracing of Disperse Hair(The Eurographics Association, 2018) Martinek, Magdalena; Stamminger, Marc; Binder, Nikolaus; Keller, Alexander; Beck, Fabian and Dachsbacher, Carsten and Sadlo, FilipRay traced human hair is becoming more and more ubiquitous in photorealistic image synthesis. Despite hierarchical data structures for accelerated ray tracing, performance suffers from the bad separability inherent with ensembles of hair strands. We propose a compressed acceleration data structure that improves separability by adaptively subdividing hair fibers. Compression is achieved by storing quantized as well as oriented bounding boxes and an indexing scheme to specify curve segments instead of storing them. We trade memory for speed, as our approach may use more memory, however, in cases of highly curved hair we can double the number of traversed rays per second over prior work. With equal memory we still achieve a speed-up of up to 30%, with equal performance we can reduce memory by up to 30%.Item Stratified Sampling of Projected Spherical Caps(The Eurographics Association and John Wiley & Sons Ltd., 2018) Ureña, Carlos; Georgiev, Iliyan; Jakob, Wenzel and Hachisuka, ToshiyaWe present a method for uniformly sampling points inside the projection of a spherical cap onto a plane through the sphere's center. To achieve this, we devise two novel area-preserving mappings from the unit square to this projection, which is often an ellipse but generally has a more complex shape. Our maps allow for low-variance rendering of direct illumination from finite and infinite (e.g. sun-like) spherical light sources by sampling their projected solid angle in a stratified manner. We discuss the practical implementation of our maps and show significant quality improvement over traditional uniform spherical cap sampling in a production renderer.Item Dynamic Many-Light Sampling for Real-Time Ray Tracing(The Eurographics Association, 2019) Moreau, Pierre; Pharr, Matt; Clarberg, Petrik; Steinberger, Markus and Foley, TimMonte Carlo ray tracing offers the capability of rendering scenes with large numbers of area light sources-lights can be sampled stochastically and shadowing can be accounted for by tracing rays, rather than using shadow maps or other rasterizationbased techniques that do not scale to many lights or work well with area lights. Current GPUs only afford the capability of tracing a few rays per pixel at real-time frame rates, making it necessary to focus sampling on important light sources. While state-of-the-art algorithms for offline rendering build hierarchical data structures over the light sources that enable sampling them according to their importance, they lack efficient support for dynamic scenes. We present a new algorithm for maintaining hierarchical light sampling data structures targeting real-time rendering. Our approach is based on a two-level BVH hierarchy that reduces the cost of partial hierarchy updates. Performance is further improved by updating lower-level BVHs via refitting, maintaining their original topology. We show that this approach can give error within 6% of recreating the entire hierarchy from scratch at each frame, while being two orders of magnitude faster, requiring less than 1 ms per frame for hierarchy updates for a scene with thousands of moving light sources on a modern GPU. Further, we show that with spatiotemporal filtering, our approach allows complex scenes with thousands of lights to be rendered with ray-traced shadows in 16.1 ms per frame.Item Matrix Bidirectional Path Tracing(The Eurographics Association, 2018) Chaitanya, Chakravarty Reddy Alla; Belcour, Laurent; Hachisuka, Toshiya; Premoze, Simon; Pantaleoni, Jacopo; Nowrouzezahrai, Derek; Jakob, Wenzel and Hachisuka, ToshiyaSampled paths in Monte Carlo ray tracing can be arbitrarily close to each other due to its stochastic nature. Such clumped samples in the path space tend to contribute little toward an accurate estimate of each pixel. Bidirectional light transport methods make this issue further complicated since connecting paths of sampled subpaths can be arbitrarily clumped again. We propose a matrix formulation of bidirectional light transport that enables stratification (and low-discrepancy sampling) in this connection space. This stratification allows us to distribute computation evenly across contributing paths in the image, which is not possible with standard bidirectional or Markov chain solutions. Each element in our matrix formulation represents a pair of connected eye- and light-subpaths. By carefully reordering these elements, we build a 2D space where equally contributing paths are distributed coherently. We devise an unbiased rendering algorithm that leverages this coherence to effectively sample path space, consistently achieving a 2-3x speedup in radiometrically complex scenes compared to the state-of-the-art.Item Voxel DAGs and Multiresolution Hierarchies: From Large-Scale Scenes to Pre-computed Shadows(The Eurographics Association, 2018) Assarsson, Ulf; Billeter, Markus; Dolonius, Dan; Eisemann, Elmar; Jaspe, Alberto; Scandolo, Leonardo; Sintorn, Erik; Ritschel, Tobias and Telea, AlexandruIn this tutorial, we discuss voxel DAGs and multiresolution hierarchies, which are representations that can encode large volumes of data very efficiently. Despite a significant compression ration, an advantage of these structures is that their content can be efficiently accessed in real-time. This property enables various applications. We begin the tutorial by introducing the concepts of sparsity and of coherency in voxel structures, and explain how a directed acyclic graph (DAG) can be used to represent voxel geometry in a form that exploits both aspects, while remaining usable in its compressed from for e.g. ray casting. In this context, we also discuss extensions that cover the time domain or consider an advanced encoding strategies exploiting symmetries and entropy. We then move on to voxel attributes, such as colors, and explain how to integrate such information with the voxel DAGs. We will provide implementation details and present methods for efficiently constructing the DAGs and also cover how to efficiently access the data structures with e.g. GPU-based ray tracers. The course will be rounded of with a segment on applications. We highlight a few examples and show their results. Pre-computed shadows are a special application, which will be covered in detail. In this context, we also explain how some of previous ideas contribute to multi-resolution hierarchies, which gives an outlook on the potential generality of the presented solutions.Item Interactive CPU-based Ray Tracing of Solvent Excluded Surfaces(The Eurographics Association, 2019) Rau, Tobias; Zahn, Sebastian; Krone, Michael; Reina, Guido; Ertl, Thomas; Kozlíková, Barbora and Linsen, Lars and Vázquez, Pere-Pau and Lawonn, Kai and Raidou, Renata GeorgiaDepictions of molecular surfaces such as the Solvent Excluded Surface (SES) can provide crucial insight into functional molecular properties, such as the molecule's potential to react. The interactive visualization of single and multiple molecule surfaces is essential for the data analysis by domain experts. Nowadays, the SES can be rendered at high frame rates using shader-based ray casting on the GPU. However, rendering large molecules or larger molecule complexes requires large amounts of memory that has the potential to exceed the memory limitations of current hardware. Here we show that rendering using CPU ray tracing also reaches interactive frame rates without hard limitations to memory. In our results large molecule complexes can be rendered with only the precomputation of each individual SES, and no further involved representation or transformation. Additionally, we provide advanced visualization techniques like ambient occlusion opacity mapping (AOOM) to enhance the comprehensibility of the molecular structure. CPU ray tracing not only provides very high image quality and global illumination, which is beneficial for the perception of spatial structures, it also opens up the possibility to visualize larger data sets and to render on any HPC cluster. Our results demonstrate that simple instancing of geometry keeps the memory consumption for rendering large molecule complexes low, so the examination of much larger data is also possible.Item Global Illumination Shadow Layers(The Eurographics Association and John Wiley & Sons Ltd., 2019) DESRICHARD, François; Vanderhaeghe, David; PAULIN, Mathias; Boubekeur, Tamy and Sen, PradeepComputer graphics artists often resort to compositing to rework light effects in a synthetic image without requiring a new render. Shadows are primary subjects of artistic manipulation as they carry important stylistic information while our perception is tolerant with their editing. In this paper we formalize the notion of global shadow, generalizing direct shadow found in previous work to a global illumination context. We define an object's shadow layer as the difference between two altered renders of the scene. A shadow layer contains the radiance lost on the camera film because of a given object. We translate this definition in the theoretical framework of Monte-Carlo integration, obtaining a concise expression of the shadow layer. Building on it, we propose a path tracing algorithm that renders both the original image and any number of shadow layers in a single pass: the user may choose to separate shadows on a per-object and per-light basis, enabling intuitive and decoupled edits.Item A New Microflake Model With Microscopic Self-shadowing for Accurate Volume Downsampling(The Eurographics Association and John Wiley & Sons Ltd., 2018) Loubet, Guillaume; Neyret, Fabrice; Gutierrez, Diego and Sheffer, AllaNaive linear methods for downsampling high-resolution microflake volumes often produce inaccurate appearance, especially when input voxels are very opaque. Preserving correct appearance at all resolutions requires taking into account maskingshadowing effects that occur between and inside dense input voxels. We introduce a new microflake model whose additional parameters characterize self-shadowing effects at a microscopic scale. We provide an anisotropic self-shadowing function and microflake distributions for which the scattering coefficients and the phase functions of our model have closed-form expressions. We use this model in a new downsampling approach in which scattering parameters are computed from local estimations of self-shadowing probabilities in the input volume. Unlike previous work, our method handles datasets with spatially varying scattering parameters, semi-transparent volumes and datasets with intricate silhouettes. We show that our method generates LoDs with correct transparency and consistent appearance through scales for a wide range of challenging datasets, allowing for huge memory savings and efficient distant rendering without loss of quality.Item Efficient Incoherent Ray Traversal on GPUs Through Compressed Wide BVHs(ACM, 2017) Ylitie, Henri; Karras, Tero; Laine, Samuli; Vlastimil Havran and Karthik VaiyanathanWe present a GPU-based ray traversal algorithm that operates on compressed wide BVHs and maintains the traversal stack in a compressed format. Our method reduces the amount of memory traffic significantly, which translates to 1.9-2.1 × improvement in incoherent ray traversal performance compared to the current state of the art. Furthermore, the memory consumption of our hierarchy is 35-60% of a typical uncompressed BVH. In addition, we present an algorithmically efficient method for converting a binary BVH into a wide BVH in a SAH-optimal fashion, and an improved method for ordering the child nodes at build time for the purposes of octant-aware fixed-order traversal.