1 KIPA Game Engine Seminars Jonathan Blow Seoul, Korea November 29, 2002 Day 4.

Slides:



Advertisements
Similar presentations
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Advertisements

Lecture 38: Chapter 7: Multiprocessors Today’s topic –Vector processors –GPUs –An example 1.
Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
Graphics Pipeline.
CAP4730: Computational Structures in Computer Graphics Visible Surface Determination.
GRAPHICS AND COMPUTING GPUS Jehan-François Pâris
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
CS5500 Computer Graphics © Chun-Fa Chang, Spring 2007 CS5500 Computer Graphics April 19, 2007.
Control Flow Virtualization for General-Purpose Computation on Graphics Hardware Ghulam Lashari Ondrej Lhotak University of Waterloo.
GPU Simulator Victor Moya. Summary Rendering pipeline for 3D graphics. Rendering pipeline for 3D graphics. Graphic Processors. Graphic Processors. GPU.
ATI GPUs and Graphics APIs Mark Segal. ATI Hardware X1K series 8 SIMD vertex engines, 16 SIMD fragment (pixel) engines 3-component vector + scalar ALUs.
The Graphics Pipeline CS2150 Anthony Jones. Introduction What is this lecture about? – The graphics pipeline as a whole – With examples from the video.
Game Engine Design ITCS 4010/5010 Spring 2006 Kalpathi Subramanian Department of Computer Science UNC Charlotte.
Shading Languages By Markus Kummerer. Markus Kummerer 2 / 19 State of the Art Shading.
Status – Week 260 Victor Moya. Summary shSim. shSim. GPU design. GPU design. Future Work. Future Work. Rumors and News. Rumors and News. Imagine. Imagine.
Introduction to 3D Graphics John E. Laird. Basic Issues u Given a internal model of a 3D world, with textures and light sources how do you project it.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
1 KIPA Game Engine Seminars Jonathan Blow Seoul, Korea November 30, 2002 Day 5.
Realtime 3D Computer Graphics Computer Graphics Computer Graphics Software & Hardware Rendering Software & Hardware Rendering 3D APIs 3D APIs Pixel & Vertex.
Computer Graphics Mirror and Shadows
1 KIPA Game Engine Seminars Jonathan Blow Ajou University, Suwon November 28, 2002 Day 3/25.
1 KIPA Game Engine Seminars Jonathan Blow Ajou University December 4, 2002 Day 8.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
Programmable Pipelines. Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
1 The Performance Potential for Single Application Heterogeneous Systems Henry Wong* and Tor M. Aamodt § *University of Toronto § University of British.
Geometric Objects and Transformations. Coordinate systems rial.html.
GPU Shading and Rendering Shading Technology 8:30 Introduction (:30–Olano) 9:00 Direct3D 10 (:45–Blythe) Languages, Systems and Demos 10:30 RapidMind.
Programmable Pipelines. 2 Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
Week 2 - Wednesday CS361.
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
Buffers Textures and more Rendering Paul Taylor & Barry La Trobe University 2009.
A Crash Course in HLSL Matt Christian.
09/09/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Event management Lag Group assignment has happened, like it or not.
Cg Programming Mapping Computational Concepts to GPUs.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
GRAPHICS PIPELINE & SHADERS SET09115 Intro to Graphics Programming.
Programmable Pipelines Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts Director, Arts Technology Center University.
Computer Graphics 2 Lecture 7: Texture Mapping Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
3D Game Engine Design 1 3D Game Engine Design Ch D MAP LAB.
CSCE 552 Spring D Models By Jijun Tang. Triangles Fundamental primitive of pipelines  Everything else constructed from them  (except lines and.
Emerging Technologies for Games Deferred Rendering CO3303 Week 22.
Sky Boxes and Vector Math 2 Course Information CVG: Programming 4 My Name: Mark Walsh Website:
A SEMINAR ON 1 CONTENT 2  The Stream Programming Model  The Stream Programming Model-II  Advantage of Stream Processor  Imagine’s.
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
David Luebke 1 1/20/2016 Real-Time Rendering CS 446 David Luebke.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
An Introduction to the Cg Shading Language Marco Leon Brandeis University Computer Science Department.
COMP 175 | COMPUTER GRAPHICS Remco Chang1/XX13 – GLSL Lecture 13: OpenGL Shading Language (GLSL) COMP 175: Computer Graphics April 12, 2016.
Image Fusion In Real-time, on a PC. Goals Interactive display of volume data in 3D –Allow more than one data set –Allow fusion of different modalities.
David Luebke 1 7/8/2016 Real-Time Rendering CS 551-4/651-3 David Luebke.
How to use a Pixel Shader CMT3317. Pixel shaders There is NO requirement to use a pixel shader for the coursework though you can if you want to You should.
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
- Introduction - Graphics Pipeline
Programmable Pipelines
Collision Detection Spring 2004.
Graphics Processing Unit
Chapter 6 GPU, Shaders, and Shading Languages
CENG 477 Introduction to Computer Graphics
CS451Real-time Rendering Pipeline
Understanding Theory and application of 3D
The Small batch (and Other) solutions in Mantle API
CMSC 635 Ray Tracing.
Static Image Filtering on Commodity Graphics Processors
Graphics Processing Unit
Lecture 13 Clipping & Scan Conversion
RADEON™ 9700 Architecture and 3D Performance
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
Presentation transcript:

1 KIPA Game Engine Seminars Jonathan Blow Seoul, Korea November 29, 2002 Day 4

2 High-Level Networking (continued) Review of yesterday…

3 Deciding What To Transmit Limited bandwidth to fit all entity updates into –Apportion this out into slices somehow? –Can we do this without adding latency? A hard problem! Need to accept the fact that the client won’t be perfectly updated about everything, always a little bit wrong Approach network communications as an error minimization problem

4 Deciding What To Transmit Need a metric for the amount of error between object on client and server –Position, orientation, state variables –Probably attenuated by distance to deal with viewpoint issues! –What about a rocket with contrail attached? Record the world state that you sent to the client, and diff it against current state –A lot of memory! –A lot of CPU!

5 There is a lot of coherence between clients’ error functions We ought to be able to exploit that Example of objects that move a lot –They will have high error in all world views Similarly for objects that move slowly How do we detect “a lot of motion”? –Should not use distance traveled per frame example on whiteboard

6 Detecting “a lot of motion” Idea: Neighborhood bounding box –Too quantized; how do we decide when to move the center? Idea: Bounding sphere with moving center –How do we compute this without holding big arrays of data? –Also, too anisotropic (we are picky because we pay for bandwidth!)

7 Why we want anisotropy For distant objects, we care most about motion parallel to the view plane Motion orthogonal to that plane only produces small changes in perspective size –(graph of 1/z on whiteboard)

8 Variance of a vector Also: “Covariance” of the vector components “Variance/Covariance Matrix” of components (demo) Can be filtered, like scalars, to approximate where something has been over different periods of time

9 Summary of Variance Methods Characterized by ellipsoid Find ellipsoid by eigenvalues/eigenvectors of outer product matrix These variances can be treated intuitively like mass (tensor of inertia, in physics)

10 Derivation of Variance Recentering Allows us to filter the variance of the vector, and transform that relative to a filtered position, in order to visualize (derivation on whiteboard)

11 Code Inspection Covariance2, openGL demo app Covariance3 –discuss finding eigenvectors of 2x2 versus 3x3 matrix

12 Do we need the eigenvectors for networking? Perhaps not! First, discussion of how we would use the eigenvectors But instead of back-projecting, can we forward-query? –A simple query is very cheap (example on whiteboard)

13 For the global sort, it’s even easier The product of the eigenvalues is the determinant of the matrix –Volume of ellipsoid! The sum of eigenvalues is the trace of the matrix –Useful in approximating eccentricity of ellipsoid; ratio of volume to ideal volume of a sphere with radius of (1/3) tr M

14 Shaders

15 Shaders Some people are confused by marketing hype to think shaders are new… They have been around for a long time in software rendering In hardware, the fixed-function pipeline provided shader functionality.

16 Interesting idea: Deferred Shading Only write iterated vertex parameters into the frame buffer Perform complicated shading operations in a post-pass If multipass rendering, vertex shader will run less often But technique is of limited use?

17 Early Game Shader Language: Quake3 shaders.txt Goal: to abstract away the number of texture stages in a graphics card’s pipeline –Earlier cards had 1, 2, or 3 stages Also: enable level designers to create shaders by hand

18 Normalization Cube Map Promoted by Mark Kilgard of Nvidia An interesting idea for early shaders, but outdated now? –With more shader instructions we can actually run a fast normalization function Does not require texture memory or a texture input slot! Cube maps are still useful for parameterizing arbitrary functions over the sphere

19 Xbox / Old PC’s texture pipeline

20 GameCube’s texture pipeline

21 Early DirectX vertex / pixel shaders (Version 1.0, 1.1) Did not do much you couldn’t already do in fixed function pipeline But, an important step toward paradigm of programmability

22 OpenGL vs. DirectX: Extensions vs. Control OpenGL provides extensions DirectX is about Microsoft creating a “standard”