CS5625 Interactive Computer Graphics Steve Marschner Spring 2019 01 - - PowerPoint PPT Presentation

cs5625 interactive computer graphics
SMART_READER_LITE
LIVE PREVIEW

CS5625 Interactive Computer Graphics Steve Marschner Spring 2019 01 - - PowerPoint PPT Presentation

CS5625 Interactive Computer Graphics Steve Marschner Spring 2019 01 Introduction CD Projekt RED The Witcher 3 (2015) Naughty Dog The Last of Us (Remastered, 2014) Rockstar Games Red Dead Redemption 2 (2018) Valve Portal (2007)


slide-1
SLIDE 1

CS5625 Interactive Computer Graphics

Steve Marschner Spring 2019 01 Introduction

slide-2
SLIDE 2

CD Projekt RED—The Witcher 3 (2015)

slide-3
SLIDE 3

Naughty Dog—The Last of Us (Remastered, 2014)

slide-4
SLIDE 4

Rockstar Games—Red Dead Redemption 2 (2018)

slide-5
SLIDE 5

Valve—Portal (2007)

slide-6
SLIDE 6

Ubisoft—Child of Light (2014)

slide-7
SLIDE 7

Oculus VR

slide-8
SLIDE 8

Oculus VR

slide-9
SLIDE 9

Oculus VR

slide-10
SLIDE 10

NASA

slide-11
SLIDE 11

[John C. Stone, UIUC]

slide-12
SLIDE 12

University of Calgary

slide-13
SLIDE 13

Autodesk RevIt Architecture 2015

slide-14
SLIDE 14
slide-15
SLIDE 15

How To Draw a Triangle, c. 1985

Transform vertices to screen coordinates Find all the pixels covered by the triangle Fill all the pixels with the triangle’s color

slide-16
SLIDE 16

How To Draw a Triangle, c. 1988

Perform lighting calculations to find vertex colors Transform vertices to screen coordinates Find all the pixels covered by the triangle Fill all unoccluded pixels with the interpolated vertex colors
 and depth

slide-17
SLIDE 17

How To Draw a Triangle, c. 1992

Perform lighting calculations to find vertex colors Transform vertices to screen coordinates Find all the pixels covered by the triangle Look up a texture map value Fill all unoccluded pixels with a function of the texture and the interpolated vertex colors, as well as the depth

slide-18
SLIDE 18

How To Draw a Triangle, c. 1999

Perform elaborate lighting calculations to find vertex colors Transform vertices to screen coordinates Find all the pixels covered by the triangle Look up a value from one or more 1D, 2D, or 3D texture maps Fill all unoccluded pixels with a complicated, adjustable function of the textures and the interpolated vertex colors, as well as the depth

slide-19
SLIDE 19

Pixar—Ratatouille (2007)

slide-20
SLIDE 20

How To Draw a Triangle in 2001

Execute a vertex program over all the vertices Find all the pixels covered by the triangle Execute a fragment program over all those pixels Fill all unoccluded pixels with the resulting color and depth

slide-21
SLIDE 21

How To Draw a Triangle in 2007

Execute a vertex program over all the vertices Execute a geometry program over all primitives Find all the pixels covered by the triangle Execute a fragment program over all those pixels Fill all unoccluded pixels with the resulting color and depth

slide-22
SLIDE 22

How To Draw a Triangle in 2010

Execute a vertex program over all the vertices Execute tesselation programs to refine primitives Execute a geometry program over refined primitives Find all the pixels covered by the triangle Execute a fragment program over all those pixels Fill all unoccluded pixels with the resulting color and depth

slide-23
SLIDE 23

How To Draw a Triangle in 2018

Execute a vertex program over all the vertices Execute tesselation programs to refine primitives Execute a geometry program over refined primitives Find all the pixels covered by the triangle Execute a fragment program over all those pixels Fill all unoccluded pixels with the resulting color and depth Integrate rasterized results with GPU ray tracing as needed

slide-24
SLIDE 24
slide-25
SLIDE 25
slide-26
SLIDE 26

Development of Hardware Capabilities

Workstation era

  • ’85–’87: transform and render flat-shaded points, lines, polygons (no z buffer)
  • ’88–’91: transform, light, and render smooth shaded polygons
  • ’92–: transform, light, and render texture-mapped, antialiased polygons

PC era

  • ’95–’98: render texture-mapped polygons
  • ’99–’00: transform, light, and render texture-mapped, antialiased polygons
  • ’01–’06: execute vertex and fragment shaders over antialiased polygons
  • ’07–’09: execute vertex, geometry, and fragment shaders over antialiased polygons
  • ’10–: execute vertex, geometry, tesselation, and fragment shaders over antialiased polygons

App Vertex Rasterize Fragment Blend Frame
 buffer Geom
 +Tess

slide-27
SLIDE 27

[Stewart & Lempel JPCS 2017]

slide-28
SLIDE 28

SGI RealityEngine Architecture (1992)

geometry board Command Processor Geometry Engines Fragment Generators Triangle Bus Image Engines display generator board System Bus

video

raster memory board raster memory board

Figure 1. Board-level block diagram of an intermediate configu- ration with 8 Geometry Engines on the geometry board, 2 raster memory boards, and a display generator board.

slide-29
SLIDE 29

SGI InfiniteReality Architecture (1996)

Fragment Generator Fragment Generator Fragment Generator Fragment Generator

Vertex Bus Image Engines

Geometry!Raster FIFO Geometry Engine Geometry Engine Geometry Engine Geometry Engine Geometry Distributor Host Interface Processor

Host System Bus

Geometry Board Raster Memory Board Raster Memory Board Raster Memory Board Raster Memory Board Display Generator Board De!Interleaver Display Channel Display Channel Display Channel Display Channel Display Channel Display Channel Display Channel Display Channel

slide-30
SLIDE 30

NVIDIA G70 Architecture (2005)

7800, shown in Figure 3.

[NVIDIA Corporation]

slide-31
SLIDE 31

[NVIDIA Corporation]

NVIDIA G80 “Tesla” Architecture (2007)

improving overall performance.

slide-32
SLIDE 32

AMD Radeon HD 2900 “TeraScale” Architecture (2007)

slide-33
SLIDE 33

NVIDIA GK104 “Kepler” Architecture (2012)

[NVIDIA Corporation]

slide-34
SLIDE 34

NVIDIA GM204 “Maxwell” Architecture (2014)

GTX 980’s memory clock is over 15% ’s cache is larger and more efficient than Kepler’s design, reducing the — feature a new SM that’s ’s Compared to Kepler’s scheduling logic, we’ve integrated a We’ve also Whereas Kepler’s SM shipped — —

[NVIDIA Corporation]

slide-35
SLIDE 35

NVIDIA GP100 “Pascal” Architecture (2016)

[NVIDIA Corporation] More general-purpose design

  • good performance for more datatypes
  • architecture driven by ML and sci comp as well as graphics
slide-36
SLIDE 36

NVIDIA GU102 “Turing” Architecture (2018)

[NVIDIA Corporation] Compute cores becoming more heterogeneous, ray tracing acceleration support

slide-37
SLIDE 37

slide courtesy of Kavita Bala, Cornell University

What is Graphics?

  • Generating images!
  • Create them

– Modeling – Animation – Rendering

  • Manipulate them

– Imaging

slide-38
SLIDE 38

slide courtesy of Kavita Bala, Cornell University

What is in 5625?

  • Generating images
  • Modern Graphics Pipeline
  • Create them

– Modeling – Animation – Rendering

  • Manipulate them

– Imaging

  • Focus on performance
slide-39
SLIDE 39

Modeling

slide-40
SLIDE 40

Subdivision Surfaces

slide-41
SLIDE 41

Kavita Bala, Cornell University

LOD: Level-of-Detail

slide-42
SLIDE 42

Kavita Bala, Cornell University

LOD: Level-of-Detail

slide-43
SLIDE 43

Animation

slide-44
SLIDE 44

Morph Targets

José Alves da Silva—Corlyorn Family (Vodafone campaign)

slide-45
SLIDE 45

Game Programming Wiki (gpwiki.org) Panozzo & Jacobson, libigl tutorial (libigl.github.io/libigl)

slide-46
SLIDE 46

Rendering

slide-47
SLIDE 47

slide courtesy of Kavita Bala, Cornell University

Rob Cook’s vases

Source: Cook, Torrance 1981

slide-48
SLIDE 48

slide courtesy of Kavita Bala, Cornell University

Texture Mapping

  • Bump Maps
  • Normal Maps
  • Environment Maps
  • Irradiance Maps
  • ….
slide-49
SLIDE 49

slide courtesy of Kavita Bala, Cornell University

Displacement Maps

slide-50
SLIDE 50

slide courtesy of Kavita Bala, Cornell University

Filtered Environment Mapping

  • Environment map radiance
  • Filter this map irradiance (diffuse lighting)
  • Fast diffuse and ambient (just a lookup, or eqn)
slide-51
SLIDE 51

slide courtesy of Kavita Bala, Cornell University

Shadow Algorithms

  • Crucial for spatial and depth perception
slide-52
SLIDE 52

slide courtesy of Kavita Bala, Cornell University

Shadow Maps

  • Introduced by Lance Williams (SIGGRAPH 1978)
  • Render scene from light’s view

– black is far, white is close

slide-53
SLIDE 53

slide courtesy of Kavita Bala, Cornell University

Shadow Volumes

  • Clever counting method using stencil buffer
  • Can cast shadows onto curved surfaces

Mark Kilgard, NVIDIA Inc.

slide-54
SLIDE 54

slide courtesy of Kavita Bala, Cornell University

Soft Shadows

  • Soft shadows appear more natural

– Hard to get soft shadows in hardware

slide-55
SLIDE 55

slide courtesy of Kavita Bala, Cornell University

Ambient Occlusion

slide-56
SLIDE 56

Imaging

slide-57
SLIDE 57

Modeling flare in a camera lens

Hullin et al. SIGGRAPH 2011

slide-58
SLIDE 58

slide courtesy of Kavita Bala, Cornell University

Anti Aliasing of textures

slide-59
SLIDE 59

slide courtesy of Kavita Bala, Cornell University

slide-60
SLIDE 60

Kavita Bala, Cornell University

Tone reproduction operator

slide-61
SLIDE 61

Modeling flare in the eye

Greger et al. SIGGRAPH 2005

slide-62
SLIDE 62

Projects

slide-63
SLIDE 63

CS 5625 Coursework

5 projects (optionally in pairs)

  • mostly implementation, some written
  • Primarily C++ and OpenGL
  • anticipated topics: shading, texturing, shadows, antialiasing/filtering, physics simulation

Midterm exam Final project (groups of 2–4)

  • project proposal
  • milestone presentations and evaluation
  • final project demos, presentations, writeup
slide-64
SLIDE 64

Sampling and filtering

slide-65
SLIDE 65

Texture antialiasing

slide-66
SLIDE 66

Shading

slide-67
SLIDE 67

Deferred shading

slide-68
SLIDE 68

Mesh animation

slide-69
SLIDE 69

Shadow Mapping

slide-70
SLIDE 70

Shadow Mapping

slide-71
SLIDE 71

Soft shadows

slide-72
SLIDE 72

Soft shadows

slide-73
SLIDE 73

Physics

slide-74
SLIDE 74

Final project examples


Spring 2015

slide-75
SLIDE 75

Natalie Diebold, Hani Altwaijry | Portal-ish

slide-76
SLIDE 76

Natalie Diebold, Hani Altwaijry | Portal-ish

slide-77
SLIDE 77

Natalie Diebold, Hani Altwaijry | Portal-ish

slide-78
SLIDE 78

Eridanus Collazo, John Carlos, Zeqiang Zhao | Solarcraft

slide-79
SLIDE 79

PICTURES

  • MOTION BLUR
  • LENS FLARE

Eridanus Collazo, John Carlos, Zeqiang Zhao | Solarcraft

slide-80
SLIDE 80

PICTURES

  • MOTION BLUR
  • LENS FLARE

Eridanus Collazo, John Carlos, Zeqiang Zhao | Solarcraft

slide-81
SLIDE 81

Victoria Dye, Joshua Reichler | White-Out 2k17: The Snowening

slide-82
SLIDE 82

Fight your way through the zombie fairies to rescue Orin!

Ari Karo, Christopher Yu, Jonathan Behrens, Jeremy Cytryn | Subterranean Arsonism

slide-83
SLIDE 83

Fight your way through the zombie fairies to rescue Orin!

Ari Karo, Christopher Yu, Jonathan Behrens, Jeremy Cytryn | Subterranean Arsonism

slide-84
SLIDE 84

Ari Karo, Christopher Yu, Jonathan Behrens, Jeremy Cytryn | Subterranean Arsonism

slide-85
SLIDE 85

About CS5625

Prereqs

  • introductory graphics course (e.g. 4620) or instructor permission

Dissemination

  • website www.cs.cornell.edu/Courses/cs5625
  • schedule (very much subject to change!)
  • announcements, updates
  • lecture slides, notes, readings
  • CMS
  • homeworks, lecture notes
  • Piazza
  • discussion, questions
slide-86
SLIDE 86

Academic Integrity

Don’t copy code from Web without careful attribution

  • small snippets of, e.g. OpenGL boilerplate OK with attribution

Collaboration only when projects/homeworks are with groups Always cite sources of code and ideas

  • think carefully about who and what contributed to your work
  • if you tell me what is going on, there is never any AI problem
slide-87
SLIDE 87

Recommended texts

Real-time Rendering

  • Akenine-Moller, Haines, Hoffman
  • available via library

Other books

  • many listed on website

Online resources

  • lots of them!
slide-88
SLIDE 88

Other Policies

Late policy

  • 5 free late days over the semester
  • in total over all assignments
  • not for the final project
  • Otherwise, 10% penalty per day for up to 5 days
  • after that, 0
slide-89
SLIDE 89

Final project

An interactive 3D game with fancy graphics Open ended, needs to have technically impressive results Ways to impress

  • rendering: shading, shadows, global illumination, …
  • modeling: splines, subdivision surfaces, procedural generation, …
  • animation: particle systems, character motion, collision detection, …
  • imaging: flare, antialiasing, …

Focus is on graphics, not gameplay