Getting fancy with texture mapping (Part 2) CS559 Spring Apr 2017

Similar documents
Practical Texturing (WebGL) CS559 Fall 2016 Lecture 20 November 7th 2016

Rasterization Overview

CS4620/5620: Lecture 14 Pipeline

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker

CS 354R: Computer Game Technology

Shadows. COMP 575/770 Spring 2013

Enabling immersive gaming experiences Intro to Ray Tracing

Graphics Performance Optimisation. John Spitzer Director of European Developer Technology

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

Rendering Objects. Need to transform all geometry then

Computergrafik. Matthias Zwicker. Herbst 2010

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Enhancing Traditional Rasterization Graphics with Ray Tracing. October 2015

PROFESSIONAL. WebGL Programming DEVELOPING 3D GRAPHICS FOR THE WEB. Andreas Anyuru WILEY. John Wiley & Sons, Ltd.

The Graphics Pipeline

Drawing Fast The Graphics Pipeline

Last Time. Why are Shadows Important? Today. Graphics Pipeline. Clipping. Rasterization. Why are Shadows Important?

Drawing Fast The Graphics Pipeline

Enhancing Traditional Rasterization Graphics with Ray Tracing. March 2015

Pipeline Operations. CS 4620 Lecture 14

GeForce4. John Montrym Henry Moreton

Shaders. Slide credit to Prof. Zwicker

The Rasterization Pipeline

Texture Mapping II. Light maps Environment Maps Projective Textures Bump Maps Displacement Maps Solid Textures Mipmaps Shadows 1. 7.

For Intuition about Scene Lighting. Today. Limitations of Planar Shadows. Cast Shadows on Planar Surfaces. Shadow/View Duality.

WebGL and GLSL Basics. CS559 Fall 2016 Lecture 14 October

Computer Graphics (CS 543) Lecture 10: Soft Shadows (Maps and Volumes), Normal and Bump Mapping

DEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/

Course Recap + 3D Graphics on Mobile GPUs

Drawing Fast The Graphics Pipeline

Pipeline Operations. CS 4620 Lecture 10

Dual-Paraboloid Shadow Mapping. A paper by Stefan Brabec, Thomas Annen, Hans-Peter Seidel Presented By Patrick Wouterse, Selmar Kok

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

Last Time. Reading for Today: Graphics Pipeline. Clipping. Rasterization

Game Architecture. 2/19/16: Rasterization

CS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside

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

Graphics Processing Unit Architecture (GPU Arch)

EECS 487: Interactive Computer Graphics

TSBK03 Screen-Space Ambient Occlusion

Real-Time Shadows. MIT EECS 6.837, Durand and Cutler

CS 4620 Program 3: Pipeline

Lecture 17: Shadows. Projects. Why Shadows? Shadows. Using the Shadow Map. Shadow Maps. Proposals due today. I will mail out comments

Real-Time Shadows. Last Time? Today. Why are Shadows Important? Shadows as a Depth Cue. For Intuition about Scene Lighting

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

Real-Time Shadows. Last Time? Textures can Alias. Schedule. Questions? Quiz 1: Tuesday October 26 th, in class (1 week from today!

Models and Architectures

Game Graphics & Real-time Rendering

Game Technology. Lecture Physically Based Rendering. Dipl-Inform. Robert Konrad Polona Caserman, M.Sc.

CS 381 Computer Graphics, Fall 2008 Midterm Exam Solutions. The Midterm Exam was given in class on Thursday, October 23, 2008.

CS 464 Review. Review of Computer Graphics for Final Exam

CS451Real-time Rendering Pipeline

Real-Time Shadows. Last Time? Schedule. Questions? Today. Why are Shadows Important?

Computer Graphics Shadow Algorithms

CS452/552; EE465/505. Clipping & Scan Conversion

Scanline Rendering 2 1/42

The Rasterization Pipeline

Shadow Techniques. Sim Dietrich NVIDIA Corporation

Optimizing and Profiling Unity Games for Mobile Platforms. Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June

Spring 2009 Prof. Hyesoon Kim

Spring 2011 Prof. Hyesoon Kim

OpenGl Pipeline. triangles, lines, points, images. Per-vertex ops. Primitive assembly. Texturing. Rasterization. Per-fragment ops.

TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students)

Rendering approaches. 1.image-oriented. 2.object-oriented. foreach pixel... 3D rendering pipeline. foreach object...

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Deferred Rendering Due: Wednesday November 15 at 10pm

CS452/552; EE465/505. Shadow Mapping in WebGL

C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

GPU Memory Model Overview

X. GPU Programming. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter X 1

Shadows in the graphics pipeline

CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015

Real - Time Rendering. Pipeline optimization. Michal Červeňanský Juraj Starinský

COMP 4801 Final Year Project. Ray Tracing for Computer Graphics. Final Project Report FYP Runjing Liu. Advised by. Dr. L.Y.

CS 498 VR. Lecture 19-4/9/18. go.illinois.edu/vrlect19

Introduction to Computer Graphics with WebGL

Z-Buffer hold pixel's distance from camera. Z buffer

Performance Analysis and Culling Algorithms

Lecture 2. Shaders, GLSL and GPGPU

Ciril Bohak. - INTRODUCTION TO WEBGL

Grafica Computazionale: Lezione 30. Grafica Computazionale. Hiding complexity... ;) Introduction to OpenGL. lezione30 Introduction to OpenGL

Ambien Occlusion. Lighting: Ambient Light Sources. Lighting: Ambient Light Sources. Summary

Game Graphics Programmers

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

CS 498 VR. Lecture 18-4/4/18. go.illinois.edu/vrlect18

Case 1:17-cv SLR Document 1-3 Filed 01/23/17 Page 1 of 33 PageID #: 60 EXHIBIT C

Volume Shadows Tutorial Nuclear / the Lab

PowerVR Hardware. Architecture Overview for Developers

2.11 Particle Systems

CS450/550. Pipeline Architecture. Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012

Gaël Guennebaud Loïc Barthe, Mathias Paulin IRIT UPS CNRS TOULOUSE FRANCE Gaël Guennebaud Cyprus June 2006

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

What for? Shadows tell us about the relative locations. Vienna University of Technology 2

Practical Shadows. Outline

CocoVR - Spherical Multiprojection

CS 130 Final. Fall 2015

Render-To-Texture Caching. D. Sim Dietrich Jr.

Evolution of GPUs Chris Seitz

Mattan Erez. The University of Texas at Austin

Transcription:

Getting fancy with texture mapping (Part 2) CS559 Spring 2017 6 Apr 2017

Review Skyboxes as backdrops Credits : Flipmode 3D

Review Reflection maps Credits : NVidia

Review Decal textures Credits : andreucabre.com

Review Normal maps

Two-pass effects

Applica'on Program The full fixed-function pipeline (1992) Graphics Driver Command Buffer (Triangle Queue) Vertex Queue Vertex Processing (TCL) Vertex Cache Assembly Triangle Processing Rasterize Pixel Queue Pixel Processing Pixel Tests Vertex shading Geometry Shading Pixel Shading Texture Memory Render to texture Frame Buffer [Baseline] [RTT example]

Render-to-texture jsbin.com/quxudovesu/edit Framebuffer objects A destination buffer for offscreen rendering Separate rendering pass per framebuffer (including on-screen) Prior passes available to the shaders (just use the results as textures)

Render-to-texture jsbin.com/quxudovesu/edit.js start(){ initshaders(); senddata(); inittextures(); draw() }

Render-to-texture jsbin.com/quxudovesu/edit.js start(){ initshaders(); senddata(); inittextures(); draw() }

Render-to-texture jsbin.com/quxudovesu/edit.js start(){ initshaders(); senddata(); inittextures(); draw() }

Render-to-texture jsbin.com/quxudovesu/edit.js start(){ initshaders(); senddata(); inittextures(); draw() }

Render-to-texture jsbin.com/quxudovesu/edit.js start(){ initshaders(); senddata(); inittextures(); draw() }

Render-to-texture jsbin.com/quxudovesu/edit.js start(){ initshaders(); senddata(); inittextures(); draw() }

Render-to-texture jsbin.com/quxudovesu/edit.js start(){ initshaders(); senddata(); inittextures(); draw() }

Render-to-texture jsbin.com/quxudovesu/edit.js start(){ initshaders(); senddata(); inittextures(); draw() }

Render-to-texture jsbin.com/quxudovesu/edit.js start(){ initshaders(); senddata(); inittextures(); draw() }

Render-to-texture jsbin.com/quxudovesu/edit.js start(){ initshaders(); senddata(); inittextures(); draw() }

Render-to-texture jsbin.com/quxudovesu/edit.js start(){ initshaders(); senddata(); inittextures(); draw() }

Render-to-texture jsbin.com/quxudovesu/edit.js start(){ initshaders(); senddata(); inittextures(); draw() }

Render-to-texture jsbin.com/quxudovesu/edit.js start(){ initshaders(); senddata(); inittextures(); draw() }

Render-to-texture jsbin.com/quxudovesu/edit In real use you may have to Use different shaders per pass Use depth buffer Selectively draw objects (and many other adjustments, depending on the algorithm implemented via RTT)

Shadow mapping

Shadow mapping Why shadows? Enrich lighting Provide significant cues on scene (order, depth )

Shadow mapping Intuition: Locations that are lit are visible from the light source s viewpoint

Shadow mapping First step: Place camera at light s location Render & store depth image (shadow map)

Shadow mapping Second step: Render from camera s position (Per fragment) compare distance to light with shadow map value

Shadow mapping Second step: Shadow map value larger -> Fragment shadowed Shadow map value less/equal -> Fragment lit

Shadow mapping Issues : Field of view

Shadow mapping Issues : Field of view Remedy render 6 shadow maps in a cube

Shadow mapping Issues : Z-fighting

Shadow mapping Issues : Z-fighting

Shadow mapping Issues : Z-fighting Solution : Bias (be careful how much!)

Shadow mapping Additional issues: Sampling (resolution of shadow map) Thin objects Multiple light sources Other methods exist (e.g. shadow volumes) (but may require CPU intervention)

Dynamic environment maps First pass : Render scene into the 6 faces of the environment cubemap Second pass : Normal environment mapping with rendered texture [Example] [Example]

Projector textures Project texture coordinates on scene, to use with secondary texture Need to worry about sampling issues all over again (no direct mipmap help)

Ambient occlusion Darken ambient lighting component near folds

Ambient occlusion Can be very expensive (and very cool) Screen-space approximation : Uses depth field, estimates occlusion factor