GPU Memory Management for Efficient Ray Tracing Applications

Size: px
Start display at page:

Download "GPU Memory Management for Efficient Ray Tracing Applications"

Transcription

1 Eurographics Symposium on Rendering 014 Wojciech Jarosz and Pieter Peers (Guest Editors) Volume 33 (014), Number 4 GPU Memory Management for Efficient Ray Tracing Applications Weilun Sun, Ling-Qi Yan, Yi Wu, John Kubiatowicz University of California, Berkeley Abstract In computer graphics, efficient ray tracing has always been the most important demand. However, since scenes could be rather complicated, ray tracing applications are mostly memory intensive, which limits efficient implementation on GPU only to small, experimental scenes. We seek for an efficient GPU memory management method that swaps data back and forth between GPU and CPU memory, and use the fact that ray tracing queries are order independent to achieve efficient GPU our of core rendering. Using our method, huge scenes can be rendered out-of-core on GPU, given maximum available video memory size limit. We tested convergence rate using our method with different video memory size limits to prove that our method introduces little overhead on memory swapping even with extremely low GPU memory size. At last, we demonstrated that our system may well converge faster than popular CPU ray tracer MITSUBA on large scenes if we had a better ray traversal implementation. Categories and Subject Descriptors (according to ACM CCS): Hardware Acceleration I.3.3 [Computer Graphics]: Image Generation 1. Introduction With the development of GPUs, it is more and more common for people to use them for general purpose computing rather than original rasterization and shading tasks. GPU is especially suitable to handle massive computations with low interdependency among input data. As one of the most fundamental topics in computer graphics, ray tracing is also starting to benefit from the great computational power of GPU. Ray tracing is a very complicated problem for the following reasons. First of all, many ray tracing algorithms use Monte Carlo sampling method to estimate integrals. Sparse sampling introduces noise in rendered images. Therefore, thousands of samples per pixel are often needed to generate smooth images, which is a huge computational demand. Second, scenes in ray tracing applications can be rather complex so that a big size of memory is often needed for high performance. GPU provides a good solution to the first problem because of its strong computational power. However, GPU suffers from the second problem since its memory size is often much smaller than CPU s. There are some ways to divide input data into independent blocks so that each block fits GPU memory to perform GPU computation. However, these methods are not applicable to ray tracing problems where input data are highly interdependent. During ray tracing, each ray that hits a diffuse object in a scene scatters to a random direction and may intersect with any part of the scene for the next bounce. In this paper, we propose a method to better utilize the power of GPU in ray tracing applications through eliminating its memory bottleneck. In the following content of the paper, we first introduce related works and preliminaries in understanding ray tracing problems. Then, we discuss our design and implementation of our system. After that, we show some rendering results using our method and make comparisons to show scalability of our method under various video memory limits. Finally, we discuss some issues and limitations, and propose possible extensions.. Related Works.1. Out-of-core Ray Tracing Fake out-of-core rendering There is a class of related work that aim to solve the out-of-core problem, but they either assume that the data needed are completely in-core, or make Computer Graphics Forum c 014 The Eurographics Association and John Wiley & Sons Ltd. Published by John Wiley & Sons Ltd.

2 approximations i.e. doesn t guarantee correct rendering results. Fradin et al. [FMH05] enables out-of-core photon mapping by limiting a small size of geometry primitives to receive photons at a time, but still needs all the geometries in final gathering step. Wald et al. [War94, WPS 03, WDS04] proposed a page caching technique. They pre-fetch possibly related pages to memory. When a page fault occurs, instead of loading the needed page, they simply give the missing ray an approximated value using nearest neighbor. Teller et al. [TFFH94] applied out-of-core techniques to store intermediate results in radiosity method, which cannot be regarded as out-of-core. None of the above methods are GPU oriented. Distributed out-of-coure rendering Another class of related work tries to solve the out-of-core problem by using distributed storage techniques. Lefer [Lef93] stores a full copy of the data for each node in a cluster. Reinhard et al. [RCJ99a,RCJ99b] and Demarle et al. [DGP04] store different parts of the data to different nodes, then query each node one by one until the ray finds the data it needs. Kato and Saito [KS0] distributed data across all nodes in the cluster stochastically, yet still look for the data node by node. These methods do not try to lower the storage needed at run time, but rather increase memory consumption for better performance. Simplified out-of-coure rendering Christensen et al. [CLF 03] cache simplified version of the polygon meshes initially, and then dynamically tessellate them on the fly. They later extended their method to handle out-of-core photon mapping [CB04]. Yoon et al. [YLM06] proposed similar ideas by tracing level-of-detail models. These methods trades storage with accuracy. In contrast, our goal is to generate accurate renderings using full geometric information... Scheduling Coherent out-of-core rendering Some of the rendering techniques try to explore coherency among rays, using the fact that ray locality often leads to scene locality. Pharr et al. [PKGH97, PH10] reorder rays so that rays querying existing are traced first. These works are CPU oriented and reordering rays can be very GPU unfriendly, so that their GPU implementations remain unclear. Navratil et al. [NFLM07] improved upon Pharr et al. [PKGH97,PH10] by introducing a ray scheduling program to judge how to shoot coherent rays on the fly. Gribble and Ramani [GR08] uses SIMD instructions to process multiple coherent rays at once. General scheduling algorithms Our memory management strategy is somewhat related to scheduling algorithms, since we need to decide which part of data to swap incore, which is analogous to deciding which process to get scheduled. There are many works on scheduling such as [Ant06, CDM97, Nos98, BH04, MSS 06]. These algorithms gave us some inspirations. However, what we need is a new strategy specialized for ray tracing applications instead of general scheduling methods..3. Preliminaries.4. Ray Tracing In computer graphics, ray tracing is considered as a golden law to synthesize realistic images from given camera settings, models and lighting conditions. It is completely physically based because it simulates how rays interact with surfaces or volumes, and use correct physical equations to calculate the lighting. Compared with rasterization and projection based methods such as scanline method by the wellknown OpenGL or DirectX, it guarantees high quality rendering results. Since it is physically based, ray tracing naturally supports reflection, refraction, scattering and other interesting phenomena. Ray tracing works by tracing a ray backwardly from the camera to the scene. Specifically, for each pixel in the image, it traces a number of rays starting from the camera. At each intersection the ray interacts with a surface, it calculates how much radiance is contributed from the light to the incoming direction, then bounces once more to test another intersection. Note that, if the light source is an area light that has a certain size rather than a point, in order to capture the full illumination effect, we have to randomly sample positions on the light. Also, where the ray goes after bouncing is also undetermined, usually an importance sampling strategy according to the surface glossiness is used. All in all, ray tracing is a stochastic process that requires tons of samples to make a pixel converge to the correct color..5. Bounding Volume Hierarchy In ray tracing, the most time consuming step would arguably be the intersection detecting for a ray and the scene, i.e., to tell the ray tracer that the ray hits somewhere in the scene. A naive algorithm is to loop over all geometric primitives to check intersections with the given ray, which takes O(n) time. For large scenes, this is prohibitively too expensive. To lower this computation, different hierarchical structuring of spatial regions or objects of a scene is introduced. These structures are called Bounding Volume Hierarchies (BVHs). Among BVHs, the most widely used is the kd-tree, which recursively partitions space with planes that are perpendicular to the axes of a Descartes coordinate system. Every inner node of kd-tree has a splitting plane parallel to one of the axis of the coordinate system. This plane is used to subdivide the space into two subspaces for the two child nodes. The geometric primitives are also split to its children according to this plane. Those primitives intersecting both subspaces are considered in both of them. With KD-Trees, the expected complexity of one ray intersection test can be reduced from O(n) to O(log(n)), where n is the number of primitives in the object.

3 3. Our Method Figure 1: scheme. Overview of our GPU memory management The basic idea of our method is straight forward. We built a video memory manager to decide which geometric objects are in-core. The manager guarantees that the size of all incore geometric data is below a given video memory size limit at any time. All geometric data are swapped back and forth between GPU and CPU at an appropriate frequency to ensure that the tracing process flows and that most of the time are spent on actual ray intersection tests rather than memory swapping as shown in figure 1. During ray tracing, each ray queries potential geometries it may hit to perform intersection tests. Rays that try to query out-of-core geometries are blocked outside of their bounding boxes until these geometries are loaded in-core as shown in figure. Figure : Illustration of the main steps in our method. (1) Partition the scene into blocks. () Load some blocks into video memory. (3) Block rays that hit unloaded blocks and count the number of queries for that missing data. (4) Replace least used blocks with most wanted ones Preprocessing Before performing ray tracing, we need to preprocess all input geometric data. Like paging mechanism used in cache, a unit for our video memory management needs to be specified. Unlike paging, what we need is not uniform sized chunks of memory units. The problem of using uniform sized chunks is that we would not be able to keep relevant information together. For example, three coordinates of a vertex may be stored in different units using uniform sized chunks. In this case, we cannot perform ray intersections without loading both memory units. Here we define geometric block to be our unit. Suppose our video memory limit is S V. Then, we can specify a block size limit S B < S V. For each of the input geometry G, if size(g) S B, then G itself is a block, otherwise we subdivide G using KD-Tree split operation recursively until geometric data size of each leaf node of the tree is less than or equal to S B and generate one block for each leaf node. After processing all input geometries, we got a sequence of blocks {B 1,B,...,B n} ready for video memory management. 3.. Tracing All blocks we get from 3.1 have two status during ray tracing, namely in-core and out-of-core. When a block is incore, it means that all geometric data of this block is loaded to video memory and all ray intersections can be performed immediately. Out-of-core block means that its geometric data is swapped out of video memory and all intersection tests must wait for its data. For out-of-core blocks, we still keep their bounding boxes in video memory to rule out unnecessary intersection tests. To trace a ray r, the first step is to test intersection with all in-core blocks and find out the minimum intersection distance d in. Then, r performs intersection test with all bounding boxes of out-of-core blocks and find out the minimum intersection distance d out. If d in d out, r hits an in-core geometry, so it scatters on the closest in-core geometry as usual, otherwise r gets stuck outside the bounding box of an out-of-core block and marks its status as out-of-core. To make memory swapping overhead insignificant and for more efficient shadow ray connection, which is introduced in, we build a ray buffer that can hold several rays (4 in our implementation) for each pixel. With ray buffers, if one ray is blocked due to out-of-core geometry, other rays can still continue tracing. A pixel is completely blocked only when all rays in its ray buffer are blocked, so that more time is spent on intersection tests rather than swapping memory back and forth between GPU and CPU Connection Shadow ray connection is an important sampling strategy in ray tracing. Since the probability for a ray to hit the light source directly can be pretty small, which results in high variance in rendered images, for each vertex of a path traced from the camera, we can connect it with a vertex sampled on light source to generate a full path. The full path generated using connection may not exist, since the connection may be blocked by some other geometries, resulting in shadows.

4 So for each vertex on the path, we need to shoot an extra shadow ray to the vertex on light source to test visibility between the two connected vertices. Shadow ray connection can greatly improve convergence rate in scenes where the size of light source is small. However, this strategy cannot be directly used in our out-of-core tracer. Imagine we have two blocks X and Y and a light source S. Among X and Y, at most one of them can be in-core because of memory limit. Now if X is in-core and a ray bounced at X tries to connect with a vertex on S, it must test whether this connection is blocked by Y in order to generate correct shadow. However, since Y is out-of-core now, this shadow ray is blocked and the size of ray buffer increases. Once the ray buffer is full, there s no more space to generate an extra shadow ray, we can only either continue tracing the current ray and ignore connection or stop current ray and trace the shadow ray instead. If we ignore connection in this case, the tracer would generate images with high variance due to lack of connections. If we stop and trace the shadow ray instead, our tracer would only capture short paths, which would miss some important effects such as color bleeding in rendered image. Here, we applied a simple trade off solution. Russian Roulette is used to make a stochastic decision between the two options. The probability of choosing the two options are both Overlapping Bounding Boxes Our algorithm described so far can already work for scenes where all bounding boxes of blocks are not overlapping. However, this is often not the case, even KD-Tree split operation mentioned in 3.1 often produces overlapping bounding boxes. The problem with overlapping bounding boxes is that all rays that hit the overlapping area would stuck there forever. Suppose X and Y are two blocks with overlapping bounding boxes and only one of them can be in-core at the same time. Now, if a ray hits the overlapping area, no matter whether X or Y is in-core, this ray cannot proceed because the other block is always out-of-core. Our solution is that we assign to each block in the scene a unique number to specify an order. Let s assume that a ray hits an area where blocks with numbers {n 1,n,...,n m}(n 1 < n <... < n m) overlap with one another. An index I is stored in this ray to record the minimum overlapping block number. I is set to n 1 in the beginning. Once the block with number n 1 gets in-core, I is set to n and all intersection information is updated in the ray. Then, all blocks with number n < I are ignored in the next round. I keeps increasing as blocks are swapped back and forth, so that the ray continues eventually when I = n m and the block with number n m gets in-core Video Memory Management Our video memory management strategy is pretty straight forward. We store in each out-of-core ray the out-of-core block number that it is trying to trace. Then we can make a histogram of the number of querying rays for all out-of-core geometry. Then, we pick the block with most wanted rays to swap with other in-core blocks. The intuition is that by swapping in the most wanted block, the number of blocked rays that would be able continue in the next round is maximised. To decide which of those in-core blocks to get replaced, we maintain a histogram of the number of bounces occurred in last round for all in-core blocks. We pick the block with the smallest number of bounces and check if there s enough space for the out-of-core block to get in. If there is, swapping is done and tracing continues, otherwise we pick both the blocks with smallest and second to smallest number of bounces to check if there is enough space. This is done recursively until there s enough space to perform swapping. 4. Results and Comparisons We implemented our algorithm using NVIDIA CUDA, running on a quad-core Intel i7 processor at 3.5 GHz and NVIDIA GeForce GT 750M Graphics card with GB of GDDR5 memory (practically availble GPU memory size in CUDA 800 MB). Below we show some scenes rendered either out-of-core or with limited maximum available memory size which is much smaller than scene s size. Mesh Scene This scene is modified from the classic Cornell Box scene. We replaced the original small geometries with complex models of size (model size + acceleration structure) 70 MB, 30 MB and 360 MB. The output images are rendered at 104x768 resolution with at most 5 bounces for each light path, starting from a pinhole camera. For better comparisons, we omit the post processing steps such as pixel reconstruction filters. The images shown in Figure 3 are snapshots of our running ray tracing program at different times to illustrate the convergence process. Point Cloud Scene These point cloud scenes are rendered using small spheres as primitives. Scenes are culled according to view frustum and point cloud data filtered to fit image resolution. We show in Figure 4 and Figure 5 two renderings of parts of a 0 GB point cloud data. Convergence Rate Comparisons Finally we show performance using our method under different video memory limits. Performance is measured by computing the RMS error between the current intermediate result and the converged reference image. As shown in Figure 7, we limit the available video memory to different sizes. It is gratifying to see that our method still keeps reasonably good convergence rate with very small GPU memory consumption. KD-Tree traversal can be very complicated to efficiently implement on GPU, for efficient implementation, please refer to [AL09]. In this paper, we implemented a simple traversal code in CUDA. Here, we demonstrate that once we have efficient ray traversal in commercial in-core GPU tracers such as OPTIX, our ray tracer may well converge faster than popular CPU ray tracers like MITSUBA. In this experiment, we ran our program with different memory size limit for the

5 Authors / CS6 Course Project Figure 3: Renderings of a mesh scene. Data is more than 1GB in total and video memory limit is 51 MB. From left to right: 1 minute, 10 minutes and 60 minutes running time. Figure 4: Rendering of a small point cloud scene. Data is 1 GB in total after culling and filtering and video memory limit is 700 MB. From left to right: 1 minute, 10 minutes and 60 minutes running time. Figure 6: The mesh scene set up for convergence rate comparisons. Figure 5: Rendering of a large point cloud scene. Data is 6 GB in total after culling and filtering and video memory limit is 700 MB. 5 hours running time. 30 MB scene shown in figure 8. Maximum block size is set to 30MB and ray buffer size is 4. We first compared our implementation directly with MITSUBA as shown in Figure 9. However, because of our simple yet inefficient GPU ray traversal, our implementation is slower than MITSUBA. Now, let s try to factor out our traversal time. In the settings we tested, our total time spent on memory swapping in an hour is s, 0s and 16s for memory size limit 360MB, c 014 The Author(s) Computer Graphics Forum c 014 The Eurographics Association and John Wiley & Sons Ltd. 180MB and 45MB respectively. We ran the same scene using OPTIX on the same machine. The frame rate was 5 fps using OPTIX and 0.3 f ps using our implementation. Therefore, let s assume that OPTIX is 16x faster than our traversal implementation. Then for the setting that spent total memory swapping time t seconds in an hour, we rescale our time axis by a factor of s = ( 3600 t 16 + t)/3600 to assume that we have the same ray traversal implementation as OPTIX. Our comparison is shown in figure 10. We can see that for scenes that have twice the data size as memory limit, our tracer still converges faster than CPU tracers. Even for scenes that have eight times the data size as memory limit, our convergence rate is still comparable with CPU tracers.

6 Figure 7: RMS error vs time for different video memory limitations for the mesh scene in Figure 6. Note that 51 MB is enough to contain all the data completely, i.e. all the data are in-core. Figure 9: Comparison with CPU in original implementation. Figure 10: Comparison with CPU after factoring out ray traversal implementation. 5. Discussion Figure 8: Scene setting for our experiments Adaptive sampling As 4 shows, our method converges seamlessly for every pixel in the image. Nevertheless, these pixels do not converge at the same speed. Some converge very fast since either geometric data always exist or their lighting condition is simple. Others might be blocked for too long so that they converge slowly. The issue is that we don t actually know whether a pixel is converged, so that we cannot adaptively shoot more rays towards those pixels that need more samples. Current studies in computer graphics on adaptive sampling would help. We d like to consider it as a future work. 6. Conclusion and Future Works To summarize, we have presented a GPU memory management method to enable efficient out-of-core GPU ray tracing applications. We take advantage of the fact that ray tracing queries are independent in orders. By blocking queries for missing geometries, filling in new queries, and loading the most needed block to replace least used ones, we keep the tracing process flow while making memory swapping overhead very low. We tested our method in rendering outof-core triangle mesh and point cloud scenes on GPU and showed that with more sophisticated ray traversal implementation, our method could potentially be better than popular CPU tracers. In the future, we would like to investigate ways to combine adaptive sampling techniques with our scheduling method to get faster overall convergence rate. Other ray tracc 014 The Author(s)

7 ing strategies such as bidirectional path tracing and photon mapping may also benefit from our method. Finally, we would like to further improve our method to handle clustered GPU ray tracing. This would be a big challenge since every node in the cluster may demand any data in the entire scene. References [AL09] AILA T., LAINE S.: Understanding the efficiency of ray traversal on gpus. In Proceedings of the Conference on High Performance Graphics 009 (009), ACM, pp [Ant06] ANTICONA M. T.: A grasp algorithm to solve the problem of dependent tasks scheduling in different machines. In Artificial Intelligence in Theory and Practice. Springer, 006, pp [BH04] BOYER W. F., HURA G. S.: Dynamic scheduling in distributed heterogeneous systems with dependent tasks and imprecise execution time estimates. In 16 IASTED th International Conference on Parallel and Distributed Computing and Systems (PDCS 004) (004). [CB04] CHRISTENSEN P. H., BATALI D.: An irradiance atlas for global illumination in complex production scenes. In Rendering Techniques (004), Citeseer, pp [CDM97] CHAN Y.-N., DANDAMUDI S. P., MAJUMDAR S.: Performance comparison of processor scheduling strategies in a distributed-memory multicomputer system. In Parallel Processing Symposium, Proceedings., 11th International (1997), IEEE, pp [CLF 03] CHRISTENSEN P. H., LAUR D. M., FONG J., WOOTEN W. L., BATALI D.: Ray differentials and multiresolution geometry caching for distribution ray tracing in complex scenes. In Computer Graphics Forum (003), vol., Wiley Online Library, pp [DGP04] DEMARLE D. E., GRIBBLE C. P., PARKER S. G.: Memory-savvy distributed interactive ray tracing. In EGPGV (004), Citeseer, pp [FMH05] FRADIN D., MENEVEAUX D., HORNA S.: Out of core photon-mapping for large buildings. In Proceedings of the Sixteenth Eurographics conference on Rendering Techniques (005), Eurographics Association, pp [GR08] GRIBBLE C. P., RAMANI K.: Coherent ray tracing via stream filtering. In Interactive Ray Tracing, 008. RT 008. IEEE Symposium on (008), IEEE, pp [KS0] KATO T., SAITO J.: " kilauea": parallel global illumination renderer. In ACM International Conference Proceeding Series (00), vol. 9, pp [Lef93] LEFER W.: An efficient parallel ray tracing scheme for distributed memory parallel computers. In Proceedings of the 1993 symposium on Parallel rendering (1993), ACM, pp [MSS 06] MEHTA A., SMITH J., SIEGEL H. J., MACIEJEWSKI A. A., JAYASEELAN A., YE B.: Dynamic resource management heuristics for minimizing makespan while maintaining an acceptable level of robustness in an uncertain environment. In Parallel and Distributed Systems, 006. ICPADS th International Conference on (006), vol. 1, IEEE, pp. 8 pp. [NFLM07] NAVRÁTIL P. A., FUSSELL D. S., LIN C., MARK W. R.: Dynamic ray scheduling to improve ray coherence and bandwidth utilization. In Interactive Ray Tracing, 007. RT 07. IEEE Symposium on (007), IEEE, pp [Nos98] NOSSAL R.: An evolutionary approach to multiprocessor scheduling of dependent tasks. In Parallel and Distributed Processing. Springer, 1998, pp [PH10] PHARR M., HUMPHREYS G.: Physically based rendering: From theory to implementation. Morgan Kaufmann, 010. [PKGH97] PHARR M., KOLB C., GERSHBEIN R., HANRA- HAN P.: Rendering complex scenes with memory-coherent ray tracing. In Proceedings of the 4th annual conference on Computer graphics and interactive techniques (1997), ACM Press/Addison-Wesley Publishing Co., pp [RCJ99a] REINHARD E., CHALMERS A., JANSEN F. W.: Hybrid scheduling for parallel rendering using coherent ray tasks. In Proceedings of the 1999 IEEE symposium on Parallel visualization and graphics (1999), IEEE Computer Society, pp [RCJ99b] REINHARD E., CHALMERS A., JANSEN F. W.: Hybrid scheduling for realistic image synthesis. In PARCO (1999), pp [TFFH94] TELLER S., FOWLER C., FUNKHOUSER T., HAN- RAHAN P.: Partitioning and ordering large radiosity computations. In Proceedings of the 1st annual conference on Computer graphics and interactive techniques (1994), ACM, pp [War94] WARD G. J.: The radiance lighting simulation and rendering system. In Proceedings of the 1st annual conference on Computer graphics and interactive techniques (1994), ACM, pp [WDS04] WALD I., DIETRICH A., SLUSALLEK P.: An interactive out-of-core rendering framework for visualizing massively complex models. In Proceedings of the Fifteenth Eurographics conference on Rendering Techniques (004), Eurographics Association, pp [WPS 03] WALD I., PURCELL T. J., SCHMITTLER J., BENTHIN C., SLUSALLEK P.: Realtime ray tracing and its use for interactive global illumination. Eurographics State of the Art Reports 1, 3 (003), 5. [YLM06] YOON S.-E., LAUTERBACH C., MANOCHA D.: R- lods: fast lod-based ray tracing of massive models. The Visual Computer, 9-11 (006),

Ray Tracing. Computer Graphics CMU /15-662, Fall 2016

Ray Tracing. Computer Graphics CMU /15-662, Fall 2016 Ray Tracing Computer Graphics CMU 15-462/15-662, Fall 2016 Primitive-partitioning vs. space-partitioning acceleration structures Primitive partitioning (bounding volume hierarchy): partitions node s primitives

More information

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development Chap. 5 Scene Management Overview Scene Management vs Rendering This chapter is about rendering

More information

Interactive Ray Tracing: Higher Memory Coherence

Interactive Ray Tracing: Higher Memory Coherence Interactive Ray Tracing: Higher Memory Coherence http://gamma.cs.unc.edu/rt Dinesh Manocha (UNC Chapel Hill) Sung-Eui Yoon (Lawrence Livermore Labs) Interactive Ray Tracing Ray tracing is naturally sub-linear

More information

An Improved Monte Carlo Ray Tracing for Large-Scale Rendering in Hadoop

An Improved Monte Carlo Ray Tracing for Large-Scale Rendering in Hadoop International Conference on Computer Science and Service System (CSSS 2014) An Improved Monte Carlo Ray Tracing for Large-Scale Rendering in Hadoop Rui Li Key Laboratory for Embedded and Network Computing

More information

Final Project: Real-Time Global Illumination with Radiance Regression Functions

Final Project: Real-Time Global Illumination with Radiance Regression Functions Volume xx (200y), Number z, pp. 1 5 Final Project: Real-Time Global Illumination with Radiance Regression Functions Fu-Jun Luan Abstract This is a report for machine learning final project, which combines

More information

Advanced Graphics. Path Tracing and Photon Mapping Part 2. Path Tracing and Photon Mapping

Advanced Graphics. Path Tracing and Photon Mapping Part 2. Path Tracing and Photon Mapping Advanced Graphics Path Tracing and Photon Mapping Part 2 Path Tracing and Photon Mapping Importance Sampling Combine importance sampling techniques Reflectance function (diffuse + specular) Light source

More information

COMP 4801 Final Year Project. Ray Tracing for Computer Graphics. Final Project Report FYP Runjing Liu. Advised by. Dr. L.Y.

COMP 4801 Final Year Project. Ray Tracing for Computer Graphics. Final Project Report FYP Runjing Liu. Advised by. Dr. L.Y. COMP 4801 Final Year Project Ray Tracing for Computer Graphics Final Project Report FYP 15014 by Runjing Liu Advised by Dr. L.Y. Wei 1 Abstract The goal of this project was to use ray tracing in a rendering

More information

Rendering: Reality. Eye acts as pinhole camera. Photons from light hit objects

Rendering: Reality. Eye acts as pinhole camera. Photons from light hit objects Basic Ray Tracing Rendering: Reality Eye acts as pinhole camera Photons from light hit objects Rendering: Reality Eye acts as pinhole camera Photons from light hit objects Rendering: Reality Eye acts as

More information

Monte Carlo Ray Tracing. Computer Graphics CMU /15-662

Monte Carlo Ray Tracing. Computer Graphics CMU /15-662 Monte Carlo Ray Tracing Computer Graphics CMU 15-462/15-662 TODAY: Monte Carlo Ray Tracing How do we render a photorealistic image? Put together many of the ideas we ve studied: - color - materials - radiometry

More information

Intro to Ray-Tracing & Ray-Surface Acceleration

Intro to Ray-Tracing & Ray-Surface Acceleration Lecture 12 & 13: Intro to Ray-Tracing & Ray-Surface Acceleration Computer Graphics and Imaging UC Berkeley Course Roadmap Rasterization Pipeline Core Concepts Sampling Antialiasing Transforms Geometric

More information

Accelerating Ray-Tracing

Accelerating Ray-Tracing Lecture 9: Accelerating Ray-Tracing Computer Graphics and Imaging UC Berkeley CS184/284A, Spring 2016 Course Roadmap Rasterization Pipeline Core Concepts Sampling Antialiasing Transforms Geometric Modeling

More information

CS 563 Advanced Topics in Computer Graphics Irradiance Caching and Particle Tracing. by Stephen Kazmierczak

CS 563 Advanced Topics in Computer Graphics Irradiance Caching and Particle Tracing. by Stephen Kazmierczak CS 563 Advanced Topics in Computer Graphics Irradiance Caching and Particle Tracing by Stephen Kazmierczak Introduction Unbiased light transport algorithms can sometimes take a large number of rays to

More information

CS580: Ray Tracing. Sung-Eui Yoon ( 윤성의 ) Course URL:

CS580: Ray Tracing. Sung-Eui Yoon ( 윤성의 ) Course URL: CS580: Ray Tracing Sung-Eui Yoon ( 윤성의 ) Course URL: http://sglab.kaist.ac.kr/~sungeui/gcg/ Recursive Ray Casting Gained popularity in when Turner Whitted (1980) recognized that recursive ray casting could

More information

Review for Ray-tracing Algorithm and Hardware

Review for Ray-tracing Algorithm and Hardware Review for Ray-tracing Algorithm and Hardware Reporter: 邱敬捷博士候選人 Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National Chiao Tung University Taiwan, R.O.C. Summer, 2017 1 2017/7/26 Outline

More information

Building a Fast Ray Tracer

Building a Fast Ray Tracer Abstract Ray tracing is often used in renderers, as it can create very high quality images at the expense of run time. It is useful because of its ability to solve many different problems in image rendering.

More information

AN EXPERIMENTAL COMPARISON OF ACCELERATION SCHEMES FOR DENSELY OCCLUDED ENVIRONMENTS

AN EXPERIMENTAL COMPARISON OF ACCELERATION SCHEMES FOR DENSELY OCCLUDED ENVIRONMENTS SIGNAL - IMAGE - COMMUNICATIONS FRE CNRS n 2731 AN EXPERIMENTAL COMPARISON OF ACCELERATION SCHEMES FOR DENSELY OCCLUDED ENVIRONMENTS D. FRADIN, D. MENEVEAUX RAPPORT DE RECHERCHE n 26 - Janvier 26 SIC,

More information

Real-Time Ray Tracing Using Nvidia Optix Holger Ludvigsen & Anne C. Elster 2010

Real-Time Ray Tracing Using Nvidia Optix Holger Ludvigsen & Anne C. Elster 2010 1 Real-Time Ray Tracing Using Nvidia Optix Holger Ludvigsen & Anne C. Elster 2010 Presentation by Henrik H. Knutsen for TDT24, fall 2012 Om du ønsker, kan du sette inn navn, tittel på foredraget, o.l.

More information

Cache-Oblivious Ray Reordering

Cache-Oblivious Ray Reordering Cache-Oblivious Ray Reordering Bochang Moon Yongyoung Byun Tae-Joon Kim Pio Claudio Sung-Eui Yoon CS/TR-2009-314 May, 2009 KAIST Department of Computer Science Cache-Oblivious Ray Reordering Bochang Moon

More information

Fast BVH Construction on GPUs

Fast BVH Construction on GPUs Fast BVH Construction on GPUs Published in EUROGRAGHICS, (2009) C. Lauterbach, M. Garland, S. Sengupta, D. Luebke, D. Manocha University of North Carolina at Chapel Hill NVIDIA University of California

More information

Effects needed for Realism. Computer Graphics (Fall 2008) Ray Tracing. Ray Tracing: History. Outline

Effects needed for Realism. Computer Graphics (Fall 2008) Ray Tracing. Ray Tracing: History. Outline Computer Graphics (Fall 2008) COMS 4160, Lecture 15: Ray Tracing http://www.cs.columbia.edu/~cs4160 Effects needed for Realism (Soft) Shadows Reflections (Mirrors and Glossy) Transparency (Water, Glass)

More information

NVIDIA Case Studies:

NVIDIA Case Studies: NVIDIA Case Studies: OptiX & Image Space Photon Mapping David Luebke NVIDIA Research Beyond Programmable Shading 0 How Far Beyond? The continuum Beyond Programmable Shading Just programmable shading: DX,

More information

Ray Tracing Acceleration Data Structures

Ray Tracing Acceleration Data Structures Ray Tracing Acceleration Data Structures Sumair Ahmed October 29, 2009 Ray Tracing is very time-consuming because of the ray-object intersection calculations. With the brute force method, each ray has

More information

Duksu Kim. Professional Experience Senior researcher, KISTI High performance visualization

Duksu Kim. Professional Experience Senior researcher, KISTI High performance visualization Duksu Kim Assistant professor, KORATEHC Education Ph.D. Computer Science, KAIST Parallel Proximity Computation on Heterogeneous Computing Systems for Graphics Applications Professional Experience Senior

More information

Comparison of hierarchies for occlusion culling based on occlusion queries

Comparison of hierarchies for occlusion culling based on occlusion queries Comparison of hierarchies for occlusion culling based on occlusion queries V.I. Gonakhchyan pusheax@ispras.ru Ivannikov Institute for System Programming of the RAS, Moscow, Russia Efficient interactive

More information

MIT Monte-Carlo Ray Tracing. MIT EECS 6.837, Cutler and Durand 1

MIT Monte-Carlo Ray Tracing. MIT EECS 6.837, Cutler and Durand 1 MIT 6.837 Monte-Carlo Ray Tracing MIT EECS 6.837, Cutler and Durand 1 Schedule Review Session: Tuesday November 18 th, 7:30 pm bring lots of questions! Quiz 2: Thursday November 20 th, in class (one weeks

More information

Acceleration Data Structures

Acceleration Data Structures CT4510: Computer Graphics Acceleration Data Structures BOCHANG MOON Ray Tracing Procedure for Ray Tracing: For each pixel Generate a primary ray (with depth 0) While (depth < d) { Find the closest intersection

More information

Rendering Algorithms: Real-time indirect illumination. Spring 2010 Matthias Zwicker

Rendering Algorithms: Real-time indirect illumination. Spring 2010 Matthias Zwicker Rendering Algorithms: Real-time indirect illumination Spring 2010 Matthias Zwicker Today Real-time indirect illumination Ray tracing vs. Rasterization Screen space techniques Visibility & shadows Instant

More information

Philipp Slusallek Karol Myszkowski. Realistic Image Synthesis SS18 Instant Global Illumination

Philipp Slusallek Karol Myszkowski. Realistic Image Synthesis SS18 Instant Global Illumination Realistic Image Synthesis - Instant Global Illumination - Karol Myszkowski Overview of MC GI methods General idea Generate samples from lights and camera Connect them and transport illumination along paths

More information

The Traditional Graphics Pipeline

The Traditional Graphics Pipeline Last Time? The Traditional Graphics Pipeline Participating Media Measuring BRDFs 3D Digitizing & Scattering BSSRDFs Monte Carlo Simulation Dipole Approximation Today Ray Casting / Tracing Advantages? Ray

More information

Other Rendering Techniques CSE 872 Fall Intro You have seen Scanline converter (+z-buffer) Painter s algorithm Radiosity CSE 872 Fall

Other Rendering Techniques CSE 872 Fall Intro You have seen Scanline converter (+z-buffer) Painter s algorithm Radiosity CSE 872 Fall Other Rendering Techniques 1 Intro You have seen Scanline converter (+z-buffer) Painter s algorithm Radiosity 2 Intro Some more Raytracing Light maps Photon-map Reyes Shadow maps Sahdow volumes PRT BSSRF

More information

Chapter 11 Global Illumination. Part 1 Ray Tracing. Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11.

Chapter 11 Global Illumination. Part 1 Ray Tracing. Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11. Chapter 11 Global Illumination Part 1 Ray Tracing Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11.3 CG(U), Chap.11 Part 1:Ray Tracing 1 Can pipeline graphics renders images

More information

Schedule. MIT Monte-Carlo Ray Tracing. Radiosity. Review of last week? Limitations of radiosity. Radiosity

Schedule. MIT Monte-Carlo Ray Tracing. Radiosity. Review of last week? Limitations of radiosity. Radiosity Schedule Review Session: Tuesday November 18 th, 7:30 pm, Room 2-136 bring lots of questions! MIT 6.837 Monte-Carlo Ray Tracing Quiz 2: Thursday November 20 th, in class (one weeks from today) MIT EECS

More information

B-KD Trees for Hardware Accelerated Ray Tracing of Dynamic Scenes

B-KD Trees for Hardware Accelerated Ray Tracing of Dynamic Scenes B-KD rees for Hardware Accelerated Ray racing of Dynamic Scenes Sven Woop Gerd Marmitt Philipp Slusallek Saarland University, Germany Outline Previous Work B-KD ree as new Spatial Index Structure DynR

More information

A distributed rendering architecture for ray tracing large scenes on commodity hardware. FlexRender. Bob Somers Zoe J.

A distributed rendering architecture for ray tracing large scenes on commodity hardware. FlexRender. Bob Somers Zoe J. FlexRender A distributed rendering architecture for ray tracing large scenes on commodity hardware. GRAPP 2013 Bob Somers Zoe J. Wood Increasing Geometric Complexity Normal Maps artifacts on silhouette

More information

INFOMAGR Advanced Graphics. Jacco Bikker - February April Welcome!

INFOMAGR Advanced Graphics. Jacco Bikker - February April Welcome! INFOMAGR Advanced Graphics Jacco Bikker - February April 2016 Welcome! I x, x = g(x, x ) ε x, x + S ρ x, x, x I x, x dx Today s Agenda: Introduction : GPU Ray Tracing Practical Perspective Advanced Graphics

More information

PantaRay: Fast Ray-traced Occlusion Caching of Massive Scenes J. Pantaleoni, L. Fascione, M. Hill, T. Aila

PantaRay: Fast Ray-traced Occlusion Caching of Massive Scenes J. Pantaleoni, L. Fascione, M. Hill, T. Aila PantaRay: Fast Ray-traced Occlusion Caching of Massive Scenes J. Pantaleoni, L. Fascione, M. Hill, T. Aila Agenda Introduction Motivation Basics PantaRay Accelerating structure generation Massively parallel

More information

Sung-Eui Yoon ( 윤성의 )

Sung-Eui Yoon ( 윤성의 ) CS380: Computer Graphics Ray Tracing Sung-Eui Yoon ( 윤성의 ) Course URL: http://sglab.kaist.ac.kr/~sungeui/cg/ Class Objectives Understand overall algorithm of recursive ray tracing Ray generations Intersection

More information

Wed, October 12, 2011

Wed, October 12, 2011 Practical Occlusion Culling in Killzone 3 Michal Valient Lead Tech, Guerrilla B.V. Talk takeaway Occlusion culling system used in Killzone 3 The reasons why to use software rasterization (Some) technical

More information

To Do. Real-Time High Quality Rendering. Motivation for Lecture. Monte Carlo Path Tracing. Monte Carlo Path Tracing. Monte Carlo Path Tracing

To Do. Real-Time High Quality Rendering. Motivation for Lecture. Monte Carlo Path Tracing. Monte Carlo Path Tracing. Monte Carlo Path Tracing Real-Time High Quality Rendering CSE 274 [Fall 2015], Lecture 5 Tour of Modern Offline Rendering To Do Project milestone (1-2 pages), final project proposal Due on Oct 27 Please get in touch with me if

More information

Ray Tracing. Cornell CS4620/5620 Fall 2012 Lecture Kavita Bala 1 (with previous instructors James/Marschner)

Ray Tracing. Cornell CS4620/5620 Fall 2012 Lecture Kavita Bala 1 (with previous instructors James/Marschner) CS4620/5620: Lecture 37 Ray Tracing 1 Announcements Review session Tuesday 7-9, Phillips 101 Posted notes on slerp and perspective-correct texturing Prelim on Thu in B17 at 7:30pm 2 Basic ray tracing Basic

More information

Massive Model Visualization using Real-time Ray Tracing

Massive Model Visualization using Real-time Ray Tracing Massive Model Visualization using Real-time Ray Tracing Eurographics 2006 Tutorial: Real-time Interactive Massive Model Visualization Andreas Dietrich Philipp Slusallek Saarland University & intrace GmbH

More information

Single Scattering in Refractive Media with Triangle Mesh Boundaries

Single Scattering in Refractive Media with Triangle Mesh Boundaries Single Scattering in Refractive Media with Triangle Mesh Boundaries Bruce Walter Shuang Zhao Nicolas Holzschuch Kavita Bala Cornell Univ. Cornell Univ. Grenoble Univ. Cornell Univ. Presented at SIGGRAPH

More information

Effects needed for Realism. Ray Tracing. Ray Tracing: History. Outline. Foundations of Computer Graphics (Spring 2012)

Effects needed for Realism. Ray Tracing. Ray Tracing: History. Outline. Foundations of Computer Graphics (Spring 2012) Foundations of omputer Graphics (Spring 202) S 84, Lecture 5: Ray Tracing http://inst.eecs.berkeley.edu/~cs84 Effects needed for Realism (Soft) Shadows Reflections (Mirrors and Glossy) Transparency (Water,

More information

ReduceM: Interactive and Memory Efficient Ray Tracing of Large Models

ReduceM: Interactive and Memory Efficient Ray Tracing of Large Models Eurographics Symposium on Rendering 2008 Steve Marschner and Michael Wimmer (Guest Editors) Volume 27 (2008), Number 4 ReduceM: Interactive and Memory Efficient Ray Tracing of Large Models Christian Lauterbach

More information

Consider a partially transparent object that is illuminated with two lights, one visible from each side of the object. Start with a ray from the eye

Consider a partially transparent object that is illuminated with two lights, one visible from each side of the object. Start with a ray from the eye Ray Tracing What was the rendering equation? Motivate & list the terms. Relate the rendering equation to forward ray tracing. Why is forward ray tracing not good for image formation? What is the difference

More information

CS 563 Advanced Topics in Computer Graphics Culling and Acceleration Techniques Part 1 by Mark Vessella

CS 563 Advanced Topics in Computer Graphics Culling and Acceleration Techniques Part 1 by Mark Vessella CS 563 Advanced Topics in Computer Graphics Culling and Acceleration Techniques Part 1 by Mark Vessella Introduction Acceleration Techniques Spatial Data Structures Culling Outline for the Night Bounding

More information

The Traditional Graphics Pipeline

The Traditional Graphics Pipeline Final Projects Proposals due Thursday 4/8 Proposed project summary At least 3 related papers (read & summarized) Description of series of test cases Timeline & initial task assignment The Traditional Graphics

More information

Improving Memory Space Efficiency of Kd-tree for Real-time Ray Tracing Byeongjun Choi, Byungjoon Chang, Insung Ihm

Improving Memory Space Efficiency of Kd-tree for Real-time Ray Tracing Byeongjun Choi, Byungjoon Chang, Insung Ihm Improving Memory Space Efficiency of Kd-tree for Real-time Ray Tracing Byeongjun Choi, Byungjoon Chang, Insung Ihm Department of Computer Science and Engineering Sogang University, Korea Improving Memory

More information

Lecture 2 - Acceleration Structures

Lecture 2 - Acceleration Structures INFOMAGR Advanced Graphics Jacco Bikker - November 2017 - February 2018 Lecture 2 - Acceleration Structures Welcome! I x, x = g(x, x ) ε x, x + න S ρ x, x, x I x, x dx Today s Agenda: Problem Analysis

More information

The Traditional Graphics Pipeline

The Traditional Graphics Pipeline Last Time? The Traditional Graphics Pipeline Reading for Today A Practical Model for Subsurface Light Transport, Jensen, Marschner, Levoy, & Hanrahan, SIGGRAPH 2001 Participating Media Measuring BRDFs

More information

Ray Tracing III. Wen-Chieh (Steve) Lin National Chiao-Tung University

Ray Tracing III. Wen-Chieh (Steve) Lin National Chiao-Tung University Ray Tracing III Wen-Chieh (Steve) Lin National Chiao-Tung University Shirley, Fundamentals of Computer Graphics, Chap 10 Doug James CG slides, I-Chen Lin s CG slides Ray-tracing Review For each pixel,

More information

Lecture 11 - GPU Ray Tracing (1)

Lecture 11 - GPU Ray Tracing (1) INFOMAGR Advanced Graphics Jacco Bikker - November 2017 - February 2018 Lecture 11 - GPU Ray Tracing (1) Welcome! I x, x = g(x, x ) ε x, x + න S ρ x, x, x I x, x dx Today s Agenda: Exam Questions: Sampler

More information

Interactive Isosurface Ray Tracing of Large Octree Volumes

Interactive Isosurface Ray Tracing of Large Octree Volumes Interactive Isosurface Ray Tracing of Large Octree Volumes Aaron Knoll, Ingo Wald, Steven Parker, and Charles Hansen Scientific Computing and Imaging Institute University of Utah 2006 IEEE Symposium on

More information

Computer Graphics. - Ray Tracing I - Marcus Magnor Philipp Slusallek. Computer Graphics WS05/06 Ray Tracing I

Computer Graphics. - Ray Tracing I - Marcus Magnor Philipp Slusallek. Computer Graphics WS05/06 Ray Tracing I Computer Graphics - Ray Tracing I - Marcus Magnor Philipp Slusallek Overview Last Lecture Introduction Today Ray tracing I Background Basic ray tracing What is possible? Recursive ray tracing algorithm

More information

Motivation. Sampling and Reconstruction of Visual Appearance. Effects needed for Realism. Ray Tracing. Outline

Motivation. Sampling and Reconstruction of Visual Appearance. Effects needed for Realism. Ray Tracing. Outline Sampling and Reconstruction of Visual Appearance CSE 274 [Fall 2018], Special Lecture Ray Tracing Ravi Ramamoorthi http://www.cs.ucsd.edu/~ravir Motivation Ray Tracing is a core aspect of both offline

More information

Ray Tracing. Kjetil Babington

Ray Tracing. Kjetil Babington Ray Tracing Kjetil Babington 21.10.2011 1 Introduction What is Ray Tracing? Act of tracing a ray through some scene Not necessarily for rendering Rendering with Ray Tracing Ray Tracing is a global illumination

More information

Ray Tracing with Spatial Hierarchies. Jeff Mahovsky & Brian Wyvill CSC 305

Ray Tracing with Spatial Hierarchies. Jeff Mahovsky & Brian Wyvill CSC 305 Ray Tracing with Spatial Hierarchies Jeff Mahovsky & Brian Wyvill CSC 305 Ray Tracing Flexible, accurate, high-quality rendering Slow Simplest ray tracer: Test every ray against every object in the scene

More information

Ray tracing. EECS 487 March 19,

Ray tracing. EECS 487 March 19, Ray tracing EECS 487 March 19, 2007 http://radsite.lbl.gov/radiance/book/ 1 Conventional pipeline (rasterization) For each triangle Compute lighting at vertices For each pixel within triangle Compute interpolated

More information

Realtime Ray Tracing

Realtime Ray Tracing Realtime Ray Tracing Meinrad Recheis Vienna University of Technology Figure 1: Images rendered in realtime with OpenRT on PC clusters at resolution 640 480. a) A Mercedes C-Class model consisting of 320.000

More information

Ray-Box Culling for Tree Structures

Ray-Box Culling for Tree Structures JOURNAL OF INFORMATION SCIENCE AND ENGINEERING XX, XXX-XXX (2012) Ray-Box Culling for Tree Structures JAE-HO NAH 1, WOO-CHAN PARK 2, YOON-SIG KANG 1, AND TACK-DON HAN 1 1 Department of Computer Science

More information

Adaptive Assignment for Real-Time Raytracing

Adaptive Assignment for Real-Time Raytracing Adaptive Assignment for Real-Time Raytracing Paul Aluri [paluri] and Jacob Slone [jslone] Carnegie Mellon University 15-418/618 Spring 2015 Summary We implemented a CUDA raytracer accelerated by a non-recursive

More information

Recollection. Models Pixels. Model transformation Viewport transformation Clipping Rasterization Texturing + Lights & shadows

Recollection. Models Pixels. Model transformation Viewport transformation Clipping Rasterization Texturing + Lights & shadows Recollection Models Pixels Model transformation Viewport transformation Clipping Rasterization Texturing + Lights & shadows Can be computed in different stages 1 So far we came to Geometry model 3 Surface

More information

Ray Intersection Acceleration

Ray Intersection Acceleration Ray Intersection Acceleration CMPT 461/761 Image Synthesis Torsten Möller Reading Chapter 2, 3, 4 of Physically Based Rendering by Pharr&Humphreys An Introduction to Ray tracing by Glassner Topics today

More information

RTfact. Concepts for Generic Ray Tracing. Iliyan Georgiev. Computer Graphics Group Saarland University Saarbrücken, Germany

RTfact. Concepts for Generic Ray Tracing. Iliyan Georgiev. Computer Graphics Group Saarland University Saarbrücken, Germany RTfact Concepts for Generic Ray Tracing Iliyan Georgiev Computer Graphics Group Saarland University 66123 Saarbrücken, Germany A thesis submitted in partial satisfaction of the requirements for the degree

More information

INFOMAGR Advanced Graphics. Jacco Bikker - February April Welcome!

INFOMAGR Advanced Graphics. Jacco Bikker - February April Welcome! INFOMAGR Advanced Graphics Jacco Bikker - February April 2016 Welcome! I x, x = g(x, x ) ε x, x + S ρ x, x, x I x, x dx Today s Agenda: Introduction Ray Distributions The Top-level BVH Real-time Ray Tracing

More information

CS 563 Advanced Topics in Computer Graphics QSplat. by Matt Maziarz

CS 563 Advanced Topics in Computer Graphics QSplat. by Matt Maziarz CS 563 Advanced Topics in Computer Graphics QSplat by Matt Maziarz Outline Previous work in area Background Overview In-depth look File structure Performance Future Point Rendering To save on setup and

More information

REAL-TIME GPU PHOTON MAPPING. 1. Introduction

REAL-TIME GPU PHOTON MAPPING. 1. Introduction REAL-TIME GPU PHOTON MAPPING SHERRY WU Abstract. Photon mapping, an algorithm developed by Henrik Wann Jensen [1], is a more realistic method of rendering a scene in computer graphics compared to ray and

More information

Real Time Rendering of Complex Height Maps Walking an infinite realistic landscape By: Jeffrey Riaboy Written 9/7/03

Real Time Rendering of Complex Height Maps Walking an infinite realistic landscape By: Jeffrey Riaboy Written 9/7/03 1 Real Time Rendering of Complex Height Maps Walking an infinite realistic landscape By: Jeffrey Riaboy Written 9/7/03 Table of Contents 1 I. Overview 2 II. Creation of the landscape using fractals 3 A.

More information

CPSC GLOBAL ILLUMINATION

CPSC GLOBAL ILLUMINATION CPSC 314 21 GLOBAL ILLUMINATION Textbook: 20 UGRAD.CS.UBC.CA/~CS314 Mikhail Bessmeltsev ILLUMINATION MODELS/ALGORITHMS Local illumination - Fast Ignore real physics, approximate the look Interaction of

More information

Motivation: Monte Carlo Path Tracing. Sampling and Reconstruction of Visual Appearance. Monte Carlo Path Tracing. Monte Carlo Path Tracing

Motivation: Monte Carlo Path Tracing. Sampling and Reconstruction of Visual Appearance. Monte Carlo Path Tracing. Monte Carlo Path Tracing Sampling and Reconstruction of Visual Appearance CSE 274 [Winter 2018], Lecture 4 Ravi Ramamoorthi http://www.cs.ucsd.edu/~ravir Motivation: Key application area for sampling/reconstruction Core method

More information

Lecture 4 - Real-time Ray Tracing

Lecture 4 - Real-time Ray Tracing INFOMAGR Advanced Graphics Jacco Bikker - November 2017 - February 2018 Lecture 4 - Real-time Ray Tracing Welcome! I x, x = g(x, x ) ε x, x + න S ρ x, x, x I x, x dx Today s Agenda: Introduction Ray Distributions

More information

Lighting. To do. Course Outline. This Lecture. Continue to work on ray programming assignment Start thinking about final project

Lighting. To do. Course Outline. This Lecture. Continue to work on ray programming assignment Start thinking about final project To do Continue to work on ray programming assignment Start thinking about final project Lighting Course Outline 3D Graphics Pipeline Modeling (Creating 3D Geometry) Mesh; modeling; sampling; Interaction

More information

Accelerating Ray Tracing

Accelerating Ray Tracing Accelerating Ray Tracing Ray Tracing Acceleration Techniques Faster Intersections Fewer Rays Generalized Rays Faster Ray-Object Intersections Object bounding volumes Efficient intersection routines Fewer

More information

Real Time Ray Tracing

Real Time Ray Tracing Real Time Ray Tracing Programação 3D para Simulação de Jogos Vasco Costa Ray tracing? Why? How? P3DSJ Real Time Ray Tracing Vasco Costa 2 Real time ray tracing : example Source: NVIDIA P3DSJ Real Time

More information

Today. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing

Today. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing Today Rendering Algorithms Course overview Organization Introduction to ray tracing Spring 2010 Matthias Zwicker Universität Bern Rendering algorithms Problem statement Given computer representation of

More information

Photon Mapping. Michael Doggett Department of Computer Science Lund university

Photon Mapping. Michael Doggett Department of Computer Science Lund university Photon Mapping Michael Doggett Department of Computer Science Lund university Outline Photon Mapping (ch. 14 in textbook) Progressive Stochastic 2011 Michael Doggett How to make light sampling faster?

More information

Accelerated Ambient Occlusion Using Spatial Subdivision Structures

Accelerated Ambient Occlusion Using Spatial Subdivision Structures Abstract Ambient Occlusion is a relatively new method that gives global illumination like results. This paper presents a method to accelerate ambient occlusion using the form factor method in Bunnel [2005]

More information

Intersection Acceleration

Intersection Acceleration Advanced Computer Graphics Intersection Acceleration Matthias Teschner Computer Science Department University of Freiburg Outline introduction bounding volume hierarchies uniform grids kd-trees octrees

More information

Today. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing

Today. Rendering algorithms. Rendering algorithms. Images. Images. Rendering Algorithms. Course overview Organization Introduction to ray tracing Today Rendering Algorithms Course overview Organization Introduction to ray tracing Spring 2009 Matthias Zwicker Universität Bern Rendering algorithms Problem statement Given computer representation of

More information

Spatial Data Structures

Spatial Data Structures CSCI 420 Computer Graphics Lecture 17 Spatial Data Structures Jernej Barbic University of Southern California Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees [Angel Ch. 8] 1 Ray Tracing Acceleration

More information

Point Cloud Filtering using Ray Casting by Eric Jensen 2012 The Basic Methodology

Point Cloud Filtering using Ray Casting by Eric Jensen 2012 The Basic Methodology Point Cloud Filtering using Ray Casting by Eric Jensen 01 The Basic Methodology Ray tracing in standard graphics study is a method of following the path of a photon from the light source to the camera,

More information

Ray Tracing with Multi-Core/Shared Memory Systems. Abe Stephens

Ray Tracing with Multi-Core/Shared Memory Systems. Abe Stephens Ray Tracing with Multi-Core/Shared Memory Systems Abe Stephens Real-time Interactive Massive Model Visualization Tutorial EuroGraphics 2006. Vienna Austria. Monday September 4, 2006 http://www.sci.utah.edu/~abe/massive06/

More information

Row Tracing with Hierarchical Occlusion Maps

Row Tracing with Hierarchical Occlusion Maps Row Tracing with Hierarchical Occlusion Maps Ravi P. Kammaje, Benjamin Mora August 9, 2008 Page 2 Row Tracing with Hierarchical Occlusion Maps Outline August 9, 2008 Introduction Related Work Row Tracing

More information

Choosing the Right Algorithm & Guiding

Choosing the Right Algorithm & Guiding Choosing the Right Algorithm & Guiding PHILIPP SLUSALLEK & PASCAL GRITTMANN Topics for Today What does an implementation of a high-performance renderer look like? Review of algorithms which to choose for

More information

INFOGR Computer Graphics. J. Bikker - April-July Lecture 11: Acceleration. Welcome!

INFOGR Computer Graphics. J. Bikker - April-July Lecture 11: Acceleration. Welcome! INFOGR Computer Graphics J. Bikker - April-July 2015 - Lecture 11: Acceleration Welcome! Today s Agenda: High-speed Ray Tracing Acceleration Structures The Bounding Volume Hierarchy BVH Construction BVH

More information

Computer Graphics Ray Casting. Matthias Teschner

Computer Graphics Ray Casting. Matthias Teschner Computer Graphics Ray Casting Matthias Teschner Outline Context Implicit surfaces Parametric surfaces Combined objects Triangles Axis-aligned boxes Iso-surfaces in grids Summary University of Freiburg

More information

Topics. Ray Tracing II. Transforming objects. Intersecting transformed objects

Topics. Ray Tracing II. Transforming objects. Intersecting transformed objects Topics Ray Tracing II CS 4620 ations in ray tracing ing objects ation hierarchies Ray tracing acceleration structures Bounding volumes Bounding volume hierarchies Uniform spatial subdivision Adaptive spatial

More information

11/2/2010. In the last lecture. Monte-Carlo Ray Tracing : Path Tracing. Today. Shadow ray towards the light at each vertex. Path Tracing : algorithm

11/2/2010. In the last lecture. Monte-Carlo Ray Tracing : Path Tracing. Today. Shadow ray towards the light at each vertex. Path Tracing : algorithm Comuter Grahics Global Illumination: Monte-Carlo Ray Tracing and Photon Maing Lecture 11 In the last lecture We did ray tracing and radiosity Ray tracing is good to render secular objects but cannot handle

More information

An Approach to Point Based Approximate Color Bleeding With Volumes

An Approach to Point Based Approximate Color Bleeding With Volumes An Approach to Point Based Approximate Color Bleeding With Volumes Christopher J. Gibson and Zoë J. Wood California Polytechnic State University Abstract. Achieving realistic or believable global illumination

More information

Soft Shadow Volumes for Ray Tracing with Frustum Shooting

Soft Shadow Volumes for Ray Tracing with Frustum Shooting Soft Shadow Volumes for Ray Tracing with Frustum Shooting Thorsten Harter Markus Osswald Chalmers University of Technology Chalmers University of Technology University Karlsruhe University Karlsruhe Ulf

More information

Recent Advances in Monte Carlo Offline Rendering

Recent Advances in Monte Carlo Offline Rendering CS294-13: Special Topics Lecture #6 Advanced Computer Graphics University of California, Berkeley Monday, 21 September 2009 Recent Advances in Monte Carlo Offline Rendering Lecture #6: Monday, 21 September

More information

Topics. Ray Tracing II. Intersecting transformed objects. Transforming objects

Topics. Ray Tracing II. Intersecting transformed objects. Transforming objects Topics Ray Tracing II CS 4620 Lecture 16 Transformations in ray tracing Transforming objects Transformation hierarchies Ray tracing acceleration structures Bounding volumes Bounding volume hierarchies

More information

SUMMARY. CS380: Introduction to Computer Graphics Ray tracing Chapter 20. Min H. Kim KAIST School of Computing 18/05/29. Modeling

SUMMARY. CS380: Introduction to Computer Graphics Ray tracing Chapter 20. Min H. Kim KAIST School of Computing 18/05/29. Modeling CS380: Introduction to Computer Graphics Ray tracing Chapter 20 Min H. Kim KAIST School of Computing Modeling SUMMARY 2 1 Types of coordinate function Explicit function: Line example: Implicit function:

More information

Real-time ray tracing

Real-time ray tracing Lecture 10: Real-time ray tracing (and opportunities for hardware acceleration) Visual Computing Systems Recent push towards real-time ray tracing Image credit: NVIDIA (this ray traced image can be rendered

More information

This work is about a new method for generating diffusion curve style images. Although this topic is dealing with non-photorealistic rendering, as you

This work is about a new method for generating diffusion curve style images. Although this topic is dealing with non-photorealistic rendering, as you This work is about a new method for generating diffusion curve style images. Although this topic is dealing with non-photorealistic rendering, as you will see our underlying solution is based on two-dimensional

More information

Computer Graphics. - Ray-Tracing II - Hendrik Lensch. Computer Graphics WS07/08 Ray Tracing II

Computer Graphics. - Ray-Tracing II - Hendrik Lensch. Computer Graphics WS07/08 Ray Tracing II Computer Graphics - Ray-Tracing II - Hendrik Lensch Overview Last lecture Ray tracing I Basic ray tracing What is possible? Recursive ray tracing algorithm Intersection computations Today Advanced acceleration

More information

Universiteit Leiden Computer Science

Universiteit Leiden Computer Science Universiteit Leiden Computer Science Optimizing octree updates for visibility determination on dynamic scenes Name: Hans Wortel Student-no: 0607940 Date: 28/07/2011 1st supervisor: Dr. Michael Lew 2nd

More information

Accelerating Geometric Queries. Computer Graphics CMU /15-662, Fall 2016

Accelerating Geometric Queries. Computer Graphics CMU /15-662, Fall 2016 Accelerating Geometric Queries Computer Graphics CMU 15-462/15-662, Fall 2016 Geometric modeling and geometric queries p What point on the mesh is closest to p? What point on the mesh is closest to p?

More information

RACBVHs: Random Accessible Compressed Bounding Volume Hierarchies

RACBVHs: Random Accessible Compressed Bounding Volume Hierarchies RACBVHs: Random Accessible Compressed Bounding Volume Hierarchies Published at IEEE Transactions on Visualization and Computer Graphics, 2010, Vol. 16, Num. 2, pp. 273 286 Tae Joon Kim joint work with

More information

6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, :05-12pm Two hand-written sheet of notes (4 pages) allowed 1 SSD [ /17]

6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, :05-12pm Two hand-written sheet of notes (4 pages) allowed 1 SSD [ /17] 6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, 2011 9:05-12pm Two hand-written sheet of notes (4 pages) allowed NAME: 1 / 17 2 / 12 3 / 35 4 / 8 5 / 18 Total / 90 1 SSD [ /17]

More information