Ray Tracing Graphics Pipeline Review Alternative Approaches

Total Page:16

File Type:pdf, Size:1020Kb

Ray Tracing Graphics Pipeline Review Alternative Approaches Ray Tracing Graphics Pipeline Review Properties of the Graphics Pipeline Beyond the Graphics Pipeline Primitives are processed one at a time Ray Casting All analytic processing early on Ray-Object Intersection Sampling occurs late Global Illumination - Minimal state required (immediate mode rendering) Reflections and Transparency Processing is forward-mapping Acceleration Techniques CSG Lecture 17 Slide 1 6.837 Fall 2001 Lecture 17 Slide 2 6.837 Fall 2001 Alternative Approaches Ray Casting Outline There are other ways to compute views of scenes defined by geometric For every pixel construct a ray primitives. One of the most common is ray-casting. Ray-casting searches from the eye through the pixel. along lines of sight, or rays, to determine the primitive that is visible along it. For every object in the scene Find “time” of intersection with the ray closest (and in front of) the eye Compute normal at point of intersection Compute color for pixel based on point and normal at intersection Properties of ray-casting: closest to the eye (e.g. by Phong illumination model). Go through all primitives at each pixel Sample first t Analytic processing afterwards 0 Requires a display list Lecture 17 Slide 3 6.837 Fall 2001 Lecture 17 Slide 4 6.837 Fall 2001 1 First Step - From Pixels to Rays Java Version // Compute viewing transformation that maps a // screen coordinate to a ray direction Vector3D look = new Vector3D(lookat.x-eye.x, lookat.y-eye.y, lookat.z-eye.z); Du = Vector3D.normalize(look.cross(up)); Dv = Vector3D.normalize(look.cross(Du)); float fl = (float)(width / (2*Math.tan((0.5*fov)*Math.PI/180))); Vp = Vector3D.normalize(look); Vp.x = Vp.x*fl - 0.5f*(width*Du.x + height*Dv.x); Vp.y = Vp.y*fl - 0.5f*(width*Du.y + height*Dv.y); Vp.z = Vp.z*fl - 0.5f*(width*Du.z + height*Dv.z); Example use: Vector3D dir = new Vector3D(i*Du.x + j*Dv.x + Vp.x, i*Du.y + j*Dv.y + Vp.y, i*Du.z + j*Dv.z + Vp.z); Ray ray = new Ray(eye, dir); // normalizes dir Lecture 17 Slide 5 6.837 Fall 2001 Lecture 17 Slide 6 6.837 Fall 2001 Object Intersection Early Rejection Intersecting a sphere with a ray: The performance of ray casting is determined by how efficiently ray object intersections can be determined. Let's rethink the series of computations used to determine the ray-sphere intersection while looking for ways to eliminate unnecessary work. Step 1: A sphere is defined by its center, s, and its radius r. The intersection of a ray with a sphere can be computed as follows: Thus, we can test if (v - r) is greater than the closes intersection thus far, tbest. If it is then this intersection cannot be closer. We can use this test to avoid the rest of the intersection calculation. Lecture 17 Slide 7 6.837 Fall 2001 Lecture 17 Slide 8 6.837 Fall 2001 2 More Trivial Rejections Example Code public boolean intersect(Ray ray) { float dx = center.x - ray.origin.x; We can even structure the intersection test to avoid even more float dy = center.y - ray.origin.y; unnecessary work: float dz = center.z - ray.origin.z; float v = ray.direction.dot(dx, dy, dz); Step 2: // Do the following quick check to see if there is even a chance 2 2 // that an intersection here might be closer than a previous one What if the term, r -b < 0 if (v - radius > ray.t) return false; // Test if the ray actually intersects the sphere float t = radSqr + v*v - dx*dx - dy*dy - dz*dz; if (t < 0) return false; // Test if the intersection is in the positive // ray direction and it is the closest so far Clearly we need to test for this case anyway since it will generate an t = v - ((float) Math.sqrt(t)); exception when we calculate the expression: if ((t > ray.t) || (t < 0)) return false; ray.t = t; ray.object = this; return true; } Lecture 17 Slide 9 6.837 Fall 2001 Lecture 17 Slide 10 6.837 Fall 2001 Global Illumination Recursive Ray-Casting Early on, in the development of computer graphics, ray-casting was Starting from the viewing position, first compute the visible object along recognized as viable approach to 3-D rendering. However, it was generally each ray. Then compute the visibility of each light source from the visible dismissed because: surface point, using a new ray. If there is an object between the light 1. Takes no advantage of screen space coherence source and the object point it is in shadow, and we ignore the illumination 2. Requires costly visibility computation from that source. We can also model reflection and refraction 3. Only works for solids similarly. 4. Forces per pixel illumination evaluations 5. Not suited for immediate mode rendering It was not until Turner Whitted (1980) recognized that recursive ray casting, which has come to be called ray tracing, could be used to address global illumination that interest in ray tracing became widespread. Lecture 17 Slide 11 6.837 Fall 2001 Lecture 17 Slide 12 6.837 Fall 2001 3 Ray Tracing Illumination The Ray Tree Recursive L R E T R 3 Viewpoint Nˆ 2 V Vreflected N T 2 1 R R 3 = + + I I reflected 1 N I(E,V ) I direct I reflected I transmitted 3 L P 1 L2 V N1 L3 I transmitted L = transmitted 1 R T I reflected kr I(P,Vreflected ) 1 1 L L = Eye 2 3 I transmitted kt I(P,Vtransmitted ) Ni surface normal R R T R reflected ray 2 3 3 = + ()(ˆ ⋅ ˆ + − ˆ ⋅ ˆ )nshiny i I direct ka I ambient I light kd N L k s V R L shadow ray i Check for shadowing (intersection with object along ray (P,L)) Ti transmitted (refracted) ray Lecture 17 Slide 13 6.837 Fall 2001 Lecture 17 Slide 14 6.837 Fall 2001 Refraction Rendering Equation Nˆ cos θ − Iˆ Nˆ Global illumination computes the more general problem of light transfer sin θ η i between all objects in the scene, including direct and indirect illumination. Snell’s Law i = i = η θ η r Nˆ cos θ Rendering equation is the general formulation of the global illumination sin t t Iˆ θ i i Mˆ problem: it describes how the radiance from surface x reflects from the surface x’: Tˆ = sin θ Mˆ − cos θ Nˆ t t r r (Nˆ cos θ − Iˆ) θ L(x′,ω′) = E(x′) + ρ(x′)L(x,ω)G(x, x′)V (x, x′)dA Mˆ = i t θ − ˆ Tˆ ∫ sin i N S sin θ Tˆ = t (Nˆ cos θ − Iˆ) − cos θ Nˆ L is the radiance from a point on a surface in a given direction ω sin θ i t Note that I is the negative of i the incoming ray E is the emitted radiance from a point: E is non-zero only if x’ is emissive Tˆ = (η cos θ − cos θ )Nˆ −η Iˆ V is the visibility term: 1 when the surfaces are unobstructed along the r i t r direction ω, 0 otherwise θ = ˆ ⋅ ˆ cos i N I G is the geometry term, which depends on the geometric relationship θ = − 2 θ = −η 2 2 θ = −η 2 − ˆ ⋅ ˆ 2 between the two surfaces x and x’ cos t 1 sin t 1 r sin i 1 r (1 (N I ) ) Tˆ = η (Nˆ ⋅ Iˆ) − 1 −η 2 (1 − (Nˆ ⋅ Iˆ) 2 )Nˆ −η Iˆ Total internal reflection when the Ray tracing approximates the rendering equation by sampling along rays r r r square root is imaginary where the integrand is likely to be large. Lecture 17 Slide 15 6.837 Fall 2001 Lecture 17 Slide 16 6.837 Fall 2001 4 Designing a Ray Tracer A Ray Object Building a ray tracer is simple. First we start with a convenient vector class Ray { algebra library. public static final float MAX_T = Float.MAX_VALUE; class Vector3D { Vector3D origin, direction; float t; Renderable object; public float x, y, z; // constructors public Ray(Vector3D eye, Vector3D dir) { public Vector3D( ) { } origin = new Vector3D(eye); public Vector3D(float x, float y, float z); direction = Vector3D.normalize(dir); public Vector3D(Vector3D v); } public boolean trace(Vector objects) { // methods Enumeration objList = objects.elements(); public Vector3D to(Vector3D B) // B - this t = MAX_T; public float dot(Vector3D B); // this with B object = null; public float dot(float Bx, float By, float Bz); // B spelled out while (objList.hasMoreElements()) { public static float dot(Vector3D A, Vector3D B); // A dot B Renderable object = (Renderable) objList.nextElement(); object.intersect(this); public Vector3D cross(Vector3D B); // this with B } public Vector3D cross(float Bx, float By, float Bz); // B spelled out return (object != null); public static Vector3D cross(Vector3D A, Vector3D B); // A cross B } // ray.Shade(...) is nicer than ray.object.Shade(ray, ...) public float length( ); // of this public final Color Shade(Vector lights, Vector objects, Color bgnd) { public static float length(Vector3D A); // of A return object.Shade(this, lights, objects, bgnd); public void normalize( ); // makes this unit length } public static Vector3D normalize(Vector3D A); // makes A unit length } public String toString(); // convert to a string } Lecture 17 Slide 17 6.837 Fall 2001 Lecture 17 Slide 18 6.837 Fall 2001 Light Source Object Renderable Interface // All the public variables here are ugly, but I // An object must implement a Renderable interface in order to // wanted Lights and Surfaces to be "friends" // be ray traced.
Recommended publications
  • Glossary Physics (I-Introduction)
    1 Glossary Physics (I-introduction) - Efficiency: The percent of the work put into a machine that is converted into useful work output; = work done / energy used [-]. = eta In machines: The work output of any machine cannot exceed the work input (<=100%); in an ideal machine, where no energy is transformed into heat: work(input) = work(output), =100%. Energy: The property of a system that enables it to do work. Conservation o. E.: Energy cannot be created or destroyed; it may be transformed from one form into another, but the total amount of energy never changes. Equilibrium: The state of an object when not acted upon by a net force or net torque; an object in equilibrium may be at rest or moving at uniform velocity - not accelerating. Mechanical E.: The state of an object or system of objects for which any impressed forces cancels to zero and no acceleration occurs. Dynamic E.: Object is moving without experiencing acceleration. Static E.: Object is at rest.F Force: The influence that can cause an object to be accelerated or retarded; is always in the direction of the net force, hence a vector quantity; the four elementary forces are: Electromagnetic F.: Is an attraction or repulsion G, gravit. const.6.672E-11[Nm2/kg2] between electric charges: d, distance [m] 2 2 2 2 F = 1/(40) (q1q2/d ) [(CC/m )(Nm /C )] = [N] m,M, mass [kg] Gravitational F.: Is a mutual attraction between all masses: q, charge [As] [C] 2 2 2 2 F = GmM/d [Nm /kg kg 1/m ] = [N] 0, dielectric constant Strong F.: (nuclear force) Acts within the nuclei of atoms: 8.854E-12 [C2/Nm2] [F/m] 2 2 2 2 2 F = 1/(40) (e /d ) [(CC/m )(Nm /C )] = [N] , 3.14 [-] Weak F.: Manifests itself in special reactions among elementary e, 1.60210 E-19 [As] [C] particles, such as the reaction that occur in radioactive decay.
    [Show full text]
  • Ray-Tracing in Vulkan.Pdf
    Ray-tracing in Vulkan A brief overview of the provisional VK_KHR_ray_tracing API Jason Ekstrand, XDC 2020 Who am I? ▪ Name: Jason Ekstrand ▪ Employer: Intel ▪ First freedesktop.org commit: wayland/31511d0e dated Jan 11, 2013 ▪ What I work on: Everything Intel but not OpenGL front-end – src/intel/* – src/compiler/nir – src/compiler/spirv – src/mesa/drivers/dri/i965 – src/gallium/drivers/iris 2 Vulkan ray-tracing history: ▪ On March 19, 2018, Microsoft announced DirectX Ray-tracing (DXR) ▪ On September 19, 2018, Vulkan 1.1.85 included VK_NVX_ray_tracing for ray- tracing on Nvidia RTX GPUs ▪ On March 17, 2020, Khronos released provisional cross-vendor extensions: – VK_KHR_ray_tracing – SPV_KHR_ray_tracing ▪ Final cross-vendor Vulkan ray-tracing extensions are still in-progress within the Khronos Vulkan working group 3 Overview: My objective with this presentation is mostly educational ▪ Quick overview of ray-tracing concepts ▪ Walk through how it all maps to the Vulkan ray-tracing API ▪ Focus on the provisional VK/SPV_KHR_ray_tracing extension – There are several details that will likely be different in the final extension – None of that is public yet, sorry. – The general shape should be roughly the same between provisional and final ▪ Not going to discuss details of ray-tracing on Intel GPUs 4 What is ray-tracing? All 3D rendering is a simulation of physical light 6 7 8 Why don't we do all 3D rendering this way? The primary problem here is wasted rays ▪ The chances of a random photon from the sun hitting your scene is tiny – About 1 in
    [Show full text]
  • Directx ® Ray Tracing
    DIRECTX® RAYTRACING 1.1 RYS SOMMEFELDT INTRO • DirectX® Raytracing 1.1 in DirectX® 12 Ultimate • AMD RDNA™ 2 PC performance recommendations AMD PUBLIC | DirectX® 12 Ultimate: DirectX Ray Tracing 1.1 | November 2020 2 WHAT IS DXR 1.1? • Adds inline raytracing • More direct control over raytracing workload scheduling • Allows raytracing from all shader stages • Particularly well suited to solving secondary visibility problems AMD PUBLIC | DirectX® 12 Ultimate: DirectX Ray Tracing 1.1 | November 2020 3 NEW RAY ACCELERATOR AMD PUBLIC | DirectX® 12 Ultimate: DirectX Ray Tracing 1.1 | November 2020 4 DXR 1.1 BEST PRACTICES • Trace as few rays as possible to achieve the right level of quality • Content and scene dependent techniques work best • Positive results when driving your raytracing system from a scene classifier • 1 ray per pixel can generate high quality results • Especially when combined with techniques and high quality denoising systems • Lets you judiciously spend your ray tracing budget right where it will pay off AMD PUBLIC | DirectX® 12 Ultimate: DirectX Ray Tracing 1.1 | November 2020 5 USING DXR 1.1 TO TRACE RAYS • DXR 1.1 lets you call TraceRay() from any shader stage • Best performance is found when you use it in compute shaders, dispatched on a compute queue • Matches existing asynchronous compute techniques you’re already familiar with • Always have just 1 active RayQuery object in scope at any time AMD PUBLIC | DirectX® 12 Ultimate: DirectX Ray Tracing 1.1 | November 2020 6 RESOURCE BALANCING • Part of our ray tracing system
    [Show full text]
  • Visualization Tools and Trends a Resource Tour the Obligatory Disclaimer
    Visualization Tools and Trends A resource tour The obligatory disclaimer This presentation is provided as part of a discussion on transportation visualization resources. The Atlanta Regional Commission (ARC) does not endorse nor profit, in whole or in part, from any product or service offered or promoted by any of the commercial interests whose products appear herein. No funding or sponsorship, in whole or in part, has been provided in return for displaying these products. The products are listed herein at the sole discretion of the presenter and are principally oriented toward transportation practitioners as well as graphics and media professionals. The ARC disclaims and waives any responsibility, in whole or in part, for any products, services or merchandise offered by the aforementioned commercial interests or any of their associated parties or entities. You should evaluate your own individual requirements against available resources when establishing your own preferred methods of visualization. What is Visualization • As described on Wikipedia • Illustration • Information Graphics – visual representations of information data or knowledge • Mental Image – imagination • Spatial Visualization – ability to mentally manipulate 2dimensional and 3dimensional figures • Computer Graphics • Interactive Imaging • Music visual IEEE on Visualization “Traditionally the tool of the statistician and engineer, information visualization has increasingly become a powerful new medium for artists and designers as well. Owing in part to the mainstreaming
    [Show full text]
  • Surface Regularized Geometry Estimation from a Single Image
    SURGE: Surface Regularized Geometry Estimation from a Single Image Peng Wang1 Xiaohui Shen2 Bryan Russell2 Scott Cohen2 Brian Price2 Alan Yuille3 1University of California, Los Angeles 2Adobe Research 3Johns Hopkins University Abstract This paper introduces an approach to regularize 2.5D surface normal and depth predictions at each pixel given a single input image. The approach infers and reasons about the underlying 3D planar surfaces depicted in the image to snap predicted normals and depths to inferred planar surfaces, all while maintaining fine detail within objects. Our approach comprises two components: (i) a four- stream convolutional neural network (CNN) where depths, surface normals, and likelihoods of planar region and planar boundary are predicted at each pixel, followed by (ii) a dense conditional random field (DCRF) that integrates the four predictions such that the normals and depths are compatible with each other and regularized by the planar region and planar boundary information. The DCRF is formulated such that gradients can be passed to the surface normal and depth CNNs via backpropagation. In addition, we propose new planar-wise metrics to evaluate geometry consistency within planar surfaces, which are more tightly related to dependent 3D editing applications. We show that our regularization yields a 30% relative improvement in planar consistency on the NYU v2 dataset [24]. 1 Introduction Recent efforts to estimate the 2.5D layout of a depicted scene from a single image, such as per-pixel depths and surface normals, have yielded high-quality outputs respecting both the global scene layout and fine object detail [2, 6, 7, 29]. Upon closer inspection, however, the predicted depths and normals may fail to be consistent with the underlying surface geometry.
    [Show full text]
  • CS 468 (Spring 2013) — Discrete Differential Geometry 1 the Unit Normal Vector of a Surface. 2 Surface Area
    CS 468 (Spring 2013) | Discrete Differential Geometry Lecture 7 Student Notes: The Second Fundamental Form Lecturer: Adrian Butscher; Scribe: Soohark Chung 1 The unit normal vector of a surface. Figure 1: Normal vector of level set. • The normal line is a geometric feature. The normal direction is not (think of a non-orientable surfaces such as a mobius strip). If possible, you want to pick normal directions that are consistent globally. For example, for a manifold, you can pick normal directions pointing out. • Locally, you can find a normal direction using tangent vectors (though you can't extend this globally). • Normal vector of a parametrized surface: E1 × E2 If TpS = spanfE1;E2g then N := kE1 × E2k This is just the cross product of two tangent vectors normalized by it's length. Because you take the cross product of two vectors, it is orthogonal to the tangent plane. You can see that your choice of tangent vectors and their order determines the direction of the normal vector. • Normal vector of a level set: > [DFp] N := ? TpS kDFpk This is because the gradient at any point is perpendicular to the level set. This makes sense intuitively if you remember that the gradient is the "direction of the greatest increase" and that the value of the level set function stays constant along the surface. Of course, you also have to normalize it to be unit length. 2 Surface Area. • We want to be able to take the integral of the surface. One approach to the problem may be to inegrate a parametrized surface in the parameter domain.
    [Show full text]
  • Curl, Divergence and Laplacian
    Curl, Divergence and Laplacian What to know: 1. The definition of curl and it two properties, that is, theorem 1, and be able to predict qualitatively how the curl of a vector field behaves from a picture. 2. The definition of divergence and it two properties, that is, if div F~ 6= 0 then F~ can't be written as the curl of another field, and be able to tell a vector field of clearly nonzero,positive or negative divergence from the picture. 3. Know the definition of the Laplace operator 4. Know what kind of objects those operator take as input and what they give as output. The curl operator Let's look at two plots of vector fields: Figure 1: The vector field Figure 2: The vector field h−y; x; 0i: h1; 1; 0i We can observe that the second one looks like it is rotating around the z axis. We'd like to be able to predict this kind of behavior without having to look at a picture. We also promised to find a criterion that checks whether a vector field is conservative in R3. Both of those goals are accomplished using a tool called the curl operator, even though neither of those two properties is exactly obvious from the definition we'll give. Definition 1. Let F~ = hP; Q; Ri be a vector field in R3, where P , Q and R are continuously differentiable. We define the curl operator: @R @Q @P @R @Q @P curl F~ = − ~i + − ~j + − ~k: (1) @y @z @z @x @x @y Remarks: 1.
    [Show full text]
  • Geforce ® RTX 2070 Overclocked Dual
    GAMING GeForce RTX™ 2O7O 8GB XLR8 Gaming Overclocked Edition Up to 6X Faster Performance Real-Time Ray Tracing in Games Latest AI Enhanced Graphics Experience 6X the performance of previous-generation GeForce RTX™ 2070 is light years ahead of other cards, delivering Powered by NVIDIA Turing, GeForce™ RTX 2070 brings the graphics cards combined with maximum power efficiency. truly unique real-time ray-tracing technologies for cutting-edge, power of AI to games. hyper-realistic graphics. GRAPHICS REINVENTED PRODUCT SPECIFICATIONS ® The powerful new GeForce® RTX 2070 takes advantage of the cutting- NVIDIA CUDA Cores 2304 edge NVIDIA Turing™ architecture to immerse you in incredible realism Clock Speed 1410 MHz and performance in the latest games. The future of gaming starts here. Boost Speed 1710 MHz GeForce® RTX graphics cards are powered by the Turing GPU Memory Speed (Gbps) 14 architecture and the all-new RTX platform. This gives you up to 6x the Memory Size 8GB GDDR6 performance of previous-generation graphics cards and brings the Memory Interface 256-bit power of real-time ray tracing and AI to your favorite games. Memory Bandwidth (Gbps) 448 When it comes to next-gen gaming, it’s all about realism. GeForce RTX TDP 185 W>5 2070 is light years ahead of other cards, delivering truly unique real- NVLink Not Supported time ray-tracing technologies for cutting-edge, hyper-realistic graphics. Outputs DisplayPort 1.4 (x2), HDMI 2.0b, USB Type-C Multi-Screen Yes Resolution 7680 x 4320 @60Hz (Digital)>1 KEY FEATURES SYSTEM REQUIREMENTS Power
    [Show full text]
  • Tracepro's Accurate LED Source Modeling Improves the Performance of Optical Design Simulations
    TECHNICAL ARTICLE March, 2015 TracePro’s accurate LED source modeling improves the performance of optical design simulations. Modern optical modeling programs allow product design engineers to create, analyze, and optimize LED sources and LED optical systems as a virtual prototype prior to manufacturing the actual product. The precision of these virtual models depends on accurately representing the components that make up the model, including the light source. This paper discusses the physics behind light source modeling, source modeling options in TracePro, selection of the best modeling method, comparing modeled vs measured results, and source model reporting. Ray Tracing Physics and Source Representation In TracePro and other ray tracing programs, LED sources are represented as a series of individual rays, each with attributes of wavelength, luminous flux, and direction. To obtain the most accurate results, sources are typically represented using millions of individual rays. Source models range from simple (e.g. point source) to complex (e.g. 3D model) and can involve complex interactions completely within the source model. For example, a light source with integrated TIR lens can effectively be represented as a “source” in TracePro. However, sources are usually integrated with other components to represent the complete optical system. We will discuss ray tracing in this context. Ray tracing engines, in their simplest form, employ Snell’s Law and the Law of Reflection to determine the path and characteristics of each individual ray as it passes through the optical system. Figure 1 illustrates a simple optical system with reflection and refraction. Figure 1 – Simple ray trace with refraction and reflection TracePro’s sophisticated ray tracing engine incorporates specular transmission and reflection, scattered transmission and reflection, absorption, bulk scattering, polarization, fluorescence, diffraction, and gradient index properties.
    [Show full text]
  • Multidisciplinary Design Project Engineering Dictionary Version 0.0.2
    Multidisciplinary Design Project Engineering Dictionary Version 0.0.2 February 15, 2006 . DRAFT Cambridge-MIT Institute Multidisciplinary Design Project This Dictionary/Glossary of Engineering terms has been compiled to compliment the work developed as part of the Multi-disciplinary Design Project (MDP), which is a programme to develop teaching material and kits to aid the running of mechtronics projects in Universities and Schools. The project is being carried out with support from the Cambridge-MIT Institute undergraduate teaching programe. For more information about the project please visit the MDP website at http://www-mdp.eng.cam.ac.uk or contact Dr. Peter Long Prof. Alex Slocum Cambridge University Engineering Department Massachusetts Institute of Technology Trumpington Street, 77 Massachusetts Ave. Cambridge. Cambridge MA 02139-4307 CB2 1PZ. USA e-mail: [email protected] e-mail: [email protected] tel: +44 (0) 1223 332779 tel: +1 617 253 0012 For information about the CMI initiative please see Cambridge-MIT Institute website :- http://www.cambridge-mit.org CMI CMI, University of Cambridge Massachusetts Institute of Technology 10 Miller’s Yard, 77 Massachusetts Ave. Mill Lane, Cambridge MA 02139-4307 Cambridge. CB2 1RQ. USA tel: +44 (0) 1223 327207 tel. +1 617 253 7732 fax: +44 (0) 1223 765891 fax. +1 617 258 8539 . DRAFT 2 CMI-MDP Programme 1 Introduction This dictionary/glossary has not been developed as a definative work but as a useful reference book for engi- neering students to search when looking for the meaning of a word/phrase. It has been compiled from a number of existing glossaries together with a number of local additions.
    [Show full text]
  • Rendering of Feature-Rich Dynamically Changing Volumetric Datasets on GPU
    Procedia Computer Science Volume 29, 2014, Pages 648–658 ICCS 2014. 14th International Conference on Computational Science Rendering of Feature-Rich Dynamically Changing Volumetric Datasets on GPU Martin Schreiber, Atanas Atanasov, Philipp Neumann, and Hans-Joachim Bungartz Technische Universit¨at M¨unchen, Munich, Germany [email protected],[email protected],[email protected],[email protected] Abstract Interactive photo-realistic representation of dynamic liquid volumes is a challenging task for today’s GPUs and state-of-the-art visualization algorithms. Methods of the last two decades consider either static volumetric datasets applying several optimizations for volume casting, or dynamic volumetric datasets with rough approximations to realistic rendering. Nevertheless, accurate real-time visualization of dynamic datasets is crucial in areas of scientific visualization as well as areas demanding for accurate rendering of feature-rich datasets. An accurate and thus realistic visualization of such datasets leads to new challenges: due to restrictions given by computational performance, the datasets may be relatively small compared to the screen resolution, and thus each voxel has to be rendered highly oversampled. With our volumetric datasets based on a real-time lattice Boltzmann fluid simulation creating dynamic cavities and small droplets, existing real-time implementations are not applicable for a realistic surface extraction. This work presents a volume tracing algorithm capable of producing multiple refractions which is also robust to small droplets and cavities. Furthermore we show advantages of our volume tracing algorithm compared to other implementations. Keywords: 1 Introduction The photo-realistic real-time rendering of dynamic liquids, represented by free surface flows and volumetric datasets, has been studied in numerous works [13, 9, 10, 14, 18].
    [Show full text]
  • The Shallow Water Wave Ray Tracing Model SWRT
    The Shallow Water Wave Ray Tracing Model SWRT Prepared for: BMT ARGOSS Our reference: BMTA-SWRT Date of issue: 20 Apr 2016 Prepared for: BMT ARGOSS The Shallow Water Wave Ray Tracing Model SWRT Document Status Sheet Title : The Shallow Water Wave Ray Tracing Model SWRT Our reference : BMTA-SWRT Date of issue : 20 Apr 2016 Prepared for : BMT ARGOSS Author(s) : Peter Groenewoud (BMT ARGOSS) Distribution : BMT ARGOSS (BMT ARGOSS) Review history: Rev. Status Date Reviewers Comments 1 Final 20 Apr 2016 Ian Wade, Mark van der Putte and Rob Koenders Information contained in this document is commercial-in-confidence and should not be transmitted to a third party without prior written agreement of BMT ARGOSS. © Copyright BMT ARGOSS 2016. If you have questions regarding the contents of this document please contact us by sending an email to [email protected] or contact the author directly at [email protected]. 20 Apr 2016 Document Status Sheet Prepared for: BMT ARGOSS The Shallow Water Wave Ray Tracing Model SWRT Contents 1. INTRODUCTION ..................................................................................................................... 1 1.1. MODEL ENVIRONMENTS .............................................................................................................. 1 1.2. THE MODEL IN A NUTSHELL ......................................................................................................... 1 1.3. EXAMPLE MODEL CONFIGURATION OFF PANAMA .........................................................................
    [Show full text]