Projective Textures & Shadow Mapping. Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology

Save this PDF as:

Size: px
Start display at page:

Download "Projective Textures & Shadow Mapping. Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology"

Transcription

1 Projective Textures & Shadow Mapping Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology

2 What is projective texturing? An intuition for projective texturing The slide projector analogy Source: Wolfgang Heidrich [99] From Stanford CS448A: Real-Time Graphics Architectures lecture 11; see graphics.stanford.edu/courses/cs448a-01-fall 2

3 Slide projector - different locations Images from C. Everitt, Projective Texture Mapping, 3

4 4 Texture matrix s t r q " # % & = " # % & Light Frustrum ( projection) Matrix " # % & Light View (lookat) Matrix " # % & Modeling Matrix " # % & x 0 y 0 z 0 w 0 " # % & From The Cg Tutorial, p. 252.

5 ProjectTexture setup Shader "GPUXX/ProjectTexture" {! Properties {! _BaseTex ("Base RGB) Gloss (A)", 2D) = "white" {}! _ProjTex ("Base RGB)", 2D) = "white" {}! _SpotPower ("Spotlightiness", Range(0.01,1)) = 0.7! }!!!!... uniform sampler2d _BaseTex;! uniform float4 _BaseTex_ST;! uniform sampler2d _ProjTex;! uniform float _SpotPower;!! uniform float4x4 _myprojectormatrix;! uniform float3 _spotlightdir;!

6 ProjectTexture structures struct a2v {! float4 v: POSITION;! float3 n: NORMAL;! float2 tc: TEXCOORD0;! };!! struct v2f {! float4 sv: SV_POSITION;! float2 tc: TEXCOORD0;! float3 vworldpos: TEXCOORD1;! float3 nworld: TEXCOORD2;! float4 vprojected: TEXCOORD3;! };!

7 ProjectTexture vertex program v2f vert_projecttexture(a2v input) {! v2f output;! output.sv = mul(unity_matrix_mvp, input.v);! output.vworldpos = mul(_object2world, input.v).xyz;! // To transform normals, we want to use the inverse! // transpose of upper left 3x3! // Putting input.n in first argument is like! // doing trans((float3x3)_world2object) * input.n;! output.nworld =! normalize(mul(input.n, (float3x3) _World2Object));! output.vprojected = mul(_myprojectormatrix,! float4(output.vworldpos,1));! output.tc = TRANSFORM_TEX(input.tc, _BaseTex);! return output;! }!

8 ProjectTexture fragment program float4 frag_projecttexture(v2f input) : COLOR {! // Only use this shader with a point light! float3 lightdir = normalize(_worldspacelightpos0.xyz - input.vworldpos * _WorldSpaceLightPos0.w);! float3 eyedir =! normalize(_worldspacecamerapos.xyz - input.vworldpos);! // Renormalizing because the GPUs interpolator! // doesnt know this is a unit vector! float3 n = normalize(input.nworld);! float3 diff_almost =! unity_lightcolor0.rgb * max(0, dot(n, lightdir));! float spotlighteffect =! pow(dot(normalize(_spotlightdir), -lightdir),_spotpower * 128.0);! diff_almost *= spotlighteffect;! diff_almost *= tex2dproj(_projtex,input.vprojected);!! float4 base = tex2d(_basetex, input.tc);! float3 output =! (diff_almost + UNITY_LIGHTMODEL_AMBIENT.rgb) * base.rgb;! return(float4(output,1));! }!

9 C# script to set up projector matrix using UnityEngine;! using System.Collections;!! [ExecuteInEditMode]!! public class SetupTextureProjection : MonoBehviour {!! private Matrix4x4 projectormatrix;! private Matrix4x4 offsetmatrix;! private Camera mycamera;!! void Start () {! Vector3 halfs = 0.5f * Vector3.one;! offsetmatrix = Matrix4x4.TRS(halfs, Quaternion.identity, halfs);! mycamera = GetComponent<Camera> ();! }!! void Update () {! projectormatrix = offsetmatrix * mycamera.projectionmatrix *! mycamera.worldtocameramatrix;! // Quick & dirty; it would generally be better to set properties! // in specific materials! Shader.SetGlobalMatrix("_MyProjectorMatrix", projectormatrix);! Shader.SetGlobalVector("_spotlightDir", transform.forward);! }! }!

10 Watch out for reverse projection! Images from C. Everitt, Projective Texture Mapping, developer.nvidia.com/object/projective_texture_mapping.html 10

11 Dramatic shadow in 2K Games BioShock From 11

12 The shadow mapping concept (1) Depth testing from the light s point-of-view Two pass algorithm First, render depth buffer from the light s point-of-view The result is a depth map or shadow map Essentially a 2D function indicating the depth of the closest pixels to the light This depth map is used in the second pass 12

13 The shadow mapping concept (2) Shadow determination with the depth map Second, render scene from the eye s point-of-view For each rasterized fragment Determine fragment s XYZ position relative to the light This light position should be setup to match the frustum used to create the depth map Compare the depth value at light position XY in the depth map to fragment s light position Z 13

14 The shadow mapping concept (3) The Shadow Map Comparison Two values A = Z value from depth map at fragment s light XY position B = Z value of fragment s XYZ light position If B is greater than A, then there must be something closer to the light than the fragment, implies fragment is shadowed If A and B are approximately equal, implies fragment is lit 14

15 Shadow mapping: 2D illustration (1) The A < B shadowed fragment case depth map image plane light source depth map Z = A eye position fragments light Z = B eye view image plane, a.k.a. the frame buffer 15

16 Shadow mapping: 2D illustration (2) The A B unshadowed fragment case depth map image plane light source depth map Z = A eye position fragments light Z = B eye view image plane, a.k.a. the frame buffer 16

17 Shadow mapping: 2D illustration (3) Note image precision mismatch! The depth map could be at a different resolution from the framebuffer This mismatch can lead to artifacts 17

18 Visualizing shadow mapping (1) A fairly complex scene with shadows the point light source 18

20 Visualizing shadow mapping (3) The scene from the light s point-of-view FYI: from the eyes point-of-view again 20

21 Visualizing shadow mapping (4) The depth buffer from the light s point-of-view FYI: from the lights point-of-view again 21

22 Visualizing shadow mapping (5) Projecting the depth map onto the eye s view FYI: depth map for light s point-of-view again 22

23 Visualizing shadow mapping (6) Projecting light s planar distance onto eye s view 23

24 Visualizing shadow mapping (7) Comparing light distance to light depth map Green is where the light planar distance and the light depth map are approximately equal Non-green is where shadows should be 24

25 Visualizing shadow mapping (8) Scene with shadows Notice how specular highlights never appear in shadows Notice how curved surfaces cast shadows on each other 25

26 Depth map bias issues Too little bias, everything begins to shadow Too much bias, shadow starts too far back Just right 26

27 Shadow mapping: filtering example GL_NEAREST: blocky GL_LINEAR: antialiased edges Low shadow map resolution used to heighten filtering artifacts 27

28 Projective texturing with spotlight shadows Use a spotlight-style projected texture to give shadow maps a spotlight falloff 28

Rasterization Overview

Rendering Overview The process of generating an image given a virtual camera objects light sources Various techniques rasterization (topic of this course) raytracing (topic of the course Advanced Computer

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

Textures. Texture coordinates. Introduce one more component to geometry

Texturing & Blending Prof. Aaron Lanterman (Based on slides by Prof. Hsien-Hsin Sean Lee) School of Electrical and Computer Engineering Georgia Institute of Technology Textures Rendering tiny triangles

Shaders. Slide credit to Prof. Zwicker

Shaders Slide credit to Prof. Zwicker 2 Today Shader programming 3 Complete model Blinn model with several light sources i diffuse specular ambient How is this implemented on the graphics processor (GPU)?

CSE 167: Introduction to Computer Graphics Lecture #8: Textures. Jürgen P. Schulze, Ph.D. University of California, San Diego Spring Quarter 2016

CSE 167: Introduction to Computer Graphics Lecture #8: Textures Jürgen P. Schulze, Ph.D. University of California, San Diego Spring Quarter 2016 Announcements Project 2 due this Friday Midterm next Tuesday

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

CS294-13: Special Topics Lecture #8 Advanced Computer Graphics University of California, Berkeley Monday, 28 September 2009 Shadow and Environment Maps Lecture #8: Monday, 28 September 2009 Lecturer: Ravi

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

3D buzzwords. Adding programmability to the pipeline 6/7/16. Bandwidth Gravity of modern computer systems

Bandwidth Gravity of modern computer systems GPUs Under the Hood Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology The bandwidth between key components

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

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

COMP environment mapping Mar. 12, r = 2n(n v) v

Rendering mirror surfaces The next texture mapping method assumes we have a mirror surface, or at least a reflectance function that contains a mirror component. Examples might be a car window or hood,

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:

GPU Memory Model Adapted from: Aaron Lefohn University of California, Davis With updates from slides by Suresh Venkatasubramanian, University of Pennsylvania Updates performed by Gary J. Katz, University

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 Graphics Pipeline and OpenGL I: Transformations!

! The Graphics Pipeline and OpenGL I: Transformations! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 2! stanford.edu/class/ee267/!! Logistics Update! all homework submissions:

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!

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

The Making of Seemore WebGL. Will Eastcott, CEO, PlayCanvas

The Making of Seemore WebGL Will Eastcott, CEO, PlayCanvas 1 What is Seemore WebGL? A mobile-first, physically rendered game environment powered by HTML5 and WebGL 2 PlayCanvas: Powering Seemore WebGL

Mali Demos: Behind the Pixels. Stacy Smith

Mali Demos: Behind the Pixels Stacy Smith Mali Graphics: Behind the demos Mali Demo Team: Doug Day Stacy Smith (Me) Sylwester Bala Roberto Lopez Mendez PHOTOGRAPH UNAVAILABLE These days I spend more time

Supplement to Lecture 22

Supplement to Lecture 22 Programmable GPUs Programmable Pipelines Introduce programmable pipelines - Vertex shaders - Fragment shaders Introduce shading languages - Needed to describe shaders - RenderMan

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

Order Independent Transparency with Dual Depth Peeling. Louis Bavoil, Kevin Myers

Order Independent Transparency with Dual Depth Peeling Louis Bavoil, Kevin Myers Document Change History Version Date Responsible Reason for Change 1.0 February 9 2008 Louis Bavoil Initial release Abstract

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

Point-Based rendering on GPU hardware. Advanced Computer Graphics 2008

Point-Based rendering on GPU hardware Advanced Computer Graphics 2008 Outline Why use the GPU? Splat rasterization Image-aligned squares Perspective correct rasterization Splat shading Flat shading Gouroud

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

AGDC Per-Pixel Shading Sim Dietrich Goal Of This Talk The new features of Dx8 and the next generation of HW make huge strides in the area of Per-Pixel Shading Most developers have yet to adopt Per-Pixel

Methodology for Lecture. Importance of Lighting. Outline. Shading Models. Brief primer on Color. Foundations of Computer Graphics (Spring 2010)

Foundations of Computer Graphics (Spring 2010) CS 184, Lecture 11: OpenGL 3 http://inst.eecs.berkeley.edu/~cs184 Methodology for Lecture Lecture deals with lighting (teapot shaded as in HW1) Some Nate

Projection and viewing. Computer Graphics CSE 167 Lecture 4

Projection and viewing Computer Graphics CSE 167 Lecture 4 CSE 167: Computer Graphics Review: transformation from the object (or model) coordinate frame to the camera (or eye) coordinate frame Projection

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

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

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

CS4621/5621 Fall Computer Graphics Practicum Intro to OpenGL/GLSL

CS4621/5621 Fall 2015 Computer Graphics Practicum Intro to OpenGL/GLSL Professor: Kavita Bala Instructor: Nicolas Savva with slides from Balazs Kovacs, Eston Schweickart, Daniel Schroeder, Jiang Huang

2D graphics with WebGL

2D graphics with WebGL Some material contained here is adapted from the book s slides. September 7, 2015 (Dr. Mihail) 2D graphics September 7, 2015 1 / 22 Graphics Pipeline (Dr. Mihail) 2D graphics September

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

Announcements. Written Assignment 2 out (due March 8) Computer Graphics

Announcements Written Assignment 2 out (due March 8) 1 Advanced Ray Tracing (Recursive) Ray Tracing Antialiasing Motion Blur Distribution Ray Tracing Ray Tracing and Radiosity Assumptions Simple shading

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

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

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,

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

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

CPSC 314 LIGHTING AND SHADING UGRAD.CS.UBC.CA/~CS314 slide credits: Mikhail Bessmeltsev et al 1 THE RENDERING PIPELINE Vertices and attributes Vertex Shader Modelview transform Per-vertex attributes Vertex

Volume Shadows Tutorial Nuclear / the Lab

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 Graphics Pipeline and OpenGL III: OpenGL Shading Language (GLSL 1.10)!

! The Graphics Pipeline and OpenGL III: OpenGL Shading Language (GLSL 1.10)! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 4! stanford.edu/class/ee267/! Updates! for 24h lab access:

Texture Mapping. CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science

Texture Mapping CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science 1 Objectives Introduce Mapping Methods - Texture Mapping - Environment Mapping - Bump Mapping Consider

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

3D graphics, raster and colors CS312 Fall 2010

Computer Graphics 3D graphics, raster and colors CS312 Fall 2010 Shift in CG Application Markets 1989-2000 2000 1989 3D Graphics Object description 3D graphics model Visualization 2D projection that simulates

Bringing AAA graphics to mobile platforms. Niklas Smedberg Senior Engine Programmer, Epic Games

Bringing AAA graphics to mobile platforms Niklas Smedberg Senior Engine Programmer, Epic Games Who Am I A.k.a. Smedis Platform team at Epic Games Unreal Engine 15 years in the industry 30 years of programming

CS GPU and GPGPU Programming Lecture 7: Shading and Compute APIs 1. Markus Hadwiger, KAUST

CS 380 - GPU and GPGPU Programming Lecture 7: Shading and Compute APIs 1 Markus Hadwiger, KAUST Reading Assignment #4 (until Feb. 23) Read (required): Programming Massively Parallel Processors book, Chapter

1 of 8 11/25/ :42 PM

1 of 8 11/25/2008 12:42 PM ART 484 - UV Mapping a Suitcase This page is designed as a supplement to lectures. It is not intended to be a stand alone tutorial. The task is to recreate this old suitcase.

GLSL Applications: 2 of 2

Administrivia GLSL Applications: 2 of 2 Patrick Cozzi University of Pennsylvania CIS 565 - Spring 2011 Assignment 2 due today 11:59pm on Blackboard Assignment 3 handed out today Due Wednesday, 02/09 at

Shader Series Primer: Fundamentals of the Programmable Pipeline in XNA Game Studio Express

Shader Series Primer: Fundamentals of the Programmable Pipeline in XNA Game Studio Express Level: Intermediate Area: Graphics Programming Summary This document is an introduction to the series of samples,

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

Shaders (some slides taken from David M. course)

Shaders (some slides taken from David M. course) Doron Nussbaum Doron Nussbaum COMP 3501 - Shaders 1 Traditional Rendering Pipeline Traditional pipeline (older graphics cards) restricts developer to texture

From Vertices to Fragments: Rasterization. Reading Assignment: Chapter 7. Special memory where pixel colors are stored.

From Vertices to Fragments: Rasterization Reading Assignment: Chapter 7 Frame Buffer Special memory where pixel colors are stored. System Bus CPU Main Memory Graphics Card -- Graphics Processing Unit (GPU)

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/

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

Computer Graphics and Visualization. Graphics Systems and Models

UNIT -1 Graphics Systems and Models 1.1 Applications of computer graphics: Display Of Information Design Simulation & Animation User Interfaces 1.2 Graphics systems A Graphics system has 5 main elements:

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

Objectives Shading in OpenGL Introduce the OpenGL shading methods - per vertex shading vs per fragment shading - Where to carry out Discuss polygonal shading - Flat - Smooth - Gouraud CITS3003 Graphics

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

Lecture 10: Shading Languages. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Lecture 10: Shading Languages Kayvon Fatahalian CMU 15-869: Graphics and Imaging Architectures (Fall 2011) Review: role of shading languages Renderer handles surface visibility tasks - Examples: clip,

Two basic types: image-precision and object-precision. Image-precision For each pixel, determine which object is visable Requires np operations

walters@buffalo.edu CSE 480/580 Lecture 21 Slide 1 Visible-Surface Determination (Hidden Surface Removal) Computationaly expensive Two basic types: image-precision and object-precision For n objects and

Computergraphics Exercise 15/ Shading & Texturing

Computergraphics Exercise 15/16 3. Shading & Texturing Jakob Wagner for internal use only Shaders Vertex Specification define vertex format & data in model space Vertex Processing transform to clip space

Parallax Occlusion in Direct3D 11

Parallax Occlusion in Direct3D 11 Frank Luna February 11, 2012 www.d3dcoder.net Introduction to 3D Game Programming with DirectX 11 has a chapter explaining normal mapping and displacement mapping (implemented

WebGL and GLSL Basics. CS559 Fall 2015 Lecture 10 October 6, 2015

WebGL and GLSL Basics CS559 Fall 2015 Lecture 10 October 6, 2015 Last time Hardware Rasterization For each point: Compute barycentric coords Decide if in or out.7,.7, -.4 1.1, 0, -.1.9,.05,.05.33,.33,.33

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

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

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:

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

Parallel Triangle Rendering on a Modern GPU

Lecture 27: Parallel Triangle Rendering on a Modern GPU Parallel Computer Architecture and Programming CMU 15-418/15-618, Spring 2015 Let s draw a triangle on the screen Question 1: what pixels does the

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

() Illumination and Shading Dr. Ayman Eldeib Lighting So given a 3-D triangle and a 3-D viewpoint, we can set the right pixels But what color should those pixels be? If we re attempting to create a realistic

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

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

Fast Third-Order Texture Filtering

Chapter 20 Fast Third-Order Texture Filtering Christian Sigg ETH Zurich Markus Hadwiger VRVis Research Center Current programmable graphics hardware makes it possible to implement general convolution filters

CSCI 420 Computer Graphics Lecture 4 Shaders Jernej Barbic University of Southern California Shading Languages GLSL Vertex Array Objects Vertex Shader Fragment Shader [Angel Ch. 1, 2, A] Introduction 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

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

General Purpose Computation (CAD/CAM/CAE) on the GPU (a.k.a. Topics in Manufacturing)

ME 290-R: General Purpose Computation (CAD/CAM/CAE) on the GPU (a.k.a. Topics in Manufacturing) Sara McMains Spring 2009 Performance: Bottlenecks Sources of bottlenecks CPU Transfer Processing Rasterizer

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:

11 - Bump Mapping. Bump-Mapped Objects. Bump-Mapped Objects. Bump-Mapped Objects. Limitations Of Texture Mapping. Bumps: Perturbed Normals

CSc 155 Advanced Compter Graphics Limitations Of extre Mapping extre mapping paints srfaces o extre image is typically fixed Some characteristics are difficlt to textre o Roghness, Wrinkles extre illmination

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

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

CS452/552; EE465/505. Image Formation

CS452/552; EE465/505 Image Formation 1-15-15 Outline! Image Formation! Introduction to WebGL, continued Draw a colored triangle using WebGL Read: Angel, Chapters 2 & 3 Homework #1 will be available on

GLSL 1: Basics. J.Tumblin-Modified SLIDES from:

GLSL 1: Basics J.Tumblin-Modified SLIDES from: Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts Director, Arts Technology Center University of New Mexico and

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

Shadows and Texture Mapping Eric C. McCreath School of Computer Science The Australian National University ACT 0200 Australia ericm@cs.anu.edu.au Overview 2 Shadows Textures Importance Co ordinates OpenGL

Drawing Fast The Graphics Pipeline

Drawing Fast The Graphics Pipeline CS559 Fall 2016 Lectures 10 & 11 October 10th & 12th, 2016 1. Put a 3D primitive in the World Modeling 2. Figure out what color it should be 3. Position relative to the

- 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,

CSE 167: Lecture #17: Procedural Modeling. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011

CSE 167: Introduction to Computer Graphics Lecture #17: Procedural Modeling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011 Announcements Important dates: Final project outline

Hardware Shading: State-of-the-Art and Future Challenges

Hardware Shading: State-of-the-Art and Future Challenges Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,, Germany Graphics Hardware Hardware is now fast enough for complex geometry for

Technical Game Development II. Reference: Rost, OpenGL Shading Language, 2nd Ed., AW, 2006 The Orange Book Also take CS 4731 Computer Graphics

Shader Programming Technical Game Development II Professor Charles Rich Computer Science Department rich@wpi.edu Reference: Rost, OpenGL Shading Language, 2nd Ed., AW, 2006 The Orange Book Also take CS

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