A Voxel-based Rendering Pipeline for Large 3D Line Sets

Size: px
Start display at page:

Download "A Voxel-based Rendering Pipeline for Large 3D Line Sets"

Transcription

1 1 A Voxel-based Rendering Pipeline for Large 3D Line Sets Mathias Kanzler, Marc Rautenhaus, and Rüdiger Westermann arxiv: v1 [cs.gr] 3 Jan 2018 Abstract We present a voxel-based rendering pipeline for large 3D line sets that employs GPU ray-casting to achieve scalable rendering including transparency and global illumination effects that cannot be achieved with GPU rasterization. Even for opaque lines we demonstrate superior rendering performance compared to GPU rasterization of lines, and when transparency is used we can interactively render large amounts of lines that are infeasible to be rendered via rasterization. To achieve this, we propose a direction-preserving encoding of lines into a regular voxel grid, along with the quantization of directions using face-to-face connectivity in this grid. On the regular grid structure, parallel GPU ray-casting is used to determine visible fragments in correct visibility order. To enable interactive rendering of global illumination effects like low-frequency shadows and ambient occlusions, illumination simulation is performed during ray-casting on a level-of-detail (LoD) line representation that considers the number of lines and their lengths per voxel. In this way we can render effects which are very difficult to render via GPU rasterization. A detailed performance and quality evaluation compares our approach to rasterization-based rendering of lines. Index Terms Ray-casting, large 3D line sets, transparency, global illumination 1 INTRODUCTION 3D line sets can be rendered efficiently via the rasterization-based rendering pipeline on GPUs, for instance, by constructing tubes around each line on-the-fly in a geometry shader. For the rendering of very large 3D line sets, however, GPU rasterization introduces the following limitations: a) When using transparency, which requires the rendered fragments to be blended in correct visibility order, all fragments need to be stored in a per-pixel linked list [1] on the GPU and sorted with respect to the current camera position. This approach works efficient for moderate sized line sets, yet for large sets the sorting operation significantly slows down performance, and in some cases the lists can even exceed the GPU s memory (see Fig. 17). b) Operations requiring spatial adjacency queries cannot be embedded efficiently into rasterization-based rendering. For instance, shadow simulation or ambient occlusion calculations to enhance the spatial perception of rendered lines. Even though hard shadows of point lights can be simulated via shadow mapping, this requires a second rendering pass using the full set of geometry, and the resulting high-frequency illumination variations are rather disturbing from a perceptual point of view (see Fig. 12). An option to overcome these limitations is a rendering technique that does not build upon the order-independent projection of primitives, but is ray-guided and can efficiently traverse the line set along an arbitrary direction. For the rendering of polygon models, GPU voxel ray-casting has been established as a powerful alternative to rasterization. Voxel ray-casting employs a voxel-based object representation in combination with a regular sampling grid that can be traversed efficiently on the GPU [2], [3]. This approach is particular useful because it can generate the sample points M. Kanzler, M. Rautenhaus and R. Westermann are with the Computer Graphics & Visualization Group, Technische Universität München, Garching, Germany. {mathias.kanzler, marc.rautenhaus, westermann}@tum.de along a ray in an order-dependent way, and provides the ability to perform adaptive LoD selection. Furthermore, the regular sampling grid gives rise to efficient search operations, which have been used to simulate global illumination effects via ray-guided visibility computations [4], [5]. Mimicking voxel ray-casting for line primitives, however, is challenging, since no voxel representation of lines is known that can effectively encode spatial occupancy and direction. A solid voxelization of line primitives or tubes generated from them into a regular sampling grid [6] is not feasible due to the following reasons: Firstly, for the line sets we consider, too many voxels must be generated to differentiate between individual lines. Secondly, upon voxelization, changes of rendering parameters like line width and line removal require exhaustive processing. Thirdly, already at moderate zoom factors the lines will appear blocky. Finally, since voxels do not encode any directional information, direction-guided shading and filtering as well as directionpreserving LoD construction becomes infeasible. 1.1 Contribution In this work we propose an alternative rendering technique for large 3D line sets on the GPU, which builds upon the concept of voxel ray-casting to overcome some of the limitations of rasterization-based line rendering. We present a new voxel model for 3D lines and demonstrate its use for GPU line rendering including transparency and ambient occlusion effects. We further show that the voxel model can be used in combination with rasterization-based rendering, by performing the simulation of volumetric effects on this model and letting the rendered fragments access the computed results. Our specific contributions are:

2 2 A novel voxel-based representation of lines, consisting of a macro voxel grid, and a per-voxel quantization structure using voxel face-to-face connectivity. A LoD line representation that considers per voxel the number of lines, their orientations, and lengths to estimate an average line density and direction at ever coarser resolutions. An implementation of GPU ray-casting on the voxelbased representation, including the computation of line, respectively tube intersections on the voxel level, to efficiently simulate transparency as well as local and global illumination effects. We see our rendering approach as an alternative to existing rendering techniques for 3D line sets when there are many lines introducing massive overdraw, and when transparency or global illumination effects are used to enhance the visual perception (see Fig. 19). In this case, our method can significantly accelerate the rendering process, and it can even be used when the memory requirements of rasterization-based approaches exceed what is available on current GPUs. The possibility to construct a LoD line representation enables trading flexibly between quality and speed, and efficiently performing search operations required for simulating advanced illumination effects. The remainder of this paper is organized as follows: We first introduce the particular voxel-model underlying our approach. Next, we show how this model is ray-traced, and how transparency and global illumination effects are integrated. We further demonstrate the embedding of line raycasting in rasterization-based line rendering approaches. Then, we perform a thorough evaluation of our approach regarding quality, speed and memory requirement, and we demonstrate its benefits and limitations with data sets from different applications. We conclude our work with some ideas on future extensions and applications. 2 RELATED WORK Our approach is related to established techniques in visualization and rendering, namely line-based rendering of flow fields and voxel-based ray-tracing. Line-based rendering of flow fields For the visualization of integral curves in vector fields, numerous techniques have been proposed to improve their visual perception [7]. Today, 3D line sets are usually visualized via the rasterization-based rendering pipeline on GPUs, either as illuminated line primitives [8], [9], or as tubes which are constructed around each line on-the-fly in the GPU s shader units. For dense sets of opaque lines, illustrative rendering [10] has been proposed to keep separate lines perceptually visible. Other techniques abstract from single primitives and show flow features via line density projections [11], [12]. Automatic view-dependent selection of transparency has been introduced by Günther et al. [13], to selectively fade out lines in those regions where they occlude more important ones. A user study on perceptual limits of transparencybased line rendering for flow visualization has been conducted by Mishchenko and Crawfis [14]. They also suggest a number of specific usages of transparency to effectively avoid visual clutter and high levels of occlusions. When transparent lines are rendered, generated line fragments need to be blended in correct visibility order. On the GPU, this can be realized by using either depth peeling [15] or per-pixel fragment lists [1], [16]. Depth peeling does not require storing and sorting fragments, yet it requires rendering the data set as many times as the maximum depth complexity of the scene, i.e., the maximum number of fragments falling into the same pixel. For the data sets we consider, where along the majority of view rays the depth complexity is in the order of many hundred or even thousand, the resulting increase in rendering times is not acceptable. Per-pixel fragment lists, on the other hand, require only one single rendering pass, yet they require storing all fragments and can quickly run out of memory on current GPUs. This also holds when depth peeling is applied to fragments bucketed by depth [17], even though the number of rendering passes can be reduced. As an alternative to the exact simulation of transparency, stochastic transparency [18] uses sub-pixel masks to stochastically sample the fragments transparency contributions. Stochastic transparency requires only a rather small and fix number of rendering passes, yet it transforms directional structures into noise. This is especially undesirable in our scenarios, where only lines are rendered and even in transparent regions their directional structure should be preserved. The technique most closely related to ours is the one by Schussman and Ma [19]. They voxelize streamlines into a regular grid, and compute a spherical harmonics representation of the lighting distribution caused by the line segments in every voxel. Voxel-based rendering with subpixel illumination can then be performed, yet single line primitives cannot be determined any more, for instance, to render the initial lines or compute exact occlusions. Voxel-based ray-tracing Advances in hardware and software technology have shown the potential of ray-tracing as an alternative to rasterization, especially for high-resolution models with many inherent occlusions. Developments in this field include advanced space partitioning and traversal schemes [20], [21], [22], and optimized GPU implementations [23], [24], [25], to name just a few. All these approaches can be classified as conventional ray-tracing approaches, since they operate on the polygon object representation and perform classical ray-polygon intersection tests. Recently, Wald et al. [26] proposed the use of ray-tracing for particle rendering, by using a tree-based search structure for particle locations to efficiently find those particles a ray has to be intersected with. The integration of global illumination effects like ambient occlusion into particle visualizations has been demonstrated by Wald et al. [26] and Staib et al [27]. Voxel models have been first introduced 1993 by Kaufman in the seminal paper [28]. Compared to polygonal representations, they provide an interesting set of advantages like easier level of detail computation and combined storage of surface and geometry information. A detailed investigation of algorithms for line voxelization has been provided by Cohen-Or and Kaufman [6]. Interestingly, a

3 3 voxel model has also been used in the very first published work on iso-surface visualization: Cuberilles [29]. The Cuberille method or opaque cubes works by computing the set of grid cells that contain a selected iso-surface and rendering those as small cubes. In the last years, there has been a lot of research into large octrees to render high-resolution voxel models [2], [3], [30]. All these approaches subdivide the model into a sparse volume, storing only small volume bricks along the initial model surface, and use a compute-based octree traversal to render the contained surface. The potential of voxelbased rendering approaches to efficiently simulate global illumination effects has been demonstrated, for instance, in [5], [31]. The survey by Joenssen et al [32] provides a general overview of approaches for simulating global illumination effects on volumetric data sets. 3 VOXEL-BASED CURVE DISCRETIZATION The input of our method consists of a set of curves, e.g. streamlines, where each curve is approximated by a connected line set. Each line set is represented by a sequence of vertices v i and corresponding attributes a i. The attributes can be specified optionally, for instance, to enable the use of a transfer function to interactively change the curves colors or transparencies. In the following we assume that the curve discretization is performed in a pre-process on the CPU, and the generated data structure is then uploaded to the GPU where rendering is performed. This pre-process can also be performed on the GPU, enabling instant update operations when curves are removed or new curves are added. This, however, requires some modifications, the discussion of which we delay until the end of the current section. We propose a two-level grid structure for discretization of the initial curves, as illustrated in Fig. 1. (a) (b) (c) (d) can get lost when approximating these features by linear segments in every voxel. With increasing grid resolution better approximation quality is achieved, yet at the cost of increasing memory requirement. The end points of each pervoxel line segment can either be stored exactly using floating point values, or they can be quantized to a set of points on the voxel faces. This allows for a compact encoding of the line segments per voxel, and it can be used to control how many lines passing through one voxel are collapsed to one single line. 3.1 Curve voxelization Initially, the resolution r x r y r z of the 3D voxel grid into which the curves are voxelized is set. We use cubeshaped voxels of side length 1 and set the resolution so that the aspect ratio of the bounding box of the initial curves is maintained. The vertex coordinates v i are then transformed to local object coordinates in the range from (0, 0, 0) to (r x, r y, r z ). For each curve and starting with the first vertex, every pair of vertices v i and v i+1 is processed consecutively. A line through v i and v i+1 is clipped against the voxel boundaries, via line-face intersection tests in the order of their occurrence from v i to v i+1. If v i and v i+1 are located in the same voxel, no new intersection point is generated. This gives a sequence of voxel-face intersections, and every pair of consecutive intersections represents a line that enters into a voxel and exits that voxel. In general the first and last vertex of a line do not lie on a face, we hence omit the segments from the first vertex to the first face intersection and from the last face intersection to the last vertex. Fig. 2 illustrates the voxelization process, demonstrating increasing approximation quality with increasing grid resolution, as well as limitations of the piecewise linear curve approximation when the grid resolution is too low. The maximal deviation between the initial curve and the generated line segments is bound by the length of a voxel s diagonal. Voxel Grid Original Lines Linearized Lines Quantized Lines Fig. 1: Two-level grid structure. First level: Voxel grid, curves are clipped to the voxel faces (b), and per-voxel linear line segments are generated (c). Second level: Line vertices are quantized based on a uniform subdivision of voxel faces (d). The first level is given by a voxel grid, in which each curve is approximated by a set of per-voxel linear line segments. A regular subdivision of each voxel face yields the second level, where the endpoints of the per-voxel line segments are quantized to the center points of sub-faces. The use of a two-level structure allows controlling the approximation quality of the voxelization and storing the line segments per voxel in a compact form. The resolution of the voxel grid controls the size of the geometric features that Fig. 2: Curve voxelization: Initial curve in red and piecewise linear approximation in black. Top: Decreasing approximation error with increasing voxel grid resolution. Bottom: Geometric details can be missed if the voxel grid resolution is too low.

4 4 For every voxel in the voxel grid, a linked list is used to store the lines intersecting that voxel. Line attributes, interpolated to the line-face intersection points, and IDs that identify to which curve a line belongs can be stored in addition. 3.2 Line quantization For quantizing the coordinates of the curve-voxel intersection points, we use a small number of bins per face: As illustrated in Fig 1d, every square voxel face is subdivided regularly into N N smaller squares. The coordinates of the intersection points are then quantized to the centers of these squares. Thus, every vertex can be encoded via a 2N bit pattern (indicating the sub-square in a voxel face) and a 3 bit face ID (indicating on which face the vertex is located). The bits are packed into a single word that is just large enough to store them. Since voxels have unit size and each voxel face is subdivided equally, the vertex location in object coordinates (quantized to the per-face square centers) can be computed from a bit pattern stored per-vertex. Fig. 3 illustrates the quantization process and the effects of different values of N on the curve approximations. Fig. 4: GPU rasterization of initial lines (left) vs. rasterization of voxelized lines using voxel grid and curve-face intersections quantized to 16 2 bins (right). subdivision can introduce additional C 1 -discontinuities at voxel transitions, i.e., by jittering a vertex that is shared by two lines with the same orientation. Especially high frequent variations that occur when a short line is jittered are perceptually noticeable, as indicated by the last example in Fig. 5. Fig. 3: Line quantization. From left to right: Original curves, per-voxel linear approximation using vertex quantization to 8 2, 4 2, and 2 2 sub-faces (bins) per voxel face, respectively. If the number of bins is too low, lines can fall onto each other. The quantization process introduces an additional approximation error that depends on the selected subdivision of voxel faces. This error does not cause any geometric details to be lost, yet it slightly jitters the vertex locations and, thus, affects a line s orientation. In particular, different lines might be mapped onto the same quantized line because their vertices are quantized to the same locations. Fig. 4 shows a direct comparison between the original curves and the voxelized curves using a voxel grid resolution and per-face subdivision at which the discretization errors can only just be perceived. In both cases, the lines are rendered via GPU rasterization; by starting at the first vertex and then either by traversing the original set of vertices and constructing tubes around each line on-the-fly in a geometry shader, or by performing the same construction on the discretized line set. Especially the straight curves in the foreground show some subtle bumpiness that is caused by the quantization of line vertices. To demonstrate how, in general, the voxel grid resolution and the voxel face subdivision affect the final reconstruction quality, Fig. 5 shows some extreme cases which also reveal the interplay between both resolutions. A detailed analysis of the dependencies between resolution, quality and memory consumption for different resolutions is given in Sec. 6. While a low resolution of the voxel grid affects in particular the per-voxel approximation error, a low degree of face 3.3 GPU implementation The per-voxel linked list representation used to store the lines is neither memory efficient, as each line stores a pointer to the following element, nor can subsequent lines be accessed quickly, as they are not stored consecutively in memory and, thus, cached reads are prohibited. Therefore, before uploading the data to the GPU, the lines are reordered in memory so that all lines passing through the same voxel are stored in consecutive elements of a linear array. The final data structure stores for each voxel a header, which stores the number of lines for that voxel, and a pointer to the array element storing the first line passing through it. Constructing the voxel model on the GPU consists of three stages: Firstly, in parallel for every initial curve we compute the lines per voxel and write them into a linear append buffer. Every segment is assigned the unique ID of the voxel it is contained in. Next, the buffer is sorted with respect to the voxel IDs, so that all lines falling into the same voxel are located consecutively in the buffer. An exclusive parallel prefix sum is then computed in-place over the buffer to count the number of line per voxel. Now, for every voxel the start index of its line set can be determined from the content of the buffer, and stored in a separate voxel buffer at the corresponding location. This buffer is used at render time to look up at which position in the global buffer the lines for a particular voxel are stored. 3.4 LoD construction One important property of classical voxel models for surfaces is that a LoD structure can be generated efficiently by simple averaging operations on the voxel values to aggregate information. For a line set that is voxelized as proposed in our work, such an averaging operation cannot be applied immediately because a) an averaging operator for lines first needs to be defined, and b) every voxel might store not only one but many lines. It is worth noting that

5 5 a) b) c) d) Fig. 5: Streamlines in the Aneurysm II dataset. (a) Initial lines. (b) Line encoding in 64 3 voxel grid with exact curvevoxel intersections. (c) Line encoding in 64 3 voxel grid with curve-voxel intersections quantized to 8 2 bins. (d) Line encoding in voxel grid with curve-voxel intersections quantized to 8 2 bins. regardless of how a) and b) are addressed, it is impossible, in general, to represent the lines in one voxel by one single average line so that continuity with the average lines in adjacent voxels is ensured. We address the problem of LoD construction for a voxelized line set as follows: Since we intend to use the LoD structure in particular to accelerate the simulation of global illumination effects, we derive a scalar indicator for the amount of light that is blocked by the lines in a single voxel. By using standard averaging operators, an octree LoD structure can then be generated in a straight forward way from the indicator field. For every voxel, we compute an average density value ρ from the lines passing through it, by taking into account the lines lengths and opacities: ρ = l i L length(l i )σ i, (1) where L is the set of lines in the voxel, and l i and σ i are the length and opacity of the i-th line in that voxel, respectively. The lines opacities are either set to a constant values or assigned individually via a transfer function. Finally, an octree is build bottom-up by averaging the density values in 2 3 voxels into one voxel at the next coarser level (see Fig. 6). In addition to the per-voxel opacity values, one representative average line is computed for every voxel; by averaging separately the start points and end points of all lines in a voxel. This gives two average points which are snapped to the closest bin on the voxel boundaries, and from which the average line is computed. Care has to be taken regarding the orientation of lines, i.e., when two averaged lines have vastly opposite directions. Therefore, before considering a new pair of start and end point, we first test whether the corresponding line has an angle of more than 90 with the previous line, and we flip the line if this is the case. We also attempt to establish connectivity between representative lines in adjacent voxels if their endpoints are in the same voxel face, by snapping the endpoints to the quantization bin into which the average of both points is falling. In this way, we can often achieve continuous representative curves, even though it is clear that in general such a continuous fit is not possible. Fig. 7 illustrates a multi-resolution representation of a set of curves. Note in particular how well in certain regions the average curves even on the coarser resolution levels represent the initial curves. Fig. 6: Initial lines, line density values at the first, second, and third LoD. The density values can be interpreted as per-voxel opacities telling how much light is blocked by a voxel. Since the amount of blocking depends also on how the lines are oriented with respect to the incoming light, directiondependent opacity values are favorable in principle [33]. Even though they can be generated in a straight forward way, by simulating the attenuation from a number of selected directions via ray-casting, we did not consider this option in the current work to avoid storing many values per voxel and, thus, increasing the memory consumption significantly. Fig. 7: Voxelized lines, first, and second LoD. The representative lines are stored in addition to the pervoxel line set, and a LoD representation can be computed by propagating these lines to ever coareser resolution levels. The average per-voxel opacity values at different resolution levels are stored in a set of 3D texture maps. By using these quantities we can efficiently realize a number of rendering accelerations and effects, which we will introduce in Sec LINE RAYCASTING Once the voxel-based line representation has been constructed and the data is residing in GPU memory, volume

6 6 ray-casting can be used to render the lines in front-to-back order. For every pixel a ray is cast through the voxel grid, thereby going from voxel face to voxel face using a digital differential analyzer algorithm. The voxel grid serves as a search structure to efficiently determine those lines that need to be tested for an intersection with the ray. Whenever a voxel is hit, the voxel header is read to determine how many lines are stored in that voxel, and if a voxel is empty, it is skipped. Otherwise, the lines are read consecutively and intersected with the ray. Here it is assumed that the lines are in fact tubes with a userdefined radius, so that the intersection test becomes a raytube intersection test. This test yields an entry and exit point, from which the distance the ray travels inside the tube can be computed and used, for instance, to simulate attenuation effects. If more than one intersection with tubes are determined, the intersections are first computed and then sorted in place in the correct visibility order. r Missing Segment Fig. 8: When a tube extends into a voxel, and a ray intersects that voxel but none of the voxels in which the tube s center line is encoded (left), no intersection is found and a piece of the tube is missing (right top). By including neighbouring voxels in the intersection test, missing intersection points are found (right bottom). 4.1 Ray-tube intersections During ray-casting, a problematic case can occur if a tube stands out of the voxel in which its center line is defined. Since the tube expands into a voxel which may not know the center line, the piece in this voxel cannot be rendered if the ray doesn t intersect any of the voxels in which the center line is encoded. This situation is illustrated in Fig. 8. A straightforward solution to this problem is for a given ray and voxel intersection to also test for intersections with lines from adjacent voxels, a solution that unfortunately decreases rendering performance due to the increased number of intersection tests. However, our experiments have shown that the artifacts that occur when neglecting the missing segments are only rarely visible. In particular when rendering tubes with transparency the artifacts are hardly perceivable. As a compromise, we hence during interactive navigation restrict our method to testing against the lines in the voxel hit by the ray. As soon as the camera stands still, adjacent voxels are also taken into account. Another problematic situation occurs at the joint between adjacent lines, i.e., a gap is produced if the lines do not have the same direction (see Fig. 9). The gap is filled by rendering spheres at the end points of the line segments with a radius identical to the tube s radius. To avoid blending the same line twice, we keep track of the IDs of intersected lines using bit operations and consider an intersection point only once. 5 RENDERING EFFECTS At every entering ray-tube intersection point, we calculate the tube normal and evaluate a local illumination model. If the tubes are rendered opaque, this only has to be done for the first intersection point. The resulting color value is combined with the tube color, and this color is used as pixel color. Fig. 10 demonstrates the rendering of opaque tubes via GPU ray-casting, and compares the result to that of GPU rasterization of the initial lines. Interestingly, in terms of rendering quality rasterization and ray-casting do not seem to show any significant differences at the selected discretization resolution, yet even for r Overlapping Line Segments Sphere Fig. 9: Left top: Overlapping tubes are blended incorrectly and parts are missing. Rendering a sphere at line joints (right) continuously closes the gaps (left bottom). opaque lines ray-casting renders already faster than rasterization. The main reason is that ray-casting can effectively employ early-ray termination once the first intersection with a tube is determined. Since rasterization renders the lines in the order they are stored, which is not the visibility order in general, it needs to generate a considerably larger number of fragments. 5.1 Transparency rendering If the tubes are rendered semi-transparent, at every entering ray-tube intersection an opacity value α is either read from the voxel header or assigned via a transfer function. The opacity value is then used to modulate the tube color, and this color is blended with the pixel color using front-toback α-compositing, i.e., in the order in which the tube intersections are determined along the ray. The described way of handling opacity is exactly how the final pixel color is computed when semi-transparent lines are rendered via GPU rasterization. In contrast to ray-casting, however, in GPU rasterization all generated fragments first have to be stored and finally sorted per-pixel with respect to increasing depth. Only then can the fragments colors be blended in correct order. Fig. 11 shows colored and semi-transparent lines, once rendered via GPU rasterization and once via GPU raycasting. In this situation, the advantage of ray-casting comes r

7 7 Fig. 10: Rendering of opaque lines. Left: GPU ray-casting of discretized lines (8ms, voxel grid, curve-face intersections quantized to 16 2 bins). Right: GPU rasterization of initial lines (12 ms). out most significantly: Since the ray-tube intersection points are computed in correct visibility order, there is no need to store and finally sort these points for blending. Due to this, the performance gain of ray-casting compared to rasterization now becomes significant; about a factor of 7 for the used dataset. global illumination effects such as shadows. Shadows provide additional depth and shape cues, and can significantly enhance the visual perception of the curves geometry and their spatial relationships. The simulation of hard shadows of a point light source can be realized by sending out shadow rays and testing if the ray hits another tube before it hits a light source. However, as demonstrated in Fig. 12b, due to the high frequency shadow patterns that are caused by a dense set of curves, hard shadows rather disturb the visual perception than help to improve it. We propose the following two approaches to incorporate shadows into the rendering of large line sets without introducing high-frequency shadow patterns. The first approach is to test the shadow rays against the representative lines at a coarser LoD, thus reducing the number of lines that throw a shadow and making the shadows wider and more contiguous (see Fig. 12c). The second approach replaces hard shadows by soft shadows, by sampling the line density values along the shadow rays to measure the amount of blocking. (see Fig. 12d). Both approaches require to traverse only one single shadow ray towards the light source and can be performed efficiently on the proposed LoD representation. Fig. 11: Left: Rasterization-based transparency rendering using fragment linked lists on the GPU (160ms, 600 MB fragment list). Right: GPU ray-casting (24ms, voxel grid, curve-face intersections quantized to 16 2 bins, 60 MB voxel representation). Furthermore, additional acceleration and quality improvement strategies can be integrated into ray-casting in a straight forward way. Firstly, α-termination, i.e., the termination of a ray once the accumulated opacity exceeds a user-defined threshold, can be used to reduce the number of ray-tube intersection points. If a LoD representation is available, even opacity-acceleration [34] can be employed, i.e., increasing the step size along the ray and simultaneously sampling the opacity from ever coarser resolution levels with increasing optical depth. Secondly, instead of considering a constant opacity per tube, the opacity can be made dependent on the distance the ray travels within the tube. Since together with the ray entry point also the ray exit point is computed, this distance is immediately available. Even the handling of penetrating tubes does not impose any conceptual problem, and only requires to sort the ray-tube intersections locally per voxel. 5.2 Shadow simulation The possibility to efficiently trace arbitrary rays through the voxelized 3D curves can be employed to efficiently simulate a) b) c) d) Fig. 12: (a) Local illumination. (b) Per-fragment hard shadows. (c) Shadows from representative lines at first LoD. (d) Soft shadows from line density values via cone-tracing. In the first approach, the shadow rays traverse the voxels of a selected LoD and test for intersections with the representative line in every voxel. Even though we do not avoid hard shadows in this way, by using one single yet thicker line to represent many thinner lines, the frequency of variations from shadow to non-shadow can be reduced significantly. The second approach mimics the effect of an area light source, requiring, in general, to use many rays to estimate how much of the light leaving the area light is blocked. Instead, we sample the line density values with

8 8 one ray in a way similar to cone-tracing [4], i.e., by sampling from ever coarser resolution levels with increasing distance from the illuminated point. In particular, we simulate the amount of light that falls onto the point along a cone with an opening angle that subtends one voxel at the finest level. When comparing the results of both approaches to the rendering of hard shadows in Fig. 12a, one can see that the shadow frequency is considerably reduced and the visual perception is improved. The major shadowing effects, on the other hand, are still present in the final renderings, and the spatial relationships between the lines are effectively revealed. When using the first approach, the render time increases about 20% compared to the rendering without shadows; the second approach yields a decrease of about 10%. These only marginal decreases are due to the use of the LoD representation, which requires testing against only one single line per voxel when using the first approach, and interpolating trilinearly in the line density fields at different resolution levels when using the second approach. Since a texture lookup operation takes less time than an explicit raytube intersection test, the second approach performs even faster than the first one at almost similar quality. 5.3 Ambient occlusion Both rendering approaches for low-frequency shadows can also be used to simulate ambient occlusions (AO), i.e., soft shadows that occur in the cavities of a 3D object when indirect lighting is cast out onto the scene. As demonstrated in Fig. 13, the soft shadows from ambient occlusions help in particular to enhance the spatial separation between individual lines or bundles of lines. a) b) Fig. 13: Local lighting without (a) and with (b) ambient occlusions. AO is simulated by casting out rays to sample the surrounding geometry, and computing how much light from an environment map is blocked by this geometry. For simulating shadows we restrict the direction along which we send out rays to the direction of a directional light or towards a point light source, yet ambient occlusion requires to send out rays into the entire upper hemisphere with respect to the normal direction at a surface point. AO can be integrated in a straight forward way into the ray-based rendering pipeline, by spawning at every visible point a number of secondary rays into the hemisphere and calculating whether the environment light is blocked or not. In Fig. 14a, 2500 rays per visible point were used to uniformly sample the hemisphere, and these rays were intersected against the tube segments in every voxel to determine whether the light is a) b) c) d) Fig. 14: (a) Hemisphere ambient occlusion on line geometry. (b) Rays sample the occlusion from the line density values at the first LoD. (c) Spherical occlusion is pre-computed per voxel and sampled trilinearly using 2500 sample rays, respectively (d) 25 sample rays. blocked or not. The higher variance in the ambient occlusion values when less rays are used can clearly be seen. To enable interactive updates of AO values when the scene or light situation changes, the number of rays as well as the number of objects against which the shadow rays are tested need to be reduced. Screen-space approaches [35] compute a rough AO estimation by using a few rays in 2D screen-space (between 8 and 20 in realtime applications), and by testing these rays against rendered surface points in a short radius of influence. To overcome visual shortcomings of screen-space calculation, we compute AO values in 3D space, and present two acceleration strategies to efficiently approximate the amount of occlusion per tube point. Similar to screen-space ambient occlusion, we restrict the sampling of occluding structures to a radius of influence (in our case 15 voxels at the finest voxel resolution). The first approach is to approximate the amount of occlusion along a ray by sampling the line density values at the finest level voxel grid via trilinear interpolation (Fig. 14b), instead of testing against the tube geometries at this level (Fig. 14a). The values along a ray are accumulated until either full blocking is reached (line density 1) or the ray reaches beyond the radius of influence of leaves the domain. The occlusion values are finally integrated over all rays and normalized by dividing through the number of rays. The renderings in Figs. 14a and b show that the AO values vary strongly around the tube axis, which is due the hemisphere sampling of occlusions wrt to the varying normal direction. Due to the many tubes that are rendered,

9 9 Fig. 15: The datasets we have used in our experiments: Tornado, Aneurysm I, Aneurysm II, Turbulence, Weather Forecast. this adds high frequent intensity variations which rather disturb the visual impression than help to enhance the spatial relationships between the tubes. To avoid this effect, we propose a second approach which computes pointwise AO values independent of the surface orientation by considering occlusions in the entire sphere around each visible point (see Fig. 14c and d). The AO values are first approximated per voxel in a pre-process, and at runtime these values are trilinearly interpolated at the locations of the visible tube points. In this way the AO values reflect the local spherical surrounding of a line rather than the surrounding in the normal direction at the tube points. This emphasizes in a far better way the embedding of a line in the surrounding set of lines. 6 RESULTS AND DISCUSSION In this section, we analyze the quality, memory consumption, and performance of our approach. All times were measured on a standard desktop PC, equipped with an Intel Xeon E v3 CPU with GHz, 32 GB RAM, and an NVIDIA GeForce GTX 970 graphics card with 4 GB VRAM. For all renderings, the view port was set to We used the following datasets to analyze the quality, memory requirements, and performance of the proposed voxel-based rendering approach for line sets (see Fig. 15): Tornado: 1000 randomly seeded streamlines in a flow forming a tornado. The lines have a higher curvature as well as a higher density at the center of the tornado. Aneurysm I / II: 4700 / 9200 randomly seeded streamlines in the interior of two different aneurysms, allowing hemodynamic analysis as done by Byrne et al. [36]. The streamlines were advected up to the vascular wall, resulting in empty space up to the cuboid domain boundaries. Turbulence: domain-filling streamlines advected in a forced turbulence field of resolution as described by Aluie et al. [37]. Weather Forecast: domain-filling path lines computed over 96 hours each on the wind field of a forecast by the European Centre for Medium- Range Weather Forecasts (ECMWF). The path lines were seeded on a horizontally regular grid and on vertically stretched levels [38]. 6.1 Quality analysis To analyze the effect of the resolution of the voxel grid and the quantization structure on reconstruction quality, we performed a number of experiments with the datasets listed above. The subjective visual quality of the rendered images is hard to measure, wherefore we attempt to quantify the quality objectively by measuring the following quantities: For different resolutions we measured the mean Hausdorff distance between the original curves and their piecewise linear approximations (Fig. 16a), the mean angle between the tangents at the original curve points and the curve s piecewise linear approximations (Fig. 16b), and the number of line segments falling onto each other due to the quantization of vertex coordinates (Fig. 16c). Fig. 16a indicates that already at a voxel grid resolution of and a quantization resolution of 32, suitable reconstruction accuracy is achieved. At a voxel grid resolution of 64 3, geometric features get lost and cannot be faithfully reconstructed even at high quantization resolution. Fig. 2b shows essentially the same dependencies, yet one can observe a stronger effect of the quantization resolution. The local directional changes of the curve tangents due to displacements of the vertex coordinates is scale independent and depends mainly on the quantization resolution. From Fig. 2c it can be seen that at a voxel grid resolution of and higher, and starting at a quantization resolution of 32, the number of duplicate lines is below 0.1% of all encoded lines and doesn t change significantly beyond these resolutions. The maximum Hausdorff distance, on the other hand, is always bounded by the voxel diagonal, and the directional error can be up to 180 degrees, if a curve makes a loop in a voxel. Supported by our analysis, and further verified by comparing the visual quality of the original curves and the voxel-based curve representations, we found that a voxel grid resolution of and a quantization level of 32 is for all cases the resolution at which a further increase in voxel resolution or bin size only causes little improvement in error quantities This is also evidenced by the close-up views in Fig. 18, where no apparent differences between the original curves and their voxelized counterparts can be perceived. Due to this, we decided to use these resolutions in the performance analysis and the analysis of illumination effects below. 6.2 Memory statistics Our approach requires a 5 byte header for every voxel, to indicate how many lines are encoded per voxel (1 byte, restricting to a maximum of lines per voxel) and to reference the memory address where the lines are stored (4 bytes). In addition, every line is encoded by specifying at which of the 6 voxel faces the two endpoints are located

10 10 geometric error Grid Resolution deviation angle (mean) [deg] Grid Resolution duplicate rate Grid Resolution a) bin resolution b) bin resolution c) bin resolution Fig. 16: Comparing the Aneurysm II (solid line) with the Weather Forecast (dashed line) dataset using different metrics: (a) Distance Error (in units of voxel size at a grid of 64 3 ), (b) tangent deviation, (c) Number of duplicates in proportion to the number of generated segments (2 3 bits), and addressing the sub-face on each voxel face to which the endpoints are quantized (2 10 bits for a quantization resolution of 32 2 ). Furthermore, we use 1 byte per line to map to a transparency or color value and 5 bits to encode a local line ID. For a selected quantization resolution, the minimum number of bytes that is required to encode this information is used. Overall, our approach requires 4, 5, and 6 bytes per line, respectively, when quantization resolutions of (4,8), (16,32) and (64,128) are used. Table 1 compares the memory consumption for different resolution and quantization levels with the memory that is required to store the original lines on the GPU, using 32 bit float values per vertex component and 1 byte per vertex to map to transparency or color. In the second column we show in brackets the memory that is required in average over multiple views to store the per-pixel fragment lists when transparent lines are rendered. It can be seen that for all but the Tornado dataset the voxel-based representation at our selected resolution level (256 3 /32 3 ) has a significantly lower memory footprint. Even when opaque lines are rendered and the extra memory for storing the fragment lists is not required, a rather moderate increase of about a factor of 4 to 5 is observed. One exception is the Weather Forecast dataset, which is comprised of many curves with only few long lines. These lines are split into many smaller lines and stored in the voxel representation, so that the memory requirement is significantly increased compared to the original line representation. It is in particular interesting that due to memory limitations on the GPU the Weather Forecast dataset cannot be rendered via GPU rasterization if transparency is used (see Fig. 17). In the figure, red pixels indicate that more than 512 fragments fall onto these pixels, while pixels not colored indicate that not all fragments can be stored in the per-pixel fragment lists due to limited GPU memory. Our approach, in contrast, requires only 144 MB to store the view-independent voxel-based representation on the GPU. 6.3 Performance analysis We compare the performance of rasterization-based line rendering with and without fragment lists and voxel-based ray-casting for all datasets (see Tab. 2). Images showing the use of transparency to reveal interior structures that are occluded when opaque lines are rendered are shown Fig. 17: Left: GPU rendering using fragment linked lists fails due to memory limitations. a red pixel indicates that more than 512 fragments fall onto that pixel, a pixel remains white when not all fragments could be stored due to memory limitations. Right: The voxel-based representation can be rendered at 23 ms and 144 ms, respectively, when early-ray termination due to accumulated opacity exceeding 0.95 was turned on and off. in the first column of Fig. 19. Even when opaque lines are rendered, so that fragment lists and sorting is not required in GPU rasterization, the larger datasets can be rendered at higher rates using voxel-based ray-casting. The main reason is that a ray can be terminated immediately when the first ray-tube intersection is computed, while GPU rasterization always needs to generate all fragments even if the early depth-test can discard many of them before entering the fragment stage. On the other hand, for the Tornado dataset, where the line density is rather low so that many rays need to be traversed through the entire voxel grid, voxelbased ray-casting performs slower than rasterization-based rendering. This still holds when transparency is used. The fact that in rasterization-based rendering using transparency all fragments need to be sorted explains the over-linear increase of the render times, while the render times remain almost constant when ray-casting is used on the voxel-based representation. The worst case scenario for the ray-caster is a very dense line set with very low line opacity. This prevents rays from terminating early, so that all lines along the rays have to be accessed and tested for intersections. Even though this scenario is quite unusual, we analyzed the rendering performance in this situation for the Weather Forecast and Turbulence dataset. In this case, the Forecast dataset can still be ray-cast in roughly 144 ms, while the dataset cannot be

11 TABLE 1: Memory consumption in MB and preprocessing times in seconds for the used datasets. The original geometry is encoded in three float values per vertex. In the second column, we give in brackets the memory that is required to store the per-pixel fragment lists on the GPU. The remaining columns show the memory that is used by the voxel-based representation with voxel grid resolution V 3 and quantization resolution Q 2 given as V 3 /Q 2, and in brackets the preprocessing time to generate the representations. Per vertex and per quantized line a 1 byte index is stored. 11 Lines Original Geometry / / / / / /8 2 Dataset (vertices per line) (Linked List) (Preprocess) Tornado 1000 (250) 3 (100) 811 (1.4) 103 (0.2) 103 (0.2) 14 (0.1) 14 (0.1) 2 (0.1) Aneurysm I 4700 (410) 25 (600) 731 (1.6) 111 (0.4) 107 (0.4) 25 (0.2) 22 (0.2) 6 (0.3) Aneurysm II 9200 (367) 44 (750) 702 (1.9) 116 (0.6) 109 (0.6) 29 (0.5) 26 (0.5) 8 (0.4) Turbulence (220) 143 (2500) 1087 (3.5) 221 (1.4) 201 (1.4) 72 (1.3) 62 (1.3) 21 (1.0) Weather Forecast (13) 36 (>4000) 573 (5.6) 209 (4.6) 177 (4.6) 98 (5.0) 82 (5.0) 31 (4.7) rendered via rasterization because the fragment lists exceed the available GPU memory. When using the Turbulence dataset with very low line opacity, GPU rasterization and voxel-based ray-casting render at 380 ms and 124 ms, respectively, demonstrating the efficiency or our approach even in this extreme situation. TABLE 2: Performance statistics for different datasets. Rendering performance was evaluated using a constant per-line opacity value of 25 percent. Timings Semi Opaque Timings Opaque Dataset Linked List Raycasting Rasterization Raycasting Tornado 4 ms 15 ms 2 ms 12 ms Aneurysm I 46 ms 25 ms 8 ms 9 ms Aneurysm II 160 ms 27 ms 14 ms 12 ms Turbulence 380 ms 24 ms 65 ms 6 ms Weather Forecast overflow 23 ms 29 ms 4 ms 6.4 Illumination effects The secondary rays used to simulate global illumination effects like shadows and ambient occlusions are solely traversed on the first LoD level of the voxel grid. Therefore, these effects cause only a moderate increase in the render time, yet they can significantly improve the spatial perception of the rendered line structures. This is demonstrated in Fig. 19, where opaque lines are rendered with soft shadows and ambient occlusions (right). For instance, for 100 rays sampling in a sphere with a radius of roughly 5 times the voxel size (with a step size of 1 voxel size), ambient occlusions for all voxels can be computed in roughly 9 ms. Soft shadows can be computed in about 2 ms. The computed illumination values can be stored inside our voxel representation and only have to be updated if the scene changes. Fig. 18 shows a comparison between reference images produced by a rasterizer using fragment linked lists (left) and images produced using our ray-casting approach using a memory efficient representation (right). In all images an attribute stored for each line segment was mapped by a transfer function to a color value. Opacity values were manually predefined. The memory efficient representation introduces some artifacts like jittered line segments and visible gradations at the voxel boundaries as attributes are not interpolated in between. Comparing the reference image and the high resolution represenation, no significant differences are observable. In Fig. 19 we compare local illumination (left) and soft shadows in combination with ambient occlusions (right). Semi opaque renderings of high numbers of curves tend to lose sharpness due to overlaying. Ambient occlusion effects are helping to differentiate the individual curves as less light is reaching covered curves in the back. Shadow effects are enhancing the structure and illustrate the relative position of curves to each other. In combination with ambient occlusion, details in shadowed regions are preserved. 7 CONCLUSION AND FUTURE WORK We have proposed a new approach for visualizing large 3D line sets on the GPU, by performing parallel ray-casting of lines on a novel voxel representation for lines. For large line sets we have shown significant improvements over rasterization-based approaches, in terms of rendering performance and quality; by enabling the efficient realization of additional visualization options like global illumination effects. By means of our approach, even very large and complicated line sets can be analysed interactively. A limitation of the ray-casting approach for lines is the lack of hardware accelerated anti-aliasing. When using rasterization, anti-aliasing doesnt affect the performance a lot, yet anti-aliasing in ray-casting is expensive because several rays have to be evaluated per pixel. Another limitation is with respect to the addition of new lines. Since on the GPU the lines are tightly stored in one linear array, the whole memory needs to be restructured when new lines are to be added. On the other hand, generating the voxelization is sufficiently fast, so that a complete re-voxelization of all and the new lines can be done. In future work we will examine the extension of our approach for the efficient handling of update operations and time-varying line sets. Even though the GPU implementation is almost fast enough to generate the voxel model from scratch if changes occur, local update operations and encodings of the dynamics of lines into the voxel structure will be favorable. REFERENCES [1] N. Thibieroz and H. Gruen, Oit and indirect illumination using dx11 linked lists, in Game Developers Conference, [2] C. Crassin, F. Neyret, S. Lefebvre, and E. Eisemann, Gigavoxels: Ray-guided streaming for efficient and detailed voxel rendering, in Proceedings of the 2009 Symposium on Interactive 3D Graphics and Games, ser. I3D 09. ACM, 2009, pp [3] S. Laine and T. Karras, Efficient sparse voxel octrees, IEEE Transactions on Visualization and Computer Graphics, vol. 17, no. 8, pp , 2011.

12 12 Fig. 18: Comparison between rasterization-based rendering (left) and voxel-based line raycasting using 2563 voxels partitioned into 322 bins per face (right), for the Aneurysm II and the Weather Forecast dataset. Fig. 19: First: Local illumination, opaque lines. Second: Global illumination, opaque lines. Third: Local illumination, semitransparent lines, Fourth: Global illumination, semi-transparent lines. The Aneurysm II and Weather Forecast dataset are shown. Fig. 20: First: Local illumination. Second: Soft shadows. Third: Soft shadows with ambient occlusion. The Aneurysm II dataset is shown.

13 Fig. 21: Renderings of Aneurysm I (top and middle left), Turbulence (middle right), and Aneurysm II (bottom) 13

14 14 [4] C. Crassin, F. Neyret, M. Sainz, S. Green, and E. Eisemann, Interactive indirect illumination using voxel cone tracing: A preview, in Symposium on Interactive 3D Graphics and Games, ser. I3D 11, 2011, pp [5] S. Thiedemann, N. Henrich, T. Grosch, and S. Müller, Voxel-based global illumination, in Symposium on Interactive 3D Graphics and Games, ser. I3D 11, 2011, pp [6] D. Cohen-Or and A. Kaufman, 3d line voxelization and connectivity control, IEEE Comput. Graph. Appl., vol. 17, no. 6, pp , [7] T. McLoughlin, R. S. Laramee, R. Peikert, F. H. Post, and M. Chen, Over two decades of integration-based, geometric flow visualization, Computer Graphics Forum, vol. 29, no. 6, pp , [8] M. Zöckler, D. Stalling, and H.-C. Hege, Interactive visualization of 3d-vector fields using illuminated stream lines, in Proceedings of the 7th Conference on Visualization 96, ser. VIS 96, 1996, pp. 107 ff. [9] O. Mallo, R. Peikert, C. Sigg, and F. Sadlo, Illuminated lines revisited, in VIS 05. IEEE Visualization, 2005., 2005, pp [10] M. H. Everts, H. Bekker, J. B. T. M. Roerdink, and T. Isenberg, Depth-dependent halos: Illustrative rendering of dense line data, IEEE Transactions on Visualization and Computer Graphics, vol. 15, no. 6, pp , [11] S. W. Park, H. Yu, I. Hotz, O. Kreylos, L. Linsen, and B. Hamann, Structure-accentuating dense flow visualization, in Proceedings of the Eighth Joint Eurographics / IEEE VGTC Conference on Visualization, 2006, pp [12] A. Kuhn, N. Lindow, T. Günther, A. Wiebel, H. Theisel, and H.-C. Hege, Trajectory density projection for vector field visualization, in EuroVis - Short Papers 2013, 2013, pp [13] T. Günther, C. Rössl, and H. Theisel, Opacity optimization for 3d line fields, ACM Trans. Graph., vol. 32, no. 4, pp. 120:1 120:8, [14] O. Mishchenko and R. Crawfis, On perception of semitransparent streamlines for three-dimensional flow visualization, Computer Graphics Forum, vol. 33, no. 1, pp , [15] C. Everitt and L. Williams, Interactive order-independent transparency, in White paper available online at [16] J. C. Yang, J. Hensley, H. Grün, and N. Thibieroz, Real-time concurrent linked list construction on the gpu, in Proceedings of the 21st Eurographics Conference on Rendering, ser. EGSR 10, 2010, pp [17] F. Liu, M.-C. Huang, X.-H. Liu, and E.-H. Wu, Efficient depth peeling via bucket sort, in Proceedings of the Conference on High Performance Graphics 2009, ser. HPG 09, 2009, pp [18] E. Enderton, E. Sintorn, P. Shirley, and D. Luebke, Stochastic transparency, IEEE Transactions on Visualization and Computer Graphics, vol. 17, no. 8, pp , [19] G. Schussman and K.-L. Ma, Anisotropic volume rendering for extremely dense, thin line data, in Proceedings of the Conference on Visualization 04, ser. VIS 04, 2004, pp [20] I. Wald, T. Ize, A. Kensler, A. Knoll, and S. G. Parker, Ray tracing animated scenes using coherent grid traversal, ACM Transactions on Graphics, pp , [21] S. Woop, G. Marmitt, and P. Slusallek, B-KD Trees for hardware accelerated ray tracing of dynamic scenes, in GH 06: Proceedings of the 21st ACM SIGGRAPH/EUROGRAPHICS symposium on Graphics hardware. New York, NY, USA: ACM, 2006, pp [22] I. Wald, G. Johnson, J. Amstutz, C. Brownlee, A. Knoll, J. Jeffers, J. Gunther, and P. Navratil, Ospray - a cpu ray tracing framework for scientific visualization, IEEE Transactions on Visualization and Computer Graphics, vol. 23, no. 1, pp , [23] T. Aila and S. Laine, Understanding the efficiency of ray traversal on gpus, in Proc. High-Performance Graphics 2009, 2009, pp [24] S. Laine and T. Karras, Efficient sparse voxel octrees, in Proceedings of the 2010 ACM SIGGRAPH symposium on Interactive 3D Graphics and Games, 2010, pp [25] S. G. Parker, J. Bigler, A. Dietrich, H. Friedrich, J. Hoberock, D. Luebke, D. McAllister, M. McGuire, K. Morley, A. Robison, and M. Stich, Optix: a general purpose ray tracing engine, ACM Trans. Graph., vol. 29, no. 4, pp. 66:1 66:13, [26] I. Wald, A. Knoll, G. P. Johnson, W. Usher, V. Pascucci, and M. E. Papka, Cpu ray tracing large particle data with balanced p-k-d trees. in IEEE SciVis, [27] J. Staib, S. Grottel, and S. Gumhold, Visualization of particlebased data with transparency and ambient occlusion, Computer Graphics Forum, vol. 34, no. 3, pp , [28] A. Kaufman, D. Cohen, and R. Yagel, Volume graphics, Computer, vol. 26, no. 7, pp , Jul [29] G. T. Herman and H. K. Liu, Three-dimensional display of human organs from computed tomograms, Computer Graphics and Image Processing, vol. 9, no. 1, pp. 1 21, [30] F. Reichl, M. G. Chajdas, K. Bürger, and R. Westermann, Hybrid Sample-based Surface Rendering, in VMV Vision, Modeling and Visualization, pp [31] C. Crassin, F. Neyret, M. Sainz, S. Green, and E. Eisemann, Interactive indirect illumination using voxel cone tracing, Computer Graphics Forum (Proceedings of Pacific Graphics 2011), vol. 30, no. 7, [32] D. Jnsson, E. Sundn, A. Ynnerman, and T. Ropinski, A survey of volumetric illumination techniques for interactive volume rendering, Computer Graphics Forum, vol. 33, no. 1, pp , [33] E. Gobbetti and F. Marton, Far voxels: A multiresolution framework for interactive rendering of huge complex 3d models on commodity graphics platforms, ACM Trans. Graph., vol. 24, no. 3, pp , [34] J. Danskin and P. Hanrahan, Fast algorithms for volume ray tracing, in Proceedings of the 1992 Workshop on Volume Visualization, 1992, pp [35] L. Bavoil, M. Sainz, and R. Dimitrov, Image-space horizonbased ambient occlusion, in ACM SIGGRAPH 2008 Talks, ser. SIGGRAPH 08, 2008, pp. 22:1 22:1. [36] G. Byrne, F. Mut, and J. Cebral, Quantifying the large-scale hemodynamics of intracranial aneurysms, Amer. J. of Neuroradiology, vol. 35, pp , [37] H. Aluie, G. Eyink, V. E., S. C. K. Kanov, R. Burns, C. Meneveau, and A. Szalay, Forced MHD turbulence data set, http: //turbulence.pha.jhu.edu/docs/readme-mhd.pdf, 2013 (accessed March 22, 2017). [38] M. Rautenhaus, C. M. Grams, A. Schäfler, and R. Westermann, Three-dimensional visualization of ensemble weather forecasts Part 2: Forecasting warm conveyor belt situations for aircraftbased field campaigns, Geosci. Model Dev., vol. 8, no. 7, pp , Mathias Kanzler is a PhD candidate in the Computer Graphics and Visualization Group at the Technical University of Munich (TUM). He received the M.Sc. in computer science from TUM in His research interests include visualization and real-time rendering. Marc Rautenhaus is a postdoctoral researcher in the Computer Graphics and Visualization Group at the TUM. He received the M.Sc. in atmospheric science from the University of British Columbia, Vancouver, in 2007, and the Ph.D. in computer science from TUM in Prior to joining TUM, Marc worked as a research associate at the German Aerospace Center s Institute for Atmospheric Physics. His research interests focus on the intersection of visualization and meteorology. Rüdiger Westermann studied computer science at the Technical University Darmstadt and received the Ph.D. in computer science from the University of Dortmund, both in Germany. In 2002, he was appointed the chair of Computer Graphics and Visualization at TUM. His research interests include scalable data visualization and simulation algorithms, GPU computing, real-time rendering of large data, and uncertainty visualization.

Real-Time Voxelization for Global Illumination

Real-Time Voxelization for Global Illumination Lecture 26: Real-Time Voxelization for Global Illumination Visual Computing Systems Voxelization to regular grid Input: scene triangles Output: surface information at each voxel in 3D grid - Simple case:

More information

An Efficient Approach for Emphasizing Regions of Interest in Ray-Casting based Volume Rendering

An Efficient Approach for Emphasizing Regions of Interest in Ray-Casting based Volume Rendering An Efficient Approach for Emphasizing Regions of Interest in Ray-Casting based Volume Rendering T. Ropinski, F. Steinicke, K. Hinrichs Institut für Informatik, Westfälische Wilhelms-Universität Münster

More information

Volume Illumination. Visualisation Lecture 11. Taku Komura. Institute for Perception, Action & Behaviour School of Informatics

Volume Illumination. Visualisation Lecture 11. Taku Komura. Institute for Perception, Action & Behaviour School of Informatics Volume Illumination Visualisation Lecture 11 Taku Komura Institute for Perception, Action & Behaviour School of Informatics Taku Komura Volume Illumination & Vector Vis. 1 Previously : Volume Rendering

More information

Previously... contour or image rendering in 2D

Previously... contour or image rendering in 2D Volume Rendering Visualisation Lecture 10 Taku Komura Institute for Perception, Action & Behaviour School of Informatics Volume Rendering 1 Previously... contour or image rendering in 2D 2D Contour line

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

Volume Rendering. Computer Animation and Visualisation Lecture 9. Taku Komura. Institute for Perception, Action & Behaviour School of Informatics

Volume Rendering. Computer Animation and Visualisation Lecture 9. Taku Komura. Institute for Perception, Action & Behaviour School of Informatics Volume Rendering Computer Animation and Visualisation Lecture 9 Taku Komura Institute for Perception, Action & Behaviour School of Informatics Volume Rendering 1 Volume Data Usually, a data uniformly distributed

More information

Volume Illumination & Vector Field Visualisation

Volume Illumination & Vector Field Visualisation Volume Illumination & Vector Field Visualisation Visualisation Lecture 11 Institute for Perception, Action & Behaviour School of Informatics Volume Illumination & Vector Vis. 1 Previously : Volume Rendering

More information

Soft shadows. Steve Marschner Cornell University CS 569 Spring 2008, 21 February

Soft shadows. Steve Marschner Cornell University CS 569 Spring 2008, 21 February Soft shadows Steve Marschner Cornell University CS 569 Spring 2008, 21 February Soft shadows are what we normally see in the real world. If you are near a bare halogen bulb, a stage spotlight, or other

More information

Applications of Explicit Early-Z Culling

Applications of Explicit Early-Z Culling Applications of Explicit Early-Z Culling Jason L. Mitchell ATI Research Pedro V. Sander ATI Research Introduction In past years, in the SIGGRAPH Real-Time Shading course, we have covered the details of

More information

Adaptive Point Cloud Rendering

Adaptive Point Cloud Rendering 1 Adaptive Point Cloud Rendering Project Plan Final Group: May13-11 Christopher Jeffers Eric Jensen Joel Rausch Client: Siemens PLM Software Client Contact: Michael Carter Adviser: Simanta Mitra 4/29/13

More information

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters. 1 2 Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters. Crowd rendering in large environments presents a number of challenges,

More information

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

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST CS 380 - GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1 Markus Hadwiger, KAUST Reading Assignment #2 (until Feb. 17) Read (required): GLSL book, chapter 4 (The OpenGL Programmable

More information

S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T

S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T Copyright 2018 Sung-eui Yoon, KAIST freely available on the internet http://sglab.kaist.ac.kr/~sungeui/render

More information

GPU-Accelerated Deep Shadow Maps for Direct Volume Rendering

GPU-Accelerated Deep Shadow Maps for Direct Volume Rendering Graphics Hardware (2006) M. Olano, P. Slusallek (Editors) GPU-Accelerated Deep Shadow Maps for Direct Volume Rendering Markus Hadwiger Andrea Kratz Christian Sigg Katja Bühler VRVis Research Center ETH

More information

Hardware Accelerated Volume Visualization. Leonid I. Dimitrov & Milos Sramek GMI Austrian Academy of Sciences

Hardware Accelerated Volume Visualization. Leonid I. Dimitrov & Milos Sramek GMI Austrian Academy of Sciences Hardware Accelerated Volume Visualization Leonid I. Dimitrov & Milos Sramek GMI Austrian Academy of Sciences A Real-Time VR System Real-Time: 25-30 frames per second 4D visualization: real time input of

More information

Simpler Soft Shadow Mapping Lee Salzman September 20, 2007

Simpler Soft Shadow Mapping Lee Salzman September 20, 2007 Simpler Soft Shadow Mapping Lee Salzman September 20, 2007 Lightmaps, as do other precomputed lighting methods, provide an efficient and pleasing solution for lighting and shadowing of relatively static

More information

Deferred Rendering Due: Wednesday November 15 at 10pm

Deferred Rendering Due: Wednesday November 15 at 10pm CMSC 23700 Autumn 2017 Introduction to Computer Graphics Project 4 November 2, 2017 Deferred Rendering Due: Wednesday November 15 at 10pm 1 Summary This assignment uses the same application architecture

More information

GPU-AWARE HYBRID TERRAIN RENDERING

GPU-AWARE HYBRID TERRAIN RENDERING GPU-AWARE HYBRID TERRAIN RENDERING Christian Dick1, Jens Krüger2, Rüdiger Westermann1 1 Computer Graphics and Visualization Group, Technische Universität München, Germany 2 Interactive Visualization and

More information

Direct Rendering of Trimmed NURBS Surfaces

Direct Rendering of Trimmed NURBS Surfaces Direct Rendering of Trimmed NURBS Surfaces Hardware Graphics Pipeline 2/ 81 Hardware Graphics Pipeline GPU Video Memory CPU Vertex Processor Raster Unit Fragment Processor Render Target Screen Extended

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

Egemen Tanin, Tahsin M. Kurc, Cevdet Aykanat, Bulent Ozguc. Abstract. Direct Volume Rendering (DVR) is a powerful technique for

Egemen Tanin, Tahsin M. Kurc, Cevdet Aykanat, Bulent Ozguc. Abstract. Direct Volume Rendering (DVR) is a powerful technique for Comparison of Two Image-Space Subdivision Algorithms for Direct Volume Rendering on Distributed-Memory Multicomputers Egemen Tanin, Tahsin M. Kurc, Cevdet Aykanat, Bulent Ozguc Dept. of Computer Eng. and

More information

Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic.

Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic. Shading Models There are two main types of rendering that we cover, polygon rendering ray tracing Polygon rendering is used to apply illumination models to polygons, whereas ray tracing applies to arbitrary

More information

VAO++: Practical Volumetric Ambient Occlusion for Games

VAO++: Practical Volumetric Ambient Occlusion for Games VAO++: Practical Volumetric Ambient Occlusion for Games Jakub Bokšanský, Adam Pospíšil (Project Wilberforce) Jiří Bittner (CTU in Prague) EGSR 19.6.2017 Motivation Focus on performance (highly optimized

More information

Shear-Warp Volume Rendering. Volume Rendering Overview

Shear-Warp Volume Rendering. Volume Rendering Overview Shear-Warp Volume Rendering R. Daniel Bergeron Department of Computer Science University of New Hampshire Durham, NH 03824 From: Lacroute and Levoy, Fast Volume Rendering Using a Shear-Warp- Factorization

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

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

TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students)

TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students) TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students) Saturday, January 13 th, 2018, 08:30-12:30 Examiner Ulf Assarsson, tel. 031-772 1775 Permitted Technical Aids None, except

More information

Volume Illumination, Contouring

Volume Illumination, Contouring Volume Illumination, Contouring Computer Animation and Visualisation Lecture 0 tkomura@inf.ed.ac.uk Institute for Perception, Action & Behaviour School of Informatics Contouring Scaler Data Overview -

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

CHAPTER 1 Graphics Systems and Models 3

CHAPTER 1 Graphics Systems and Models 3 ?????? 1 CHAPTER 1 Graphics Systems and Models 3 1.1 Applications of Computer Graphics 4 1.1.1 Display of Information............. 4 1.1.2 Design.................... 5 1.1.3 Simulation and Animation...........

More information

Ambien Occlusion. Lighting: Ambient Light Sources. Lighting: Ambient Light Sources. Summary

Ambien Occlusion. Lighting: Ambient Light Sources. Lighting: Ambient Light Sources. Summary Summary Ambien Occlusion Kadi Bouatouch IRISA Email: kadi@irisa.fr 1. Lighting 2. Definition 3. Computing the ambient occlusion 4. Ambient occlusion fields 5. Dynamic ambient occlusion 1 2 Lighting: Ambient

More information

Let s start with occluding contours (or interior and exterior silhouettes), and look at image-space algorithms. A very simple technique is to render

Let s start with occluding contours (or interior and exterior silhouettes), and look at image-space algorithms. A very simple technique is to render 1 There are two major classes of algorithms for extracting most kinds of lines from 3D meshes. First, there are image-space algorithms that render something (such as a depth map or cosine-shaded model),

More information

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline sequence of operations to generate an image using object-order processing primitives processed one-at-a-time

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

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline sequence of operations to generate an image using object-order processing primitives processed one-at-a-time

More information

The Rasterization Pipeline

The Rasterization Pipeline Lecture 5: The Rasterization Pipeline (and its implementation on GPUs) Computer Graphics CMU 15-462/15-662, Fall 2015 What you know how to do (at this point in the course) y y z x (w, h) z x Position objects

More information

Next-Generation Graphics on Larrabee. Tim Foley Intel Corp

Next-Generation Graphics on Larrabee. Tim Foley Intel Corp Next-Generation Graphics on Larrabee Tim Foley Intel Corp Motivation The killer app for GPGPU is graphics We ve seen Abstract models for parallel programming How those models map efficiently to Larrabee

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

First Steps in Hardware Two-Level Volume Rendering

First Steps in Hardware Two-Level Volume Rendering First Steps in Hardware Two-Level Volume Rendering Markus Hadwiger, Helwig Hauser Abstract We describe first steps toward implementing two-level volume rendering (abbreviated as 2lVR) on consumer PC graphics

More information

Hello, Thanks for the introduction

Hello, Thanks for the introduction Hello, Thanks for the introduction 1 In this paper we suggest an efficient data-structure for precomputed shadows from point light or directional light-sources. Because, in fact, after more than four decades

More information

Ray Casting of Trimmed NURBS Surfaces on the GPU

Ray Casting of Trimmed NURBS Surfaces on the GPU Ray Casting of Trimmed NURBS Surfaces on the GPU Hans-Friedrich Pabst Jan P. Springer André Schollmeyer Robert Lenhardt Christian Lessig Bernd Fröhlich Bauhaus University Weimar Faculty of Media Virtual

More information

Interactive Methods in Scientific Visualization

Interactive Methods in Scientific Visualization Interactive Methods in Scientific Visualization GPU Volume Raycasting Christof Rezk-Salama University of Siegen, Germany Volume Rendering in a Nutshell Image Plane Eye Data Set Back-to-front iteration

More information

COMP30019 Graphics and Interaction Scan Converting Polygons and Lines

COMP30019 Graphics and Interaction Scan Converting Polygons and Lines COMP30019 Graphics and Interaction Scan Converting Polygons and Lines Department of Computer Science and Software Engineering The Lecture outline Introduction Scan conversion Scan-line algorithm Edge coherence

More information

DiFi: Distance Fields - Fast Computation Using Graphics Hardware

DiFi: Distance Fields - Fast Computation Using Graphics Hardware DiFi: Distance Fields - Fast Computation Using Graphics Hardware Avneesh Sud Dinesh Manocha UNC-Chapel Hill http://gamma.cs.unc.edu/difi Distance Fields Distance Function For a site a scalar function f:r

More information

PowerVR Hardware. Architecture Overview for Developers

PowerVR Hardware. Architecture Overview for Developers Public Imagination Technologies PowerVR Hardware Public. This publication contains proprietary information which is subject to change without notice and is supplied 'as is' without warranty of any kind.

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

8/5/2012. Introduction. Transparency. Anti-Aliasing. Applications. Conclusions. Introduction

8/5/2012. Introduction. Transparency. Anti-Aliasing. Applications. Conclusions. Introduction Introduction Transparency effects and applications Anti-Aliasing impact in the final image Why combine Transparency with Anti-Aliasing? Marilena Maule João Comba Rafael Torchelsen Rui Bastos UFRGS UFRGS

More information

Visibility and Occlusion Culling

Visibility and Occlusion Culling Visibility and Occlusion Culling CS535 Fall 2014 Daniel G. Aliaga Department of Computer Science Purdue University [some slides based on those of Benjamin Mora] Why? To avoid processing geometry that does

More information

Lecture 25 of 41. Spatial Sorting: Binary Space Partitioning Quadtrees & Octrees

Lecture 25 of 41. Spatial Sorting: Binary Space Partitioning Quadtrees & Octrees Spatial Sorting: Binary Space Partitioning Quadtrees & Octrees William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://bit.ly/hgvxlh / http://bit.ly/evizre Public

More information

Synthesis of Textures with Intricate Geometries using BTF and Large Number of Textured Micropolygons. Abstract. 2. Related studies. 1.

Synthesis of Textures with Intricate Geometries using BTF and Large Number of Textured Micropolygons. Abstract. 2. Related studies. 1. Synthesis of Textures with Intricate Geometries using BTF and Large Number of Textured Micropolygons sub047 Abstract BTF has been studied extensively and much progress has been done for measurements, compression

More information

Volume Rendering with libmini Stefan Roettger, April 2007

Volume Rendering with libmini Stefan Roettger, April 2007 Volume Rendering with libmini Stefan Roettger, April 2007 www.stereofx.org 1. Introduction For the visualization of volumetric data sets, a variety of algorithms exist which are typically tailored to the

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

Enhancing Traditional Rasterization Graphics with Ray Tracing. October 2015

Enhancing Traditional Rasterization Graphics with Ray Tracing. October 2015 Enhancing Traditional Rasterization Graphics with Ray Tracing October 2015 James Rumble Developer Technology Engineer, PowerVR Graphics Overview Ray Tracing Fundamentals PowerVR Ray Tracing Pipeline Using

More information

CSE528 Computer Graphics: Theory, Algorithms, and Applications

CSE528 Computer Graphics: Theory, Algorithms, and Applications CSE528 Computer Graphics: Theory, Algorithms, and Applications Hong Qin State University of New York at Stony Brook (Stony Brook University) Stony Brook, New York 11794--4400 Tel: (631)632-8450; Fax: (631)632-8334

More information

Irradiance Gradients. Media & Occlusions

Irradiance Gradients. Media & Occlusions Irradiance Gradients in the Presence of Media & Occlusions Wojciech Jarosz in collaboration with Matthias Zwicker and Henrik Wann Jensen University of California, San Diego June 23, 2008 Wojciech Jarosz

More information

Applications of Explicit Early-Z Z Culling. Jason Mitchell ATI Research

Applications of Explicit Early-Z Z Culling. Jason Mitchell ATI Research Applications of Explicit Early-Z Z Culling Jason Mitchell ATI Research Outline Architecture Hardware depth culling Applications Volume Ray Casting Skin Shading Fluid Flow Deferred Shading Early-Z In past

More information

CS452/552; EE465/505. Clipping & Scan Conversion

CS452/552; EE465/505. Clipping & Scan Conversion CS452/552; EE465/505 Clipping & Scan Conversion 3-31 15 Outline! From Geometry to Pixels: Overview Clipping (continued) Scan conversion Read: Angel, Chapter 8, 8.1-8.9 Project#1 due: this week Lab4 due:

More information

L10 Layered Depth Normal Images. Introduction Related Work Structured Point Representation Boolean Operations Conclusion

L10 Layered Depth Normal Images. Introduction Related Work Structured Point Representation Boolean Operations Conclusion L10 Layered Depth Normal Images Introduction Related Work Structured Point Representation Boolean Operations Conclusion 1 Introduction Purpose: using the computational power on GPU to speed up solid modeling

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

Volume Illumination and Segmentation

Volume Illumination and Segmentation Volume Illumination and Segmentation Computer Animation and Visualisation Lecture 13 Institute for Perception, Action & Behaviour School of Informatics Overview Volume illumination Segmentation Volume

More information

Programmable Shaders for Deformation Rendering

Programmable Shaders for Deformation Rendering Programmable Shaders for Deformation Rendering Carlos D. Correa, Deborah Silver Rutgers, The State University of New Jersey Motivation We present a different way of obtaining mesh deformation. Not a modeling,

More information

CEng 477 Introduction to Computer Graphics Fall 2007

CEng 477 Introduction to Computer Graphics Fall 2007 Visible Surface Detection CEng 477 Introduction to Computer Graphics Fall 2007 Visible Surface Detection Visible surface detection or hidden surface removal. Realistic scenes: closer objects occludes the

More information

Fast Interactive Region of Interest Selection for Volume Visualization

Fast Interactive Region of Interest Selection for Volume Visualization Fast Interactive Region of Interest Selection for Volume Visualization Dominik Sibbing and Leif Kobbelt Lehrstuhl für Informatik 8, RWTH Aachen, 20 Aachen Email: {sibbing,kobbelt}@informatik.rwth-aachen.de

More information

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11 Pipeline Operations CS 4620 Lecture 11 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives to pixels RASTERIZATION

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

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

11/1/13. Visualization. Scientific Visualization. Types of Data. Height Field. Contour Curves. Meshes

11/1/13. Visualization. Scientific Visualization. Types of Data. Height Field. Contour Curves. Meshes CSCI 420 Computer Graphics Lecture 26 Visualization Height Fields and Contours Scalar Fields Volume Rendering Vector Fields [Angel Ch. 2.11] Jernej Barbic University of Southern California Scientific Visualization

More information

Visualization. CSCI 420 Computer Graphics Lecture 26

Visualization. CSCI 420 Computer Graphics Lecture 26 CSCI 420 Computer Graphics Lecture 26 Visualization Height Fields and Contours Scalar Fields Volume Rendering Vector Fields [Angel Ch. 11] Jernej Barbic University of Southern California 1 Scientific Visualization

More information

REYES REYES REYES. Goals of REYES. REYES Design Principles

REYES REYES REYES. Goals of REYES. REYES Design Principles You might be surprised to know that most frames of all Pixar s films and shorts do not use a global illumination model for rendering! Instead, they use Renders Everything You Ever Saw Developed by Pixar

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

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into 2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into the viewport of the current application window. A pixel

More information

Rendering Grass Terrains in Real-Time with Dynamic Lighting. Kévin Boulanger, Sumanta Pattanaik, Kadi Bouatouch August 1st 2006

Rendering Grass Terrains in Real-Time with Dynamic Lighting. Kévin Boulanger, Sumanta Pattanaik, Kadi Bouatouch August 1st 2006 Rendering Grass Terrains in Real-Time with Dynamic Lighting Kévin Boulanger, Sumanta Pattanaik, Kadi Bouatouch August 1st 2006 Goal Rendering millions of grass blades, at any distance, in real-time, with:

More information

CS354R: Computer Game Technology

CS354R: Computer Game Technology CS354R: Computer Game Technology Real-Time Global Illumination Fall 2018 Global Illumination Mirror s Edge (2008) 2 What is Global Illumination? Scene recreates feel of physically-based lighting models

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

SCREEN-SPACE FAR-FIELD AMBIENT OCCLUSION. Ville Timonen

SCREEN-SPACE FAR-FIELD AMBIENT OCCLUSION. Ville Timonen SCREEN-SPACE FAR-FIELD AMBIENT OCCLUSION Ville Timonen CONTENTS 1. Ambient Occlusion 2. Screen-Space Ambient Occlusion 3. Previous methods 4. Our method 5. Results 2 1 AMBIENT OCCLUSION Components of Light

More information

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker CMSC427 Advanced shading getting global illumination by local methods Credit: slides Prof. Zwicker Topics Shadows Environment maps Reflection mapping Irradiance environment maps Ambient occlusion Reflection

More information

Direct Volume Rendering

Direct Volume Rendering Direct Volume Rendering Balázs Csébfalvi Department of Control Engineering and Information Technology Budapest University of Technology and Economics Classification of Visualization Algorithms Indirect

More information

DEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/

DEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/ DEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/2013-11-04 DEFERRED RENDERING? CONTENTS 1. The traditional approach: Forward rendering 2. Deferred rendering (DR) overview 3. Example uses of DR:

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

COMP371 COMPUTER GRAPHICS

COMP371 COMPUTER GRAPHICS COMP371 COMPUTER GRAPHICS LECTURE 14 RASTERIZATION 1 Lecture Overview Review of last class Line Scan conversion Polygon Scan conversion Antialiasing 2 Rasterization The raster display is a matrix of picture

More information

INF3320 Computer Graphics and Discrete Geometry

INF3320 Computer Graphics and Discrete Geometry INF3320 Computer Graphics and Discrete Geometry More smooth Curves and Surfaces Christopher Dyken, Michael Floater and Martin Reimers 10.11.2010 Page 1 More smooth Curves and Surfaces Akenine-Möller, Haines

More information

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON Deferred Rendering in Killzone 2 Michal Valient Senior Programmer, Guerrilla Talk Outline Forward & Deferred Rendering Overview G-Buffer Layout Shader Creation Deferred Rendering in Detail Rendering Passes

More information

COMP 175: Computer Graphics April 11, 2018

COMP 175: Computer Graphics April 11, 2018 Lecture n+1: Recursive Ray Tracer2: Advanced Techniques and Data Structures COMP 175: Computer Graphics April 11, 2018 1/49 Review } Ray Intersect (Assignment 4): questions / comments? } Review of Recursive

More information

Lecture 17: Recursive Ray Tracing. Where is the way where light dwelleth? Job 38:19

Lecture 17: Recursive Ray Tracing. Where is the way where light dwelleth? Job 38:19 Lecture 17: Recursive Ray Tracing Where is the way where light dwelleth? Job 38:19 1. Raster Graphics Typical graphics terminals today are raster displays. A raster display renders a picture scan line

More information

Visualization Computer Graphics I Lecture 20

Visualization Computer Graphics I Lecture 20 15-462 Computer Graphics I Lecture 20 Visualization Height Fields and Contours Scalar Fields Volume Rendering Vector Fields [Angel Ch. 12] November 20, 2003 Doug James Carnegie Mellon University http://www.cs.cmu.edu/~djames/15-462/fall03

More information

GPU-based Volume Rendering. Michal Červeňanský

GPU-based Volume Rendering. Michal Červeňanský GPU-based Volume Rendering Michal Červeňanský Outline Volume Data Volume Rendering GPU rendering Classification Speed-up techniques Other techniques 2 Volume Data Describe interior structures Liquids,

More information

Volume Graphics Introduction

Volume Graphics Introduction High-Quality Volume Graphics on Consumer PC Hardware Volume Graphics Introduction Joe Kniss Gordon Kindlmann Markus Hadwiger Christof Rezk-Salama Rüdiger Westermann Motivation (1) Motivation (2) Scientific

More information

L1 - Introduction. Contents. Introduction of CAD/CAM system Components of CAD/CAM systems Basic concepts of graphics programming

L1 - Introduction. Contents. Introduction of CAD/CAM system Components of CAD/CAM systems Basic concepts of graphics programming L1 - Introduction Contents Introduction of CAD/CAM system Components of CAD/CAM systems Basic concepts of graphics programming 1 Definitions Computer-Aided Design (CAD) The technology concerned with the

More information

Advanced Distant Light for DAZ Studio

Advanced Distant Light for DAZ Studio Contents Advanced Distant Light for DAZ Studio Introduction Important Concepts Quick Start Quick Tips Parameter Settings Light Group Shadow Group Lighting Control Group Known Issues Introduction The Advanced

More information

Rendering Smoke & Clouds

Rendering Smoke & Clouds Rendering Smoke & Clouds Game Design Seminar 2007 Jürgen Treml Talk Overview 1. Introduction to Clouds 2. Virtual Clouds based on physical Models 1. Generating Clouds 2. Rendering Clouds using Volume Rendering

More information

After the release of Maxwell in September last year, a number of press articles appeared that describe VXGI simply as a technology to improve

After the release of Maxwell in September last year, a number of press articles appeared that describe VXGI simply as a technology to improve After the release of Maxwell in September last year, a number of press articles appeared that describe VXGI simply as a technology to improve lighting in games. While that is certainly true, it doesn t

More information

Spatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology

Spatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology Spatial Data Structures and Speed-Up Techniques Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology Spatial data structures What is it? Data structure that organizes

More information

Advanced Computer Graphics CS 563: Making Imperfect Shadow Maps View Adaptive. Frederik Clinck lie

Advanced Computer Graphics CS 563: Making Imperfect Shadow Maps View Adaptive. Frederik Clinck lie Advanced Computer Graphics CS 563: Making Imperfect Shadow Maps View Adaptive Frederik Clinckemaillie Computer Science Dept. Worcester Polytechnic Institute (WPI) Background: Virtual Point Lights Simulates

More information

CS 465 Program 5: Ray II

CS 465 Program 5: Ray II CS 465 Program 5: Ray II out: Friday 2 November 2007 due: Saturday 1 December 2007 Sunday 2 December 2007 midnight 1 Introduction In the first ray tracing assignment you built a simple ray tracer that

More information

Lecture 11: Ray tracing (cont.)

Lecture 11: Ray tracing (cont.) Interactive Computer Graphics Ray tracing - Summary Lecture 11: Ray tracing (cont.) Graphics Lecture 10: Slide 1 Some slides adopted from H. Pfister, Harvard Graphics Lecture 10: Slide 2 Ray tracing -

More information

Shadows. COMP 575/770 Spring 2013

Shadows. COMP 575/770 Spring 2013 Shadows COMP 575/770 Spring 2013 Shadows in Ray Tracing Shadows are important for realism Basic idea: figure out whether a point on an object is illuminated by a light source Easy for ray tracers Just

More information

Graphics Hardware and Display Devices

Graphics Hardware and Display Devices Graphics Hardware and Display Devices CSE328 Lectures Graphics/Visualization Hardware Many graphics/visualization algorithms can be implemented efficiently and inexpensively in hardware Facilitates interactive

More information

A Bandwidth Effective Rendering Scheme for 3D Texture-based Volume Visualization on GPU

A Bandwidth Effective Rendering Scheme for 3D Texture-based Volume Visualization on GPU for 3D Texture-based Volume Visualization on GPU Won-Jong Lee, Tack-Don Han Media System Laboratory (http://msl.yonsei.ac.k) Dept. of Computer Science, Yonsei University, Seoul, Korea Contents Background

More information

Computer Graphics. Bing-Yu Chen National Taiwan University

Computer Graphics. Bing-Yu Chen National Taiwan University Computer Graphics Bing-Yu Chen National Taiwan University Visible-Surface Determination Back-Face Culling The Depth-Sort Algorithm Binary Space-Partitioning Trees The z-buffer Algorithm Scan-Line Algorithm

More information