Volume Shadows Tutorial Nuclear / the Lab
|
|
- Ambrose Woods
- 1 years ago
- Views:
Transcription
1 Volume Shadows Tutorial Nuclear / the Lab Introduction As you probably know the most popular rendering technique, when speed is more important than quality (i.e. realtime rendering), is polygon rasterization. The problem with that technique is that it has nothing to do with the way that we actually perceive our environment in real life, so some things that we take as granted in nature (like shadows) are non-trivial to achieve. In contrast, in order to make a raytracer produce shadows is totally trivial and can be done by the very same processes that we use to render the picture. However, in polygon rasterization that is not the case, and polygon rasterization is what we are interested in when speed is important. So I am going to describe a popular algorithm of rendering shadows with polygon rasterization that is called shadow volumes (also known as stencil shadows). Prerequisites Rendering shadows is considered an advanced topic and thus requires some extend of knowledge and familiarity in computer graphics programming. So I will assume that you have good knowledge of linear algebra (coordinate systems, transformations and vector operations), that you have implemented a 3D visualization system that allows you to transform, light and draw polyhedral objects, and of course it goes without saying that you should be proficient with the programming language that you are going to use. Conventions The algorithm is really independent of graphics APIs and rendering systems, and I will present it as such, however there are some requirements from the rendering architecture: 1. the rasterizer should be watertight, that means that if we draw two triangles with a shared edge (two shared vertices) there should be no pixels along the edge that are drawn twice (overlap) or not drawn at all (gaps) or the algorithm will break. 2. there must be a stencil buffer available. A stencil buffer is a buffer of integers as many as there are pixels in our framebuffer. When we draw a pixel we must be able to decide whether to draw it or not depending on the corresponding value of the stencil buffer for that pixel, and also we should be able to either specify that the stencil buffer be incremented, decremented or not affected by placing a pixel in the framebuffer. Such an interface is presented by both OpenGL and Direct3D and it is also very easy to implement in software. 3. A Depth Buffer must be available. Of course both Direct3D and OpenGL use a depth buffer (z-buffer usually) as the main Hidden Surface Removal method so this is not much of a requirement, and this kind of functionality can be implemented extremely easily in any software rendering system that can do any kind of interpolation inside the polygons it draws (gouraud, texture mapping etc.)
2 The Algorithm - Part 1: Shadow Volume Computation The actual algorithm to render shadows has two distinct parts. The first part deals with the computations involved in creating what we call a shadow volume. Note that we need as many shadow volumes per object as there are lights in the scene that cast shadows, but I will describe the process as if there is only one light for simplicity, it is then trivial to add more, just keep a list of shadow volumes per object and calculate them all in turn. The idea is to create a polygon mesh at the boundaries of the shadow that the object casts, to do that we need to find the contour edges of the object as seen from the light source and extrude them away from the light. But let's first define what we mean by contour edges. All edges must have exactly 2 adjacent polygons, a contour edge has one adjacent polygon facing towards the light and one adjacent polygon facing away from the light (see diagram 1 & 2) diag.1: contour edges diag.2: contour edges in 2d There are some subtle issues involved in finding the contour edges, we are going to use these edges for the shadow volume polygons, so we must take care to have their vertices defined in the correct order. Also we want to find them as quickly as possible. Here is an algorithm to do that in pseudocode.
3 // transform the light to the coordinate system of the object LightPosition = LightPosition * Inverse(ObjectWorldMatrix); for (every polygon) { IncidentLightDir = AveragePolyPosition - LightPosition; //if the polygon faces away from the light source... if (DotProduct(IncidentLightDir, PolygonNormal) >= 0.0) { for (every edge of the polygon) { if (the edge is already in the contour edge list) { // then it can't be a contour edge since it is // referenced by two triangles that are facing // away from the light remove the existing edge from the contour list; else { add the edge to the contour list; Then when we have the list of contour edges, we must extrude them away from the light in order to create the boundary of the shadow volume. The extrusion is very simple, just create a quad (or two triangles if you use triangles as your polygons) for each of the edges in the list, the first two vertices of the quad being the two vertices of the edge and the other two the same vertices offset by their position * IncidentLightDir at each vertex (see pseudocode). ExtrudeMagnitude = A_BIG_NUMBER; for (every edge) { ShadowQuad[i].vertex[0] = edge[i].vertex[0]; ShadowQuad[i].vertex[1] = edge[i].vertex[1]; ShadowQuad[i].vertex[2] = edge[i].vertex[1] + ExtrudeMagnitude * (edge[i].vertex[1] - LightPosition); ShadowQuad[i].vertex[3] = edge[i].vertex[0] + ExtrudeMagnitude * (edge[i].vertex[0] - LightPosition); Do not forget that for all these computations the light position must be transformed into the object's local coordinate system by the inverse of the object's local->world transformation. (if you are defining the lights in any other coordinate system than world coordinates substitute "local->world" above with "local->light_coordinate_system").
4 diag.3&4: extruded shadow volume Another important issue is that the shadow volume is incomplete as it is now because it has a big hole where the object is actually located (see diagram 5), so we must cap that hole with polygons, that is easier than it sounds however as we can use the polygons of the object itself as a cap for the shadow volume (see diagram 6). diag.5: uncapped shadow volume diag.6: properly capped shadow volume
5 The Algorithm - Part 2: Rendering Shadows Now that we have created the polygon meshes bounding our shadow volumes we must actually draw the shadows in the scene, or more precisely, draw our scene with shadows. The algorithm is simple once you understand it, we must be able to determine whether a pixel is in the space bounded by the shadow volumes or not. Let's imagine a ray originating from the pixel that we are interested in and into the scene, if assume there is only one shadow volume for simplicity, in order for that ray to hit a shadowed part of the scene it must pass once from the front faces of the shadow volume and not pass through the other side, while if it passes through both sides of the shadow volume and comes right through to the other side it is eventually going to hit an unshadowed part (see diagram 7). diag.7: crossing shadow volume boundaries In generalizing the above for more than one shadow volumes, if the ray passes same number of front sides as back sides of shadow volumes then it hits an unshadowed spot. If the number of front faces that it passes through is greater than the number of back faces then it means that it hits a shadowed spot. The way to keep track of how many front and back faces the ray hits is of course by using a counter that we increment when it passes through a front face and decrement when it passes through a back face. Then when the counter is zero it means that we are in unshadowed part, while when it is greater than zero we are in the shadows. That is exactly where the stencil buffer comes in handy. As I said before the stencil buffer actually keeps a "counter" for every pixel on screen that we can increment and decrement when a pixel is written to the frame buffer, and then we can check against that "counter" to determine whether a pixel should be written or not. That is exactly the functionality that we need to implement the above algorithm. The procedure goes like this:
6 clear the zbuffer and stencil buffer, also make sure zbuffering is enabled and stencil testing is disabled. Render the scene only with ambient light and any lights other than the shadow caster on. The important part here is that the zbuffer is updated so that a shadow volume polygon later will not be rendered if it is behind geometry. Disable writing to the zbuffer. Draw the front faces of the shadow volume, if they are actually drawn (pass depth test) increment the stencil buffer. Draw the back faces of the shadow volume, if they are actually drawn (pass depth test) decrement the stencil buffer. Enable stencil testing, clear zbuffer, enable writing to the zbuffer, enable all lights. Render scene where the stencil is zero (unshadowed). That's it, think a bit about the whole procedure and it will make sense, we first "burn" the zbuffer with our scene, and in the color buffer we have an image of the scene that is not lit by the shadow caster (as if the whole scene is in shadow). We render the front faces of the shadow volume if they are visible, increasing the stencil at the pixels that we write. Then we render the back faces decreasing the stencil as we go. So far the effect is that if an object is inside the shadow volume, the stencil at the pixels corresponding to that object were increased by the front faces (as being inside the shadow implies being behind the front of the shadow boundary), but was not decreased by the back face pass later, since the back faces of the shadow volume are behind the object and not drawn. So now we have a stencil buffer that is 0 outside of the shadows, and greater than 0 inside, thus by rendering the scene once again fully lit only where it is not in shadow (stencil = 0), we have the final image in the framebuffer with our lit scene except where the shadows are, where the unlit first pass was not overwritten by the last pass.
7 Some additional issues There is only one problem that has to be resolved in order of the shadows to be totally generic and robust. The problem is that when the viewpoint enters the shadow volume, the front faces of the shadow volume are not rendered since they are behind the viewpoint. So only the back faces are rendered, decrementing the stencil everywhere except inside the shadow volume. The effect of that is that the areas that should be shadowed are left unshadowed and the areas that should be in light are shadowed! Alternatively, if we are making sure that the stencil does not go below zero (and wrap around actually as it is unsigned) at any point then there is no inversion, but all the shadows disappear (OpenGL does that by default, Direct3D needs D3DSTENCILOP_DECSAT to be specified). To resolve that issue we can either clip the shadow volume to the view plane (thus making another cap if the camera is inside the volume) or test to see if the view point is inside the volume defined by the shadow polygons and if it is then at the beginning instead of clearing the stencil buffer to 0, clear it to 1. Pros and Cons of the shadow volume algorithm The good things about this algorithm are that it is totally generic and applicable everywhere, for as many lights and objects as we need, it produces self shadowing and precise shadow shapes in all kinds of geometry. The bad things are that it is very CPU intensive, especially as polygon counts of the shadow casting objects get high, and it produces only "hard shadows". A good trick to reduce shadow volume calculations is to have two versions of the shadow casting objects, one detailed that gets rendered, and a low-polygon-count one that is used to calculate the shadows. Also another good trick is to precalculate all static shadow volumes. that is, shadows generated by lights and objects that do not move. That's about it, I consider shadows an important part of a computer generated image that can imbue an amount of realism that is missing without them. So I hope that I explained the algorithm good enough, and that I helped you bring some more realism to your computer graphics programs. For any questions, corrections, ideas or in fact if you just want to say hello and how you liked/disliked this tutorial, drop me a mail at I would be happy to receive any feedback. See you around. John Tsiombikas Nuclear / the Lab
Robust Stencil Shadow Volumes. CEDEC 2001 Tokyo, Japan
Robust Stencil Shadow Volumes CEDEC 2001 Tokyo, Japan Mark J. Kilgard Graphics Software Engineer NVIDIA Corporation 2 Games Begin to Embrace Robust Shadows 3 John Carmack s new Doom engine leads the way
Computer Graphics Shadow Algorithms
Computer Graphics Shadow Algorithms Computer Graphics Computer Science Department University of Freiburg WS 11 Outline introduction projection shadows shadow maps shadow volumes conclusion Motivation shadows
Computer Graphics. Lecture 9 Environment mapping, Mirroring
Computer Graphics Lecture 9 Environment mapping, Mirroring Today Environment Mapping Introduction Cubic mapping Sphere mapping refractive mapping Mirroring Introduction reflection first stencil buffer
Physically-Based Laser Simulation
Physically-Based Laser Simulation Greg Reshko Carnegie Mellon University reshko@cs.cmu.edu Dave Mowatt Carnegie Mellon University dmowatt@andrew.cmu.edu Abstract In this paper, we describe our work on
Shadows. Real-Time Hard Shadows. Collected by Ronen Gvili. Most slides were taken from : Fredu Durand Stefan Brabec
Shadows Real-Time Hard Shadows Collected by Ronen Gvili. Most slides were taken from : Fredu Durand Stefan Brabec Hard Shadows Planar (Projected) Shadows Shadow Maps Volume (Stencil) Shadows 1 Soft Shadows
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:
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
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
CS Computer Graphics: Hidden Surface Removal
CS 543 - Computer Graphics: Hidden Surface Removal by Robert W. Lindeman gogo@wpi.edu (with help from Emmanuel Agu ;-) Hidden Surface Removal Drawing polygonal faces on screen consumes CPU cycles We cannot
Hidden Surface Removal
Outline Introduction Hidden Surface Removal Hidden Surface Removal Simone Gasparini gasparini@elet.polimi.it Back face culling Depth sort Z-buffer Introduction Graphics pipeline Introduction Modeling Geom
Rendering Algorithms: Real-time indirect illumination. Spring 2010 Matthias Zwicker
Rendering Algorithms: Real-time indirect illumination Spring 2010 Matthias Zwicker Today Real-time indirect illumination Ray tracing vs. Rasterization Screen space techniques Visibility & shadows Instant
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
Homework #2 and #3 Due Friday, October 12 th and Friday, October 19 th
Homework #2 and #3 Due Friday, October 12 th and Friday, October 19 th 1. a. Show that the following sequences commute: i. A rotation and a uniform scaling ii. Two rotations about the same axis iii. Two
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
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
Models and Architectures. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico
Models and Architectures Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico 1 Objectives Learn the basic design of a graphics system Introduce
OpenGL: Open Graphics Library. Introduction to OpenGL Part II. How do I render a geometric primitive? What is OpenGL
OpenGL: Open Graphics Library Introduction to OpenGL Part II CS 351-50 Graphics API ( Application Programming Interface) Software library Layer between programmer and graphics hardware (and other software
Computer Graphics 7 - Rasterisation
Computer Graphics 7 - Rasterisation Tom Thorne Slides courtesy of Taku Komura www.inf.ed.ac.uk/teaching/courses/cg Overview Line rasterisation Polygon rasterisation Mean value coordinates Decomposing polygons
Orthogonal Projection Matrices. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015
Orthogonal Projection Matrices 1 Objectives Derive the projection matrices used for standard orthogonal projections Introduce oblique projections Introduce projection normalization 2 Normalization Rather
Werner Purgathofer
Einführung in Visual Computing 186.822 Visible Surface Detection Werner Purgathofer Visibility in the Rendering Pipeline scene objects in object space object capture/creation ti modeling viewing projection
Digital 3D technologies
Digital 3D technologies A simple introduction Marco Callieri ISTI-CNR callieri@isti.cnr.it Who Am I? Marco Callieri Master Degree & PhD in computer science Researcher at the Visual Computing Lab, ISTI-CNR,
Shadow Casting in World Builder. A step to step tutorial on how to reach decent results on the creation of shadows
Shadow Casting in World Builder A step to step tutorial on how to reach decent results on the creation of shadows Tutorial on shadow casting in World Builder 3.* Introduction Creating decent shadows in
Stencil Shadow Volumes
Helsinki University of Technology Telecommunications Software and Multimedia Laboratory T-111.500 Seminar on Computer Graphics Spring 2002 Rendering of High Quality 3D-Graphics Stencil Shadow Volumes Matti
Scanline Rendering 2 1/42
Scanline Rendering 2 1/42 Review 1. Set up a Camera the viewing frustum has near and far clipping planes 2. Create some Geometry made out of triangles 3. Place the geometry in the scene using Transforms
Graphics Hardware and OpenGL
Graphics Hardware and OpenGL Ubi Soft, Prince of Persia: The Sands of Time What does graphics hardware have to do fast? Camera Views Different views of an object in the world 1 Camera Views Lines from
Identifying those parts of a scene that are visible from a chosen viewing position, and only process (scan convert) those parts
Visible Surface Detection Identifying those parts of a scene that are visible from a chosen viewing position, and only process (scan convert) those parts Two approaches: 1. Object space methods 2. Image
Photorealistic 3D Rendering for VW in Mobile Devices
Abstract University of Arkansas CSCE Department Advanced Virtual Worlds Spring 2013 Photorealistic 3D Rendering for VW in Mobile Devices Rafael Aroxa In the past few years, the demand for high performance
DOOM 3 : The guts of a rendering engine
DOOM 3 : The guts of a rendering engine Introduction Background Game Design Techniques Tradeoffs Problems and Solutions Background Doom One of the most successful PC games of all time Kicked off First
3D Programming. 3D Programming Concepts. Outline. 3D Concepts. 3D Concepts -- Coordinate Systems. 3D Concepts Displaying 3D Models
3D Programming Concepts Outline 3D Concepts Displaying 3D Models 3D Programming CS 4390 3D Computer 1 2 3D Concepts 3D Model is a 3D simulation of an object. Coordinate Systems 3D Models 3D Shapes 3D Concepts
Ulf Assarsson Department of Computer Engineering Chalmers University of Technology
Ulf Assarsson Department of Computer Engineering Chalmers University of Technology Tracing Photons One way to form an image is to follow rays of light from a point source finding which rays enter the lens
CS 563 Advanced Topics in Computer Graphics Lecture 2: Bare-Bones Raytracer. by Emmanuel Agu
CS 563 Advanced Topics in Computer Graphics Lecture 2: Bare-Bones Raytracer by Emmanuel Agu Ray Casting (Appel, 1968) direct illumination Recursive ray tracing (Whitted, 1980) Pseudocode for Ray Tracer
Optimizing and Profiling Unity Games for Mobile Platforms. Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June
Optimizing and Profiling Unity Games for Mobile Platforms Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June 1 Agenda Introduction ARM and the presenter Preliminary knowledge
Intro to OpenGL III. Don Fussell Computer Science Department The University of Texas at Austin
Intro to OpenGL III Don Fussell Computer Science Department The University of Texas at Austin University of Texas at Austin CS354 - Computer Graphics Don Fussell Where are we? Continuing the OpenGL basic
MIT EECS 6.837, Teller and Durand 1
MIT EECS 6.837, Teller and Durand 1 Clipping MIT EECS 6.837 Frédo Durand and Seth Teller Some slides and images courtesy of Leonard McMillan MIT EECS 6.837, Teller and Durand 2 Administrative Assignment
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
Computer Graphics 1. Chapter 7 (June 17th, 2010, 2-4pm): Shading and rendering. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2010
Computer Graphics 1 Chapter 7 (June 17th, 2010, 2-4pm): Shading and rendering 1 The 3D rendering pipeline (our version for this class) 3D models in model coordinates 3D models in world coordinates 2D Polygons
E.Order of Operations
Appendix E E.Order of Operations This book describes all the performed between initial specification of vertices and final writing of fragments into the framebuffer. The chapters of this book are arranged
Hidden Surface Elimination Raytracing. Pre-lecture business. Outline for today. Review Quiz. Image-Space vs. Object-Space
Hidden Surface Elimination Raytracing Pre-lecture business Get going on pp4 Submit exam questions by Sunday CS148: Intro to CG Instructor: Dan Morris TA: Sean Walker August 2, 2005 Remote folks: let us
Projection Matrix Tricks. Eric Lengyel
Projection Matrix Tricks Eric Lengyel Outline Projection Matrix Internals Infinite Projection Matrix Depth Modification Oblique Near Clipping Plane Slides available at http://www.terathon.com www.terathon.com/
Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)
Lecture 2: Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload) Visual Computing Systems Today Finishing up from last time Brief discussion of graphics workload metrics
C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev
C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE UGRAD.CS.UBC.C A/~CS314 Mikhail Bessmeltsev 1 WHAT IS RENDERING? Generating image from a 3D scene 2 WHAT IS RENDERING? Generating image
Draw Guide. Chapter 7 Working with 3D Objects
Draw Guide Chapter 7 Working with 3D Objects Copyright This document is Copyright 2011 2014 by the LibreOffice Documentation Team. Contributors are listed below. You may distribute or modify it under the
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
So far, we have considered only local models of illumination; they only account for incident light coming directly from the light sources.
11 11.1 Basics So far, we have considered only local models of illumination; they only account for incident light coming directly from the light sources. Global models include incident light that arrives
Drawing the Visible Objects
Drawing the Visible Objects We want to generate the image that the eye would see, given the objects in our space How do we draw the correct object at each pixel, given that some objects may obscure others
CS GAME PROGRAMMING Question bank
CS6006 - GAME PROGRAMMING Question bank Part A Unit I 1. List the different types of coordinate systems. 2. What is ray tracing? Mention some applications of ray tracing. 3. Discuss the stages involved
Image Precision Silhouette Edges
Image Precision Silhouette Edges by Ramesh Raskar and Michael Cohen Presented at I3D 1999 Presented by Melanie Coggan Outline Motivation Previous Work Method Results Conclusions Outline Motivation Previous
- Rasterization. Geometry. Scan Conversion. Rasterization
Computer Graphics - The graphics pipeline - Geometry Modelview Geometry Processing Lighting Perspective Clipping Scan Conversion Texturing Fragment Tests Blending Framebuffer Fragment Processing - So far,
Max scene used to generate the image from the second pdf in this tutorial.
Tutorial covers creating vector drawings from a 3ds max scene and methods for compositing these drawings back into a rendering. Rendering set up is based of the lighting set up from the mental ray/skylight/mr
Clipping & Culling. Lecture 11 Spring Trivial Rejection Outcode Clipping Plane-at-a-time Clipping Backface Culling
Clipping & Culling Trivial Rejection Outcode Clipping Plane-at-a-time Clipping Backface Culling Lecture 11 Spring 2015 What is Clipping? Clipping is a procedure for spatially partitioning geometric primitives,
Overview: Ray Tracing & The Perspective Projection Pipeline
Overview: Ray Tracing & The Perspective Projection Pipeline Lecture #2 Thursday, August 28 2014 About this Lecture! This is an overview.! Think of it as a quick tour moving fast.! Some parts, e.g. math,
Advanced 3D Game Programming with DirectX* 10.0
Advanced 3D Game Programming with DirectX* 10.0 Peter Walsh Wordware Publishing, Inc. Acknowledgments Introduction xiii xv Chapter I Windows I A Word about Windows I Hungarian Notation 3 General Windows
Render-To-Texture Caching. D. Sim Dietrich Jr.
Render-To-Texture Caching D. Sim Dietrich Jr. What is Render-To-Texture Caching? Pixel shaders are becoming more complex and expensive Per-pixel shadows Dynamic Normal Maps Bullet holes Water simulation
Graphics Performance Optimisation. John Spitzer Director of European Developer Technology
Graphics Performance Optimisation John Spitzer Director of European Developer Technology Overview Understand the stages of the graphics pipeline Cherchez la bottleneck Once found, either eliminate or balance
CEng 477 Introduction to Computer Graphics Fall
Illumination Models and Surface-Rendering Methods CEng 477 Introduction to Computer Graphics Fall 2007 2008 Illumination Models and Surface Rendering Methods In order to achieve realism in computer generated
Scalar Field Visualization I
Scalar Field Visualization I What is a Scalar Field? The approximation of certain scalar function in space f(x,y,z). Image source: blimpyb.com f What is a Scalar Field? The approximation of certain scalar
Screen Space Ambient Occlusion TSBK03: Advanced Game Programming
Screen Space Ambient Occlusion TSBK03: Advanced Game Programming August Nam-Ki Ek, Oscar Johnson and Ramin Assadi March 5, 2015 This project report discusses our approach of implementing Screen Space Ambient
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.
Texture Mapping Part 1
Texture Mapping Part 1 The Quest for Visual Realism Why Texture Map? How to do it How to do it right Spilling the beans Assignment #3 Lecture 17 Comp 236 Spring 2005 3/21/2005 Lecture 17 2 Decal Textures
CS5620 Intro to Computer Graphics
So Far wireframe hidden surfaces Next step 1 2 Light! Need to understand: How lighting works Types of lights Types of surfaces How shading works Shading algorithms What s Missing? Lighting vs. Shading
Dominic Filion, Senior Engineer Blizzard Entertainment. Rob McNaughton, Lead Technical Artist Blizzard Entertainment
Dominic Filion, Senior Engineer Blizzard Entertainment Rob McNaughton, Lead Technical Artist Blizzard Entertainment Screen-space techniques Deferred rendering Screen-space ambient occlusion Depth of Field
The Rendering Pipeline (1)
The Rendering Pipeline (1) Alessandro Martinelli alessandro.martinelli@unipv.it 30 settembre 2014 The Rendering Pipeline (1) Rendering Architecture First Rendering Pipeline Second Pipeline: Illumination
THE DEPTH-BUFFER VISIBLE SURFACE ALGORITHM
On-Line Computer Graphics Notes THE DEPTH-BUFFER VISIBLE SURFACE ALGORITHM Kenneth I. Joy Visualization and Graphics Research Group Department of Computer Science University of California, Davis To accurately
Could you make the XNA functions yourself?
1 Could you make the XNA functions yourself? For the second and especially the third assignment, you need to globally understand what s going on inside the graphics hardware. You will write shaders, which
Surface Graphics. 200 polys 1,000 polys 15,000 polys. an empty foot. - a mesh of spline patches:
Surface Graphics Objects are explicitely defined by a surface or boundary representation (explicit inside vs outside) This boundary representation can be given by: - a mesh of polygons: 200 polys 1,000
CSM Scrolling: An acceleration technique for the rendering of cascaded shadow maps
CSM Scrolling: An acceleration technique for the rendering of cascaded shadow maps Abstract This talk will explain how a bitmap-scrolling technique can be combined with a shadow map caching scheme to significantly
Lecture 25: Board Notes: Threads and GPUs
Lecture 25: Board Notes: Threads and GPUs Announcements: - Reminder: HW 7 due today - Reminder: Submit project idea via (plain text) email by 11/24 Recap: - Slide 4: Lecture 23: Introduction to Parallel
Enabling immersive gaming experiences Intro to Ray Tracing
Enabling immersive gaming experiences Intro to Ray Tracing Overview What is Ray Tracing? Why Ray Tracing? PowerVR Wizard Architecture Example Content Unity Hybrid Rendering Demonstration 3 What is Ray
Image Morphing. The user is responsible for defining correspondences between features Very popular technique. since Michael Jackson s clips
Image Morphing Image Morphing Image Morphing Image Morphing The user is responsible for defining correspondences between features Very popular technique since Michael Jackson s clips Morphing Coordinate
Introduction. What s New in This Edition
Introduction Welcome to the fourth edition of the OpenGL SuperBible. For more than ten years, we have striven to provide the world s best introduction to not only OpenGL, but 3D graphics programming in
CSE 167: Lecture #8: GLSL. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012
CSE 167: Introduction to Computer Graphics Lecture #8: GLSL Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Homework project #4 due Friday, November 2 nd Introduction:
Geometry Shader - Silhouette edge rendering
Geometry Shader - Silhouette edge rendering Introduction This paper will describe the process of making an outline shader, using the Geometry Shader. The shader is designed for DirectX10 applications (and
Topic 0. Introduction: What Is Computer Graphics? CSC 418/2504: Computer Graphics EF432. Today s Topics. What is Computer Graphics?
EF432 Introduction to spagetti and meatballs CSC 418/2504: Computer Graphics Course web site (includes course information sheet): http://www.dgp.toronto.edu/~karan/courses/418/ Instructors: L0101, W 12-2pm
Maya tutorial. 1 Camera calibration
Maya tutorial In this tutorial we will augment a real scene with virtual objects. This tutorial assumes that you have downloaded the file Maya.zip from the course web page and extracted it somewhere. 1
CSE 690: GPGPU. Lecture 2: Understanding the Fabric - Intro to Graphics. Klaus Mueller Stony Brook University Computer Science Department
CSE 690: GPGPU Lecture 2: Understanding the Fabric - Intro to Graphics Klaus Mueller Stony Brook University Computer Science Department Klaus Mueller, Stony Brook 2005 1 Surface Graphics Objects are explicitely
Graphics Processing Unit Architecture (GPU Arch)
Graphics Processing Unit Architecture (GPU Arch) With a focus on NVIDIA GeForce 6800 GPU 1 What is a GPU From Wikipedia : A specialized processor efficient at manipulating and displaying computer graphics
Advanced Texture-Mapping Curves and Curved Surfaces. Pre-Lecture Business. Texture Modes. Texture Modes. Review quiz
Advanced Texture-Mapping Curves and Curved Surfaces Pre-ecture Business loadtexture example midterm handed bac, code posted (still) get going on pp3! more on texturing review quiz CS148: Intro to CG Instructor:
Computer Graphics. Lecture 9 Hidden Surface Removal. Taku Komura
Computer Graphics Lecture 9 Hidden Surface Removal Taku Komura 1 Why Hidden Surface Removal? A correct rendering requires correct visibility calculations When multiple opaque polygons cover the same screen
Practical Shadows. Outline
Practical Shadows Out of the demo, into the engine Tom Forsyth RAD Game Tools Outline Shadow volumes (stencil shadows) Fairly brief covered well elsewhere Shadow buffers Scene management of shadow buffers
Computer Graphics and Visualization. What is computer graphics?
CSCI 120 Computer Graphics and Visualization Shiaofen Fang Department of Computer and Information Science Indiana University Purdue University Indianapolis What is computer graphics? Computer graphics
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
To start, open or build a simple solid model. The bracket from a previous exercise will be used for demonstration purposes.
Render, Lights, and Shadows The Render programs are techniques using surface shading, surface tones, and surface materials that are then presented in a scene with options for lights and shadows. Modifications
Graphics Hardware. Instructor Stephen J. Guy
Instructor Stephen J. Guy Overview What is a GPU Evolution of GPU GPU Design Modern Features Programmability! Programming Examples Overview What is a GPU Evolution of GPU GPU Design Modern Features Programmability!
Raycasting. Chapter Raycasting foundations. When you look at an object, like the ball in the picture to the left, what do
Chapter 4 Raycasting 4. Raycasting foundations When you look at an, like the ball in the picture to the left, what do lamp you see? You do not actually see the ball itself. Instead, what you see is the
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
9. Visible-Surface Detection Methods
9. Visible-Surface Detection Methods More information about Modelling and Perspective Viewing: Before going to visible surface detection, we first review and discuss the followings: 1. Modelling Transformation:
Lecture 2. Shaders, GLSL and GPGPU
Lecture 2 Shaders, GLSL and GPGPU Is it interesting to do GPU computing with graphics APIs today? Lecture overview Why care about shaders for computing? Shaders for graphics GLSL Computing with shaders
CS602 Midterm Subjective Solved with Reference By WELL WISHER (Aqua Leo)
CS602 Midterm Subjective Solved with Reference By WELL WISHER (Aqua Leo) www.vucybarien.com Question No: 1 What are the two focusing methods in CRT? Explain briefly. Page no : 26 1. Electrostatic focusing
28 SAMPLING. ALIASING AND ANTI-ALIASING
28 SAMPLING. ALIASING AND ANTI-ALIASING Textbook: 16 UGRAD.CS.UBC.CA/~CS314 Alla Sheffer, 2016 ALIASING & ANTI-ALIASING Adobe, inc., https://helpx.adobe.com/photoshop/key concepts/aliasing anti aliasing.html
CS450/550. Pipeline Architecture. Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012
CS450/550 Pipeline Architecture Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012 0 Objectives Learn the basic components of a graphics system Introduce the OpenGL pipeline
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
Soft Particles. Tristan Lorach
Soft Particles Tristan Lorach tlorach@nvidia.com January 2007 Document Change History Version Date Responsible Reason for Change 1 01/17/07 Tristan Lorach Initial release January 2007 ii Abstract Before:
Cornell CS4620 Fall 2011!Lecture Kavita Bala (with previous instructors James/Marschner) Cornell CS4620 Fall 2011!Lecture 1.
Computer graphics: The study of creating, manipulating, and using visual images in the computer. CS4620/5620: Introduction to Computer Graphics Professor: Kavita Bala 1 2 4 6 Or, to paraphrase Ken Perlin...
3DS Max Tutorial Surface, Shell, Editable Mesh and Mesh Smooth.
3DS Max Tutorial Surface, Shell, Editable Mesh and Mesh Smooth. This is a tutorial that shows how to use the 3D Studio Max modifiers Surface and Shell and how to work with meshes. To start with you really
Character Modeling IAT 343 Lab 6. Lanz Singbeil
Character Modeling IAT 343 Lab 6 Modeling Using Reference Sketches Start by creating a character sketch in a T-Pose (arms outstretched) Separate the sketch into 2 images with the same pixel height. Make
Photorealism: Ray Tracing
Photorealism: Ray Tracing Reading Assignment: Chapter 13 Local vs. Global Illumination Local Illumination depends on local object and light sources only Global Illumination at a point can depend on any
Chapter 3. Texture mapping. Learning Goals: Assignment Lab 3: Implement a single program, which fulfills the requirements:
Chapter 3 Texture mapping Learning Goals: 1. To understand texture mapping mechanisms in VRT 2. To import external textures and to create new textures 3. To manipulate and interact with textures 4. To
White Paper. Solid Wireframe. February 2007 WP _v01
White Paper Solid Wireframe February 2007 WP-03014-001_v01 White Paper Document Change History Version Date Responsible Reason for Change _v01 SG, TS Initial release Go to sdkfeedback@nvidia.com to provide
CSE328 Fundamentals of Computer Graphics: Concepts, Theory, Algorithms, and Applications
CSE328 Fundamentals of Computer Graphics: Concepts, Theory, Algorithms, and Applications Hong Qin Stony Brook University (SUNY at Stony Brook) Stony Brook, New York 11794-4400 Tel: (631)632-8450; Fax: