Ray-Patch Intersection for Improving Rendering Quality of Per-pixel Displacement Mapping Ravish Mehra 1 Subodh Kumar 1 1 IIT Delhi

Size: px
Start display at page:

Download "Ray-Patch Intersection for Improving Rendering Quality of Per-pixel Displacement Mapping Ravish Mehra 1 Subodh Kumar 1 1 IIT Delhi"

Transcription

1 Ray-Patch Intersection for Improving Rendering Quality of Per-pixel Displacement Mapping Ravish Mehra 1 Subodh Kumar 1 1 IIT Delhi Abstract Recent GPU advances have popularized pixel-shader based techniques for per-pixel displacement mapping. An important step in the process is to compute intersection of ray with a bilinear patch approximating the displacement map. Accurate ray-patch intersection can significantly enhance the quality of rendered images. However, the increase in quality comes at a significant computation cost resulting in a substantial drop in performance. This paper explores this trade-off between computation and quality. We propose several techniques for ray-patch intersection and compare it to exact ray-quadric/ray-bilinear intersection proposed previously. We show that our quadric based local-gradient-plane approximation achieves a comparable visual quality with a significant performance improvement. 1. Introduction Ray-patch intersection has traditionally been used in various ray-tracing approaches for rendering complex geometry. This geometry can be made up of either simple primitives like points and triangles or high order primitives like second order patches (bilinear, quadric, SLIM, Bezier). These patches are not only C 0 continuous but may also have smooth derivatives as well. This results in visibly better shading than is possible with simple primitives. These representations have numerous applications in scientific visualizations, CAD systems for modeling geometry, physical simulations of particles and biological applications for visualizing DNA s & molecules. Recently, ray-patch intersection has found a new application per-pixel displacement mapping (also called inverse displacement mapping). Based on programmability of modern GPU s, per-pixel displacement mapping is a ray-casting approach that tries to achieve the same visual effects as traditional displacement mapping [2] but without ever generating or drawing the detailed geometry. Incorporating raypatch intersection in the last steps of per-pixel displacement mapping algorithm (i.e. near the surface boundary) significantly improves the visual quality of the rendered results. However, since it requires expensive computation, it impacts the performance as well becoming the main bottleneck. This paper is a detailed study of ray-surface patch intersection. We propose a sequence of approximation techniques for this and test the validity of these approximations with chosen patch sizes. We provide a comparison between the exact and approximate techniques on the basis of quality and performance achieved by them. Finally, we propose an approximate ray-quadric intersection technique in which the quadric surface is approximated with a tangent plane whose normal is in direction of surface gradient. We show that the quality achieved by our method is comparable to exact ray-quadric intersection but is much faster. We also give a simple conversion formula for converting height field based bilinear patch into quadric. The main contributions of this paper are as follows: 1. A novel quadric based local-gradient-plane approximation & intersection technique that achieves high rendering quality and is much faster than numerically solving ray-quadric intersection. 2. A quality and speed based comparison of different exact and approximate intersection techniques. Figure 1. ICVGIP box: res , 45 fps

2 2. Related work In the last few years, there has been increasing interest in graphics community for using non-triangular primitives for displaying complex models. Several high order surface representations such as bilinear, quadric, SLIM, isosurfaces have been used providing superior quality shading as compared to flat triangles and points. Several point splatting approaches [1, 6, 9] have been proposed for rendering these primitives. Sigg et al [10] render each quadric primitives separately by representing them as single vertex and computing their bounding volume in vertex shader. For fragments generated via this bounding box, ray-quadric intersection is computed in fragment shader. Finally, depth buffer is used for finding closest quadric s fragment and blending the result. Per-pixel displacement mapping on the other hand, renders a single bounding volume for the entire geometry, which could be highly complex and detailed. Actual geometry is stored offline in the pre-processing stage either as height-map, cone-map [4] or relief-map [7, 8] in 2D texture or VDM [12], GDM [13] or distance-map [3] in 3D texture. This dataset is passed onto the fragment shader that computes the actual intersection of viewing ray with the detailed geometry. This intersection point is used for final shading. These techniques score over traditional displacement mapping [2] by not tessellating the surface and hence not rendering a large number of micro polygons generated, thus achieving real time performance. Since implicit representation of detailed geometry in all these techniques is still triangular, shading achieved is of the similar quality as rasterization. Recently, several per-pixel displacement mapping techniques changed the implicit surface representation to higher order primitives(surface patches) and performed ray-patch intersections as the last step of their algorithm for significantly improving their rendering results. Oh et al [5] represented the discrete height field as bilinearly interpolated height-map and sampled it linearly along the viewing ray to find the ray-bilinear intersection, thus removing blockiness caused by discrete height-map. But as pointed out in [11], this linear approximation of bilinear height-map is not always correct and fails at places where the height-map is not approximately linear. Tevs [11] create a hierarchical maximum mipmapped height-map with bilinear patch residing at the lowest hierarchy level. Ray-bilinear patch intersection is performed at the lowest level either analytically using the method proposed in [9] or approximately using linear & binary search steps to converge to the final intersection point. They drew a comparison between these two approaches and favored the second, approximate, technique due to the significant performance cost of the first. 3. Overview Per-pixel displacement mapping techniques for height field rendering store the detailed complex geometry as a height-map. This height-map is a uniformly sampled 2D grid that stores at each sample point the height of the surface at that point above a reference surface. Different techniques process this height-map for generating specialized datasets such as cone-map [4], relief-map [7, 8] or maximum mipmapped height-map [11]. These datasets are used by their respective algorithms in the rendering stage for finding point of intersection of the ray with the detailed geometry. For piecewise patch approximation of height mapped surface we do the following - Within each 2D grid cell we perform an approximation for the height-mapped surface passing above that cell. This results in a piece-wise approximation for the entire geometry. This cell approximation could be in the form of a triangular tessellation, bilinear or quadric, or simply planar. For the triangular tessellation, we first find the height of the surface patch at the center of the cell. The triangles are generated by connecting the surface points at the corners of the cell with that at the center yielding four triangles. Approximation by a planar patch is a plane fitting problem and can be solved by standard algorithms such as Levenberg-Marquardt algorithm (LMA). Conversion to a bilinear patch can be done in a straightforward manner as given in [9]. This bilinear expression can be converted to a quadric function directly(section 4.1). We compute the patch parameters offline and store them in a 2D texture that is passed onto the fragment shader. Triangular, bilinear and quadric patch parameters can also be computed online in the fragment shader by passing the heightmap. For ray-patch intersection, we will first discuss quadric based exact numerical roots technique and then propose three approximate techniques triangular patch, planar patch and local-gradient-plane approximation. Figure 2. Overview of algorithm A generic overview of the rendering pass employed by per-pixel displacement mapping techniques incorporating ray-patch intersection is as follows:

3 Algorithm 1 Per-pixel displacement mapping with raypatch intersection 1. Instead of generating and drawing the actual detailed geometry, we draw its bounding box. 2. For each fragment f generated by the bounding box, we trace a ray starting at its texture location r in the direction d (from eye to r) until it reaches close to detailed geometry. 3. We access the parameters of the patch corresponding to the cell reached in step 2 and compute ray-patch intersection exactly or approximately. 4. If the intersection lies within the cell, we have successfully found the intersection point and exit. Otherwise the ray hits the boundary of the cell and we must go back and continue step 2. The ray-geometry intersection reduces to first locating the intersection in a cell and then computing the exact intersection of the ray with the patch corresponding to that cell. Ray-tracing step and the exact definition of close to detailed geometry varies based on the actual algorithm being used. For maximum mipmapped heightmap [11] and pyramidal displacement mapping [5], we switch to ray-patch intersection when we reach the lowest level of the mipmap hierarchy. Sphere tracing [3] uses distance to the nearest point on the geometry as the safety distance for tracing the ray. When this safety distance becomes zero(or less than some ɛ), we perform ray-patch intersection. Ray-patch intersection, due to its high computational cost, drastically impacts the performance of per-pixel displacement mapping and becomes the main bottleneck. Table 2 compares the performance of a per-pixel displacement mapping algorithm sphere tracing, with and without ray-patch intersection. Figure 3 shows the visual quality achieved by both the methods. 4. Quadric surface & ray-quadric intersection Each height-map cell defined by its four corners can be exactly represented as a bilinear patch that maintains C 0 continuity. This bilinear patch is a second degree function and can be directly converted into a quadric. We use the full second degree quadric defined by following equation- Ax 2 + By 2 + Cz 2 + Dxy + Eyz + F zx + Gx + Hy + Iz + J = 0 (1) 4.1 Bilinear patch to quadric conversion This section presents the conversion of bilinear surface patch into corresponding quadric. The results are stated here while the derivation is given in Appendix. Bilinear patch formed by four points ( V A, V B, V C, V D ) described by weighing parameters (u, v) is : V (u, v) = (1 u)(1 v) V A + (1 u)vv B + (1 v)uv C + uvv (2) D Equation 34 gives us the quadric coefficients: A = B = C = E = F = 0 (3) ( ) ( ) a3 c3 b 2 d 2 a 3 D = G = (4) ( ) b3 c 1 a 3 d 1 H = I = 1 (5) ( ) ( ) d1 d 2 a 3 + d 3 d2 b 3 c 1 + d 1 c 3 b 2 J = (6) We store coefficients D, G, H, J as RGBα components in a 2D texture(shown in Figure 4). Figure 4. Quadric parameters (a) sphere tracing (b) sphere tracing + ray-patch Figure 3. Quality comparison We now discuss in detail several approaches of doing surface patch approximation and ray-patch intersection. 4.2 Ray-quadric Intersection For computing the intersection of ray r+td with quadric we will first discuss numerically solving ray-quadric intersection.

4 (a) 64 2 (b) (c) Figure 5. Statue surface: Rendering result for ray-quadric at different resolutions Numerical roots We solve the equation of the ray with quadric as follows: Ray equation : r + td : (x 0, y 0, z 0 ) + t(d x, d y, d z ) Solving with quadric, A(x 0 + td x ) 2 + B(y 0 + td y ) 2 + C(z 0 + td z ) 2 + D(x 0 + td x )(y 0 + td y ) + E(y 0 + td y )(z 0 + td z ) + F (z 0 + td z )(x 0 + td x ) + G(x 0 + td x ) + H(y 0 + td y ) + I(z 0 + td z ) + J = 0 Substituting, (7) Figure 7. Ray-quadric intersection P =Ad 2 x + Bd 2 y + Cd 2 z + Dd x d y + Ed y d z + F d z d x Q =2x 0 d x A + 2y 0 d y B + 2z 0 d z C + x 0 d y D + y 0 d x D + y 0 d z E + z 0 d y E + z 0 d x F + x 0 d z F + Gd x + Hd y + Id z R =Ax By Cz Dx 0 y 0 + Ey 0 z 0 + F z 0 x 0 + Gx 0 + Hy 0 + Iz 0 + J Finally, (8) P t 2 + Qt + R = 0 (9) Algorithm 2 Ray-quadric intersection if P = 0 then t = R Q else if Q 2 4P R < 0 then t = HIT CELL BOUNDARY(x 0, y 0, z 0 ) else t = Q± Q 2 4P R 2P Quadric patch defined in this manner truly represents the surface formed by the four corners of the height-map cell. Figure 5 shows the quality achieved at various resolutions of coefficient texture(figure 4). Note the superior quality even at low resolutions. Due to a large number of steps involved in the ray-quadric intersection step, this method is much slower. 5 Approximate intersection techniques In this section, we describe in detail the three approximate ray-patch intersection techniques Ray-triangular patch intersection In this approach, we approximate the surface patch in a height-map cell with four triangular sub-patches formed by the four corners and the midpoint of that cell. This computation can be done online eliminating the need for preprocessing. For finding ray-patch intersection, we compute ray-triangle intersection for the four triangular sub-patches and test the validity of the intersection point. For a valid intersection, the point should lie within the boundaries of the cell and the intersected triangle. Also the normal of this triangle(ñ) should be facing the ray(r + td) i.e. d.ñ < 0. We stop the algorithm if the intersection point is valid. Otherwise, we hit the wall and continue tracing the ray. Figure 8 illustrates the steps of the algorithm. Figure 6 shows the rendering result achieved by this method for various resolutions of height-map. Rendering

5 (a) 64 2 (b) (c) Figure 6. Rocky surface: Rendering result for triangular patch at different resolutions quality increases with resolution as approximation of surface with triangular patch becomes more accurate at higher resolution. t = (Ax 0 + By 0 + Cz 0 + D) (Ad x + Bd y + Cd z ) (11) Figure 8. Triangular patch intersection Here (A, B, C) is the direction of normal(n) to the plane. Small shader code resulting in increased performance is the main advantage of this technique. But this planar approximation is valid only at high resolutions. At lower resolutions, C 0 continuity is not maintained causing missed intersections and obvious cracks at cell boundaries. Figure 11 shows the quality achieved by this method for different resolutions of coefficient texture(figure 9). Planar approximation becomes more & more accurate as we increase the resolution Planar approximation and ray-plane intersection We approximate the surface of the height-map cell with the plane Ax+By+Cz+D = 0 by performing plane fitting and store the coefficients A, B, C, D in RGBα channels of 2D texture. This texture is passed to the fragment shader. Figure 10. Ray-plane intersection 5.3 Local-gradient-plane approximation Figure 9. Planar approximation parameters For finding ray-plane intersection, we numerically solve for intersection of the plane equation with the ray r + td as follows: Putting r = (x 0, y 0, z 0 ), d = (d x, d y, d z ) in the plane equation A(x 0 + td x ) + B(y 0 + td y ) + C(z 0 + td z ) + D = 0 (10) We now present an approximate ray-quadric intersection approach that achieves superior rendering quality comparable to exact ray-quadric intersection discussed before but at the same performance cost as ray-plane intersection. For finding the ray-quadric intersection of the ray r+td starting at point r(x 0, y 0, z 0 ) going in the direction d(d x, d y, d z ), we first find the corresponding point r (x 0, y 0, z ) located below r lying on the quadric(see Figure 12). We find the

6 (a) 642 (b) 1282 (c) 2562 Figure 11. ICVGIP surface: Rendering result for planar approximation at different resolutions gradient vector of the quadric surface Ax2 +By 2 +Cz 2 + Dxy + Eyz + F zx + Gx + Hy + Iz + J = 0 at r0. = ( x, y, z ) (12) 0 x = (2x0 A + y0 D + z F + G) 0 (13) y = (2y0 B + x0 D + z E + H) (14) z = (2z 0 C + y0 E + x0 F + I) (15) Figure 13 shows the rendered result of local-gradientplane approximation at various resolutions of quadric coefficient texture(figure 4). It can be seen that this method achieves high quality similar to numerically solving rayquadric. (a) 642 Figure 12. Local-gradient-plane intersection We then construct a plane tangential to the surface passing through r such that the normal vector N of the plane is ˆ Equation of plane can in the direction of the i.e N =. be written as N.(x, y, z) + M = 0 for constant M x x + y y + z z + M = 0 (b) 1282 (16) Figure 13. Glass surface: Gradient-plane Since the plane passes through r0, M = ( x x0 + y y0 + z z 0 ) Using equation 11, the solution becomes x (x0 ) + y (y0 ) + z (z0 ) + M t= x dx + y dy + z dz z (z0 z 0 ) = (Using eq. 17) ( x dx + y dy + z dz ) (17) (18) (19) 6. Comparison and Results We compare our proposed approximation techniques triangular, planar & gradient plane, with exact bilinear and quadric patch techniques in terms of performance and speed. Table 1 shows a comparison between their rendering performance for different test cases at varying resolutions.

7 Resolution 642 Triangular Bilinear Planar Quadric Gradient Statues surface Rocky surface Glass surface ICVGIP surface Table 1. Performance comparison of various techniques (in fps). Screen resolution 1024x768 In this test, we incorporate only steps 1,3,4 of the algorithm(section 3) and assume that we are always close to the surface. This gives us a direct comparison between these techniques as we only perform ray-patch intersection for tracing the ray. Among these, triangular, bilinear and quadric are the slowest as they require complicated root solving that requires longer shader code. Planar intersection is the fastest but the quality of rendering suffers at low resolution(figure 11a,b). On the other hand, gradient plane achieves faster frames per second with better quality even at low resolution. In Table 2, we show the rendering performance of a per-pixel displacement mapping algorithm - sphere tracing, and augment it with different ray-patch intersection techniques. We define close to surface when the safety distance of sphere tracing becomes zero(or less than ) and perform all the four steps of the algorithm. We can also see the impact of ray-patch intersection on performance of per-pixel displacement mapping. Simple sphere tracing( =0.01) with no ray-patch intersection is obviously the fastest but yields the least quality. With = 0, the quality improves but becomes extremely slow. Sphere tracing( =0.01) with raytriangular, ray-quadric and ray-bilinear is slow but yield the highest quality. Ray-planar is fast but gives good rendering quality only at higher resolutions. Ray-gradient-plane, on the other hand, is fast and gives rendering quality comparable to triangular, bilinear & quadric even at low resolutions. Figures 1 & 14 show the demos rendered using sphere tracing augmented with ray-gradient-plane intersection. We have implemented the proposed techniques as Shader Model 4.0 fragment programs. Timings reported in this paper were produced on Intel PentiumD 3.4GHz machine with Geforce 8800GTS graphics card and 2GB RAM. All images given in the paper were rendered at a screen resolution of 1280x Conclusion and Future Work We have presented several exact and approximate techniques of performing ray-patch intersection and explored its applicability in improving the rendering quality of per-pixel displacement mapping. We have provided a detailed quality & performance based comparison between these techniques and their impact on per-pixel displacement mapping. We have also tested the validity of the proposed approximations at different resolution. For future work, we would like to explore other surface patch approximations ( Bezier, SLIM ) along with efficient & accurate methods for their ray-patch intersection. (a) Tiled cylinder: texture 5122, 88fps (b) Earth: Coeff. texture 5122, 135fps Figure 14. Ray-gradient-plane intersection

8 Statues surface Rocky surface Glass surface ICVGIP surface Resolution ST(ɛ = 0.0) ST(ɛ = 0.01) Triangular Bilinear Planar Quadric Gradient Table 2. Performance comparison of various techniques (in fps). Screen resolution 1024x768 References A Bilinear patch to quadric conversion [1] M. Botsch, A. Hornung, M. Zwicker, and L. Kobbelt. Highquality surface splatting on today s gpus. Point-Based Graphics, Eurographics/IEEE VGTC Symposium Proceedings, pages , June [2] R. L. Cook. Shade trees. SIGGRAPH Comput. Graph., 18(3): , [3] W. Donnelly. Per-pixel displacement mapping with distance functions. GPU Gems 2, 22(3): , [4] Dummer. Cone step mapping: An iterative ray-heightfield intersection algorithm [5] K. Oh, H. Ki, and C.-H. Lee. Pyramidal displacement mapping: a gpu based artifacts-free ray tracing through an image pyramid. In VRST 06: Proceedings of the ACM symposium on Virtual reality software and technology, pages 75 82, [6] M. Pauly, R. Keiser, L. P. Kobbelt, and M. Gross. Shape modeling with point-sampled geometry. ACM Trans. Graph., 22(3): , [7] F. Policarpo and M. M. Oliveira. Relief mapping of nonheight-field surface details. In I3D 06: Proceedings of the 2006 symposium on Interactive 3D graphics and games, pages 55 62, New York, NY, USA, ACM. [8] F. Policarpo, M. M. Oliveira, and a. L. D. C. Jo Realtime relief mapping on arbitrary polygonal surfaces. In I3D 05: Proceedings of the 2005 symposium on Interactive 3D graphics and games, pages , New York, NY, USA, ACM. [9] S. D. Ramsey, K. Potter, and C. Hansen. Ray bilinear patch intersections. journal of graphics tools, 9(3):41 47, [10] C. Sigg, T.Weyrich, M.Botsch, M. GrossRamsey, K. Potter, and C. Hansen. Gpu-based ray-casting of quadratic surfaces. Eurographics symposium of point based rendering, [11] A. Tevs, I. Ihrke, and H.-P. Seidel. Maximum mipmaps for fast, accurate, and scalable dynamic height field rendering. In SI3D 08: Proceedings of the 2008 symposium on Interactive 3D graphics and games, pages , [12] L. Wang, X. Wang, X. Tong, S. Lin, S. Hu, B. Guo, and H.-Y. Shum. View-dependent displacement mapping. ACM Trans. Graph., 22(3): , [13] X. Wang, X. Tong, S. Lin, S. Hu, B. Guo, and H.-Y. Shum. Generalized displacement maps. Computer Graphics Forum, 22(3): , Bilinear patch formed by four adjacent cell points V A (x 1, y 1, z 1 ), V B (x 2, y 1, z 2 ), V C (x 1, y 2, z 3 ), V D (x 2, y 2, z 4 ) described by weighing parameters (u, v) is equation 2. Substituting a = (a 1, a 2, a 3 ) = V A + V D V B V C (20) = (0, 0, z 1 + z 4 z 2 z 3 ) (21) b = (b1, b 2, b 3 ) = V C V A (22) = (0, y 2 y 1, z 3 z 1 ) (23) c = (c 1, c 2, c 3 ) = V B V A (24) = (x 2 x 1, 0, z 2 z 1 ) (25) d = (d 1, d 2, d 3 ) = V A (26) And rearranging, = (x 1, y 1, z 1 ) (27) V (u, v) = uv a + u b + v c + d (28) (X, Y, Z) = uv(a 1, a 2, a 3 ) + u(b 1, b 2, b 3 ) (29) Comparing both sides, + v(c 1, c 2, c 3 ) + (d 1, d 2, d 3 ) (30) X = vc 1 + d 1 (31) Y = 0 + ub d 2 (32) Z = uva 3 + ub 3 + vc 3 + d 3 (33) Substituting value of u and v from Equations 31& 32 in Equation 33, we get ( ) ( ) ( ) a3 c3 b 2 d 2 a 3 b3 c 1 a 3 d 1 Z = XY + X + Y ( ) d1 d 2 a 3 + d 3 d 2 b 3 c 1 d 1 c 3 b 2 = + (34)

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

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane Rendering Pipeline Rendering Converting a 3D scene to a 2D image Rendering Light Camera 3D Model View Plane Rendering Converting a 3D scene to a 2D image Basic rendering tasks: Modeling: creating the world

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

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

Clipping. CSC 7443: Scientific Information Visualization

Clipping. CSC 7443: Scientific Information Visualization Clipping Clipping to See Inside Obscuring critical information contained in a volume data Contour displays show only exterior visible surfaces Isosurfaces can hide other isosurfaces Other displays can

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 130 Exam I. Fall 2015

CS 130 Exam I. Fall 2015 S 3 Exam I Fall 25 Name Student ID Signature You may not ask any questions during the test. If you believe that there is something wrong with a question, write down what you think the question is trying

More information

Per-Pixel Extrusion Mapping

Per-Pixel Extrusion Mapping 118 Per-Pixel Extrusion Mapping Akram Halli, Abderrahim Saaidi, Khalid Satori and Hamid Tairi LIIAN Laboratory, Faculty of Science Dhar El Mahraz, Fez, Morocco Summary Extruded shapes and patterns are

More information

Triangle Rasterization

Triangle Rasterization Triangle Rasterization Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 2/07/07 1 From last time Lines and planes Culling View frustum culling Back-face culling Occlusion culling

More information

Per-Pixel Displacement Mapping with Distance Functions

Per-Pixel Displacement Mapping with Distance Functions 108_gems2_ch08_new.qxp 2/2/2005 2:20 PM Page 123 Chapter 8 Per-Pixel Displacement Mapping with Distance Functions William Donnelly University of Waterloo In this chapter, we present distance mapping, a

More information

Algebraic Splats Representation for Point Based Models

Algebraic Splats Representation for Point Based Models Sixth Indian Conference on Computer Vision, Graphics & Image Processing Algebraic Splats Representation for Point Based Models Naveen Kumar Bolla and P. J. Narayanan Center for Visual Information Technology,

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

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

Physically-Based Modeling and Animation. University of Missouri at Columbia

Physically-Based Modeling and Animation. University of Missouri at Columbia Overview of Geometric Modeling Overview 3D Shape Primitives: Points Vertices. Curves Lines, polylines, curves. Surfaces Triangle meshes, splines, subdivision surfaces, implicit surfaces, particles. Solids

More information

Lecture 11. More Ray Casting/Tracing

Lecture 11. More Ray Casting/Tracing Lecture 11 More Ray Casting/Tracing Basic Algorithm For each pixel { } Shoot a ray from camera to pixel for all objects in scene Compute intersection with ray Find object with closest intersection Display

More information

9. Three Dimensional Object Representations

9. Three Dimensional Object Representations 9. Three Dimensional Object Representations Methods: Polygon and Quadric surfaces: For simple Euclidean objects Spline surfaces and construction: For curved surfaces Procedural methods: Eg. Fractals, Particle

More information

Fog and Cloud Effects. Karl Smeltzer Alice Cao John Comstock

Fog and Cloud Effects. Karl Smeltzer Alice Cao John Comstock Fog and Cloud Effects Karl Smeltzer Alice Cao John Comstock Goal Explore methods of rendering scenes containing fog or cloud-like effects through a variety of different techniques Atmospheric effects make

More information

Ray Tracing. CS334 Fall Daniel G. Aliaga Department of Computer Science Purdue University

Ray Tracing. CS334 Fall Daniel G. Aliaga Department of Computer Science Purdue University Ray Tracing CS334 Fall 2013 Daniel G. Aliaga Department of Computer Science Purdue University Ray Casting and Ray Tracing Ray Casting Arthur Appel, started around 1968 Ray Tracing Turner Whitted, started

More information

Computer Graphics CS 543 Lecture 13a Curves, Tesselation/Geometry Shaders & Level of Detail

Computer Graphics CS 543 Lecture 13a Curves, Tesselation/Geometry Shaders & Level of Detail Computer Graphics CS 54 Lecture 1a Curves, Tesselation/Geometry Shaders & Level of Detail Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) So Far Dealt with straight lines

More information

Sung-Eui Yoon ( 윤성의 )

Sung-Eui Yoon ( 윤성의 ) CS480: Computer Graphics Curves and Surfaces Sung-Eui Yoon ( 윤성의 ) Course URL: http://jupiter.kaist.ac.kr/~sungeui/cg Today s Topics Surface representations Smooth curves Subdivision 2 Smooth Curves and

More information

Ray casting. Ray casting/ray tracing

Ray casting. Ray casting/ray tracing Ray casting Ray casting/ray tracing Iterate over pixels, not objects Effects that are difficult with Z-buffer, are easy with ray tracing: shadows, reflections, transparency, procedural textures and objects

More information

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

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

More information

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

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

More information

Direct Rendering. Direct Rendering Goals

Direct Rendering. Direct Rendering Goals May 2, 2005 Goals General Goals Small memory footprint Fast rendering High-quality results identical to those of Saffron V1 using distance-based anti-aliasing and alignment zones Goals Specific Goals Avoid

More information

CS 130 Exam I. Fall 2015

CS 130 Exam I. Fall 2015 CS 130 Exam I Fall 2015 Name Student ID Signature You may not ask any questions during the test. If you believe that there is something wrong with a question, write down what you think the question is

More information

CPSC / Texture Mapping

CPSC / Texture Mapping CPSC 599.64 / 601.64 Introduction and Motivation so far: detail through polygons & materials example: brick wall problem: many polygons & materials needed for detailed structures inefficient for memory

More information

Geometric Queries for Ray Tracing

Geometric Queries for Ray Tracing CSCI 420 Computer Graphics Lecture 16 Geometric Queries for Ray Tracing Ray-Surface Intersection Barycentric Coordinates [Angel Ch. 11] Jernej Barbic University of Southern California 1 Ray-Surface Intersections

More information

Per-pixel Rendering of Terrain Data

Per-pixel Rendering of Terrain Data Per-pixel Rendering of Terrain Data Taek Sang Jeong and JungHyun Han Department of Computer Science and Engineering, Korea University, Korea Abstract. This paper presents a novel approach to terrain rendering,

More information

Real-time rendering of normal maps with discontinuities

Real-time rendering of normal maps with discontinuities Evgueni Parilov Ilya Rosenberg Denis Zorin Real-time rendering of normal maps with discontinuities CIMS Technical Report, TR2005-872 August, 2005 Abstract Normal mapping uses normal perturbations stored

More information

lecture 18 - ray tracing - environment mapping - refraction

lecture 18 - ray tracing - environment mapping - refraction lecture 18 - ray tracing - environment mapping - refraction Recall Ray Casting (lectures 7, 8) for each pixel (x,y) { cast a ray through that pixel into the scene, and find the closest surface along the

More information

2.11 Particle Systems

2.11 Particle Systems 2.11 Particle Systems 320491: Advanced Graphics - Chapter 2 152 Particle Systems Lagrangian method not mesh-based set of particles to model time-dependent phenomena such as snow fire smoke 320491: Advanced

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

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

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016 Computergrafik Matthias Zwicker Universität Bern Herbst 2016 2 Today Basic shader for texture mapping Texture coordinate assignment Antialiasing Fancy textures 3 Texture mapping Glue textures (images)

More information

TSBK03 Screen-Space Ambient Occlusion

TSBK03 Screen-Space Ambient Occlusion TSBK03 Screen-Space Ambient Occlusion Joakim Gebart, Jimmy Liikala December 15, 2013 Contents 1 Abstract 1 2 History 2 2.1 Crysis method..................................... 2 3 Chosen method 2 3.1 Algorithm

More information

Central issues in modelling

Central issues in modelling Central issues in modelling Construct families of curves, surfaces and volumes that can represent common objects usefully; are easy to interact with; interaction includes: manual modelling; fitting to

More information

Ray tracing. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 3/19/07 1

Ray tracing. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 3/19/07 1 Ray tracing Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 3/19/07 1 From last time Hidden surface removal Painter s algorithm Clipping algorithms Area subdivision BSP trees Z-Buffer

More information

Rasterization. MIT EECS Frédo Durand and Barb Cutler. MIT EECS 6.837, Cutler and Durand 1

Rasterization. MIT EECS Frédo Durand and Barb Cutler. MIT EECS 6.837, Cutler and Durand 1 Rasterization MIT EECS 6.837 Frédo Durand and Barb Cutler MIT EECS 6.837, Cutler and Durand 1 Final projects Rest of semester Weekly meetings with TAs Office hours on appointment This week, with TAs Refine

More information

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

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

More information

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

Homework #2. Shading, Projections, Texture Mapping, Ray Tracing, and Bezier Curves

Homework #2. Shading, Projections, Texture Mapping, Ray Tracing, and Bezier Curves Computer Graphics Instructor: Brian Curless CSEP 557 Autumn 2016 Homework #2 Shading, Projections, Texture Mapping, Ray Tracing, and Bezier Curves Assigned: Wednesday, Nov 16 th Due: Wednesday, Nov 30

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

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

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

More information

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

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

More information

Progressive Mesh. Reddy Sambavaram Insomniac Games

Progressive Mesh. Reddy Sambavaram Insomniac Games Progressive Mesh Reddy Sambavaram Insomniac Games LOD Schemes Artist made LODs (time consuming, old but effective way) ViewDependentMesh (usually used for very large complicated meshes. CAD apps. Probably

More information

3D Rasterization II COS 426

3D Rasterization II COS 426 3D Rasterization II COS 426 3D Rendering Pipeline (for direct illumination) 3D Primitives Modeling Transformation Lighting Viewing Transformation Projection Transformation Clipping Viewport Transformation

More information

Height Field Haptics

Height Field Haptics Height Field Haptics Kristin Potter kpotter@cs.utah.edu David Johnson dejohnso@cs.utah.edu School of Computing, University of Utah Elaine Cohen cohen@cs.utah.edu Abstract We present a system for haptically

More information

Pipeline Operations. CS 4620 Lecture 14

Pipeline Operations. CS 4620 Lecture 14 Pipeline Operations CS 4620 Lecture 14 2014 Steve Marschner 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives

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

Chapter IV Fragment Processing and Output Merging. 3D Graphics for Game Programming

Chapter IV Fragment Processing and Output Merging. 3D Graphics for Game Programming Chapter IV Fragment Processing and Output Merging Fragment Processing The per-fragment attributes may include a normal vector, a set of texture coordinates, a set of color values, a depth, etc. Using these

More information

Ray Tracing. Outline. Ray Tracing: History

Ray Tracing. Outline. Ray Tracing: History Foundations of omputer Graphics Online Lecture 9: Ray Tracing 1 History and asic Ray asting Ravi Ramamoorthi Effects needed for Realism (Soft) Shadows Reflections (Mirrors and Glossy) Transparency (Water,

More information

Ray tracing based fast refraction method for an object seen through a cylindrical glass

Ray tracing based fast refraction method for an object seen through a cylindrical glass 20th International Congress on Modelling and Simulation, Adelaide, Australia, 1 6 December 2013 www.mssanz.org.au/modsim2013 Ray tracing based fast refraction method for an object seen through a cylindrical

More information

An Efficient Representation for Surface Details

An Efficient Representation for Surface Details UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO Technical Report RP-351 / Relatório de Pesquisa RP-351 January 26, 2005 An Efficient

More information

1999, Denis Zorin. Ray tracing

1999, Denis Zorin. Ray tracing Ray tracing Ray tracing shadow rays normal reflected ray pixel ray camera normal Ray casting/ray tracing Iterate over pixels, not objects. Effects that are difficult with Z-buffer, are easy with ray tracing:

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] April 15, 2003 Frank Pfenning Carnegie Mellon University http://www.cs.cmu.edu/~fp/courses/graphics/

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

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

Questions??? Announcements Assignment 3 due today

Questions??? Announcements Assignment 3 due today Announcements Assignment 3 due today Questions??? Remember that you have late days (if you haven t used them yet ) Problem set 3 out at the end of the day Movie for Assignment 2 at the end of class 1 Ray

More information

Abstract. Introduction. Kevin Todisco

Abstract. Introduction. Kevin Todisco - Kevin Todisco Figure 1: A large scale example of the simulation. The leftmost image shows the beginning of the test case, and shows how the fluid refracts the environment around it. The middle image

More information

Hardware Accelerated Per-Pixel Displacement Mapping

Hardware Accelerated Per-Pixel Displacement Mapping Hardware Accelerated Per-Pixel Displacement Mapping Johannes Hirche WSI/GRIS University of Tübingen, Germany Alexander Ehlert WSI/GRIS University of Tübingen, Germany Michael Doggett ATI Research Stefan

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

Near-Optimum Adaptive Tessellation of General Catmull-Clark Subdivision Surfaces

Near-Optimum Adaptive Tessellation of General Catmull-Clark Subdivision Surfaces Near-Optimum Adaptive Tessellation of General Catmull-Clark Subdivision Surfaces Shuhua Lai and Fuhua (Frank) Cheng (University of Kentucky) Graphics & Geometric Modeling Lab, Department of Computer Science,

More information

Texture mapping. Computer Graphics CSE 167 Lecture 9

Texture mapping. Computer Graphics CSE 167 Lecture 9 Texture mapping Computer Graphics CSE 167 Lecture 9 CSE 167: Computer Graphics Texture Mapping Overview Interpolation Wrapping Texture coordinates Anti aliasing Mipmaps Other mappings Including bump mapping

More information

Advanced 3D-Data Structures

Advanced 3D-Data Structures Advanced 3D-Data Structures Eduard Gröller, Martin Haidacher Institute of Computer Graphics and Algorithms Vienna University of Technology Motivation For different data sources and applications different

More information

implicit surfaces, approximate implicitization, B-splines, A- patches, surface fitting

implicit surfaces, approximate implicitization, B-splines, A- patches, surface fitting 24. KONFERENCE O GEOMETRII A POČÍTAČOVÉ GRAFICE ZBYNĚK ŠÍR FITTING OF PIECEWISE POLYNOMIAL IMPLICIT SURFACES Abstrakt In our contribution we discuss the possibility of an efficient fitting of piecewise

More information

Computing Visibility. Backface Culling for General Visibility. One More Trick with Planes. BSP Trees Ray Casting Depth Buffering Quiz

Computing Visibility. Backface Culling for General Visibility. One More Trick with Planes. BSP Trees Ray Casting Depth Buffering Quiz Computing Visibility BSP Trees Ray Casting Depth Buffering Quiz Power of Plane Equations We ve gotten a lot of mileage out of one simple equation. Basis for D outcode-clipping Basis for plane-at-a-time

More information

Interpolation using scanline algorithm

Interpolation using scanline algorithm Interpolation using scanline algorithm Idea: Exploit knowledge about already computed color values. Traverse projected triangle top-down using scanline. Compute start and end color value of each pixel

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

Ray Tracing I. History

Ray Tracing I. History History Ray Tracing came from the Physics of lens making. The process was that of drawing lines or rays through a glass shape to determine it s lens properties. It is also related to early perspective

More information

Game Architecture. 2/19/16: Rasterization

Game Architecture. 2/19/16: Rasterization Game Architecture 2/19/16: Rasterization Viewing To render a scene, need to know Where am I and What am I looking at The view transform is the matrix that does this Maps a standard view space into world

More information

Height Fields and Contours Scalar Fields Volume Rendering Vector Fields [Angel Ch. 12] April 23, 2002 Frank Pfenning Carnegie Mellon University

Height Fields and Contours Scalar Fields Volume Rendering Vector Fields [Angel Ch. 12] April 23, 2002 Frank Pfenning Carnegie Mellon University 15-462 Computer Graphics I Lecture 21 Visualization Height Fields and Contours Scalar Fields Volume Rendering Vector Fields [Angel Ch. 12] April 23, 2002 Frank Pfenning Carnegie Mellon University http://www.cs.cmu.edu/~fp/courses/graphics/

More information

Geometric Representations. Stelian Coros

Geometric Representations. Stelian Coros Geometric Representations Stelian Coros Geometric Representations Languages for describing shape Boundary representations Polygonal meshes Subdivision surfaces Implicit surfaces Volumetric models Parametric

More information

Solid Modeling. Michael Kazhdan ( /657) HB , FvDFH 12.1, 12.2, 12.6, 12.7 Marching Cubes, Lorensen et al.

Solid Modeling. Michael Kazhdan ( /657) HB , FvDFH 12.1, 12.2, 12.6, 12.7 Marching Cubes, Lorensen et al. Solid Modeling Michael Kazhdan (601.457/657) HB 10.15 10.17, 10.22 FvDFH 12.1, 12.2, 12.6, 12.7 Marching Cubes, Lorensen et al. 1987 Announcement OpenGL review session: When: Today @ 9:00 PM Where: Malone

More information

Shadow Algorithms. CSE 781 Winter Han-Wei Shen

Shadow Algorithms. CSE 781 Winter Han-Wei Shen Shadow Algorithms CSE 781 Winter 2010 Han-Wei Shen Why Shadows? Makes 3D Graphics more believable Provides additional cues for the shapes and relative positions of objects in 3D What is shadow? Shadow:

More information

CSE 167: Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

CSE 167: Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Homework project #2 due this Friday, October

More information

G 2 Interpolation for Polar Surfaces

G 2 Interpolation for Polar Surfaces 1 G 2 Interpolation for Polar Surfaces Jianzhong Wang 1, Fuhua Cheng 2,3 1 University of Kentucky, jwangf@uky.edu 2 University of Kentucky, cheng@cs.uky.edu 3 National Tsinhua University ABSTRACT In this

More information

Ray Tracer I: Ray Casting Due date: 12:00pm December 3, 2001

Ray Tracer I: Ray Casting Due date: 12:00pm December 3, 2001 Computer graphics Assignment 5 1 Overview Ray Tracer I: Ray Casting Due date: 12:00pm December 3, 2001 In this assignment you will implement the camera and several primitive objects for a ray tracer. We

More information

Interval Mapping. Abstract. Introduction. Eric Risser University of Central Florida. Musawir Shah University of Central Florida

Interval Mapping. Abstract. Introduction. Eric Risser University of Central Florida. Musawir Shah University of Central Florida Interval Mapping Eric Risser University of Central Florida Musawir Shah University of Central Florida Abstract Interval Mapping offers an efficient method for adding per pixel height field based displacement

More information

Lecture 25: Bezier Subdivision. And he took unto him all these, and divided them in the midst, and laid each piece one against another: Genesis 15:10

Lecture 25: Bezier Subdivision. And he took unto him all these, and divided them in the midst, and laid each piece one against another: Genesis 15:10 Lecture 25: Bezier Subdivision And he took unto him all these, and divided them in the midst, and laid each piece one against another: Genesis 15:10 1. Divide and Conquer If we are going to build useful

More information

A Real-Time Terrain Ray-Tracing Engine

A Real-Time Terrain Ray-Tracing Engine A Real-Time Terrain Ray-Tracing Engine Andr Filipe Domingos Silvestre andre.d.silvestre@tecnico.ulisboa.pt Instituto Superior Técnico, Lisboa, Portugal May 2017 Abstract Ray Tracing is a rendering algorithm,

More information

Topic 12: Texture Mapping. Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping

Topic 12: Texture Mapping. Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping Topic 12: Texture Mapping Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping Texture sources: Photographs Texture sources: Procedural Texture sources: Solid textures

More information

CS 354R: Computer Game Technology

CS 354R: Computer Game Technology CS 354R: Computer Game Technology Texture and Environment Maps Fall 2018 Texture Mapping Problem: colors, normals, etc. are only specified at vertices How do we add detail between vertices without incurring

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

Surface Rendering. Surface Rendering

Surface Rendering. Surface Rendering Surface Rendering Surface Rendering Introduce Mapping Methods - Texture Mapping - Environmental Mapping - Bump Mapping Go over strategies for - Forward vs backward mapping 2 1 The Limits of Geometric Modeling

More information

Polygon Meshes and Implicit Surfaces

Polygon Meshes and Implicit Surfaces CSCI 420 Computer Graphics Lecture 9 Polygon Meshes and Implicit Surfaces Polygon Meshes Implicit Surfaces Constructive Solid Geometry [Angel Ch. 10] Jernej Barbic University of Southern California 1 Modeling

More information

Polygon Meshes and Implicit Surfaces

Polygon Meshes and Implicit Surfaces CSCI 420 Computer Graphics Lecture 9 and Constructive Solid Geometry [Angel Ch. 10] Jernej Barbic University of Southern California Modeling Complex Shapes An equation for a sphere is possible, but how

More information

Single-Pass High-Quality Splatting

Single-Pass High-Quality Splatting Single-Pass High-Quality Splatting Tilo Ochotta Stefan Hiller Dietmar Saupe Department of Computer and Information Science University of Konstanz, Germany Abstract In this paper, we introduce a novel real-time

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

11/1/13. Polygon Meshes and Implicit Surfaces. Shape Representations. Polygon Models in OpenGL. Modeling Complex Shapes

11/1/13. Polygon Meshes and Implicit Surfaces. Shape Representations. Polygon Models in OpenGL. Modeling Complex Shapes CSCI 420 Computer Graphics Lecture 7 and Constructive Solid Geometry [Angel Ch. 12.1-12.3] Jernej Barbic University of Southern California Modeling Complex Shapes An equation for a sphere is possible,

More information

Programming Graphics Hardware. GPU Applications. Randy Fernando, Cyril Zeller

Programming Graphics Hardware. GPU Applications. Randy Fernando, Cyril Zeller GPU Applications Randy Fernando, Cyril Zeller Overview Per-Pixel Displacement Mapping with Distance Functions Percentage-Closer Soft Shadows Introduction to General-Purpose Computation on GPUs Cloth Simulation

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

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

Computer Graphics and Image Processing Ray Tracing I

Computer Graphics and Image Processing Ray Tracing I Computer Graphics and Image Processing Ray Tracing I Part 1 Lecture 9 1 Today s Outline Introduction to Ray Tracing Ray Casting Intersecting Rays with Primitives Intersecting Rays with Transformed Primitives

More information

Computer Graphics I Lecture 11

Computer Graphics I Lecture 11 15-462 Computer Graphics I Lecture 11 Midterm Review Assignment 3 Movie Midterm Review Midterm Preview February 26, 2002 Frank Pfenning Carnegie Mellon University http://www.cs.cmu.edu/~fp/courses/graphics/

More information

Topic #1: Rasterization (Scan Conversion)

Topic #1: Rasterization (Scan Conversion) Topic #1: Rasterization (Scan Conversion) We will generally model objects with geometric primitives points, lines, and polygons For display, we need to convert them to pixels for points it s obvious but

More information

Topic 11: Texture Mapping 11/13/2017. Texture sources: Solid textures. Texture sources: Synthesized

Topic 11: Texture Mapping 11/13/2017. Texture sources: Solid textures. Texture sources: Synthesized Topic 11: Texture Mapping Motivation Sources of texture Texture coordinates Bump mapping, mip mapping & env mapping Texture sources: Photographs Texture sources: Procedural Texture sources: Solid textures

More information

High-Quality Surface Splatting on Today s GPUs

High-Quality Surface Splatting on Today s GPUs High-Quality Surface Splatting on Today s GPUs M. Botsch, A. Hornung, M. Zwicker, L. Kobbelt Presented by Julian Yu-Chung Chen CS594 GPU Programming 2006-03-30 Outline Point Based Rendering Surface splatting

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

Single Scattering in Refractive Media with Triangle Mesh Boundaries

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

More information