OpenGL ES 2.0 Lighting 2 Per-fragment Lighting. CS421 Advanced Computer Graphics Jay Urbain, Ph.D.

Size: px
Start display at page:

Download "OpenGL ES 2.0 Lighting 2 Per-fragment Lighting. CS421 Advanced Computer Graphics Jay Urbain, Ph.D."

Transcription

1 OpenGL ES 2.0 Lighting 2 Per-fragment Lighting CS421 Advanced Computer Graphics Jay Urbain, Ph.D. 1

2 Objectives Per-fragment lighting Foundation for Phong Model, textures, etc. Shader implementation in OpenGL ES 2.0 References: Fallout Software: OpenGL Lighting or How Light Sources Work (Long, In-depth Tutorial) Clockworkcoders Tutorials: Per Fragment Lighting Lighthouse3D.com: The Normal Matrix arcsynthesis.org: OpenGL Tutorials: Normal Transformation OpenGL Programming Guide: Chapter 5 Lighting OpenGL ES 2.0 Programming Guide 2

3 Per-vertex lighting Front face of cube appears flatshaded. No evidence of a light nearby. Why? The four points of the front face are (approximately) equidistant from the light. Low light intensity at each of the four points is interpolated (smoothed) across the two triangles that make up the front face. 3

4 Per-pixel vs. Per-fragment Lighting Per vertex lighting Per fragment lighting The per-fragment version shows a nice highlight 4 in comparison.

5 Lighting Techniques Per-vertex: smooth shading (Gouraud shading). Lightmaps: Can give very nice results. Expensive light calculations are typically pre-computed. Downside: they take up a lot of memory, and doing dynamic lighting is limited to simple calculations. Shaders: Calculations can be offloaded to the GPU. Allows for many more effects to be done in real-time. Per-fragment lighting: relatively new phenomenon with the advent of shaders. 5

6 Per-pixel vs. Per-fragment Lighting Vertex (Gouraud) shaded cube Vertex shading: As light source moves near the corner of the front face of the cube, a triangle-like effect can be seen. Front face is composed of two triangles. As the values are interpolated in different directions across each triangle we can see the underlying geometry. Fragment shading: Shows no signs of interpolation errors, nice circular highlight near the edge. Fragment shaded cube 6

7 Vertex Shader Lighting uniform mat4 u_mvpmatrix; // model/view/projection matrix. uniform mat4 u_mvmatrix; // model/view matrix. attribute vec4 a_position; // Per-vertex position information we will pass in. attribute vec4 a_color; // Per-vertex color information we will pass in. attribute vec3 a_normal; // Per-vertex normal information we will pass in. 7

8 Vertex Shader Lighting (cont.) void main() { } // Transform the vertex & normal into eye space. vec3 modelviewvertex = vec3(u_mvmatrix * a_position); vec3 modelviewnormal = vec3(u_mvmatrix * vec4(a_normal, 0.0)); // Used for attenuation. float distance = length(u_lightpos - modelviewvertex); // Lighting direction vector from the light to the vertex. vec3 lightvector = normalize(u_lightpos - modelviewvertex); // Dot product of the light vector and vertex normal. float diffuse = max(dot(modelviewnormal, lightvector), 0.1); // Attenuate the light based on distance. diffuse = diffuse *(1.0/(1.0 + (0.1* distance * distance))); // Multiply color by the illumination level. Interpolated across the triangle. v_color = a_color * diffuse; // gl_position is a special variable used to store the final position. gl_position = u_mvpmatrix * a_position; 8

9 Vertex Shader after Moving Lighting Code to Fragment Shader uniform mat4 u_mvpmatrix; // Combined model/view/projection matrix. uniform mat4 u_mvmatrix; // Combined model/view matrix. attribute vec4 a_position; // Per-vertex position information we will pass in. attribute vec4 a_color; // Per-vertex color information we will pass in. attribute vec3 a_normal; // Per-vertex normal information we will pass in. varying vec3 v_position; varying vec4 v_color; varying vec3 v_normal; // Passed into the fragment shader. // Passed into the fragment shader. // Passed into the fragment shader. 9

10 Lighting -Vertex Shader (cont.) void main() { // Transform the vertex into eye space. v_position = vec3(u_mvmatrix* a_position); // Pass through the color. v_color = a_color; // Transform the normal's orientation into eye space. v_normal = vec3(u_mvmatrix* vec4(a_normal, 0.0)); // gl_position is used to store the final position. // Multiply vertex by the matrix to get final point in normalized screen coordinates. gl_position = u_mvpmatrix* a_position; } 10

11 Fragment Shader precision mediump float; // Set default precision uniform vec3 u_lightpos; // Position of the light in eye space. varying vec3 v_position; varying vec4 v_color; varying vec3 v_normal; // Interpolated position for this fragment. // Color from the vertex shader interpolated across the // triangle per fragment. // Interpolated normal for this fragment. 11

12 Fragment Shader (cont.) void main() { // Used for attenuation. float distance = length(u_lightpos- v_position); // Get a lighting direction vector from the light to the vertex. vec3 lightvector = normalize(u_lightpos- v_position); // Dot product of the light vector and vertex normal. float diffuse = max(dot(v_normal, lightvector), 0.1); // Add attenuation. diffuse = diffuse * (1.0 / (1.0 + (0.1 * distance * distance))); } // Multiply the color by the diffuse illumination level to get final output color. gl_fragcolor = v_color* diffuse; 12

Introduction to Computer Graphics with WebGL

Introduction to Computer Graphics with WebGL Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science Laboratory University of New Mexico 1 Programming

More information

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg Image Processing and Computer Graphics Rendering Pipeline Matthias Teschner Computer Science Department University of Freiburg Outline introduction rendering pipeline vertex processing primitive processing

More information

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group Shader Model 3.0 Ashu Rege NVIDIA Developer Technology Group Talk Outline Quick Intro GeForce 6 Series (NV4X family) New Vertex Shader Features Vertex Texture Fetch Longer Programs and Dynamic Flow Control

More information

GPU Shading and Rendering: Introduction & Graphics Hardware

GPU Shading and Rendering: Introduction & Graphics Hardware GPU Shading and Rendering: Introduction & Graphics Hardware Marc Olano Computer Science and Electrical Engineering University of Maryland, Baltimore County SIGGRAPH 2005 Schedule Shading Technolgy 8:30

More information

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007 Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Questions 2007 INSTRUCTIONS: Answer all questions. Spend approximately 1 minute per mark. Question 1 30 Marks Total

More information

Android and OpenGL. Android Smartphone Programming. Matthias Keil. University of Freiburg

Android and OpenGL. Android Smartphone Programming. Matthias Keil. University of Freiburg Android and OpenGL Android Smartphone Programming Matthias Keil Institute for Computer Science Faculty of Engineering 16. Dezember 2013 Outline 1 OpenGL Introduction 2 Displaying Graphics 3 Interaction

More information

Vertex and fragment programs

Vertex and fragment programs Vertex and fragment programs Jon Hjelmervik email: jonmi@ifi.uio.no 1 Fixed function transform and lighting Each vertex is treated separately Affine transformation transforms the vertex by matrix multiplication

More information

CS418 GLSL Shader Programming Tutorial (I) Shader Introduction. Presented by : Wei-Wen Feng 3/12/2008

CS418 GLSL Shader Programming Tutorial (I) Shader Introduction. Presented by : Wei-Wen Feng 3/12/2008 CS418 GLSL Shader Programming Tutorial (I) Shader Introduction Presented by : Wei-Wen Feng 3/12/2008 MP3 MP3 will be available around Spring Break Don t worry, you got two more weeks after break. Use shader

More information

INTRODUCTION TO RENDERING TECHNIQUES

INTRODUCTION TO RENDERING TECHNIQUES INTRODUCTION TO RENDERING TECHNIQUES 22 Mar. 212 Yanir Kleiman What is 3D Graphics? Why 3D? Draw one frame at a time Model only once X 24 frames per second Color / texture only once 15, frames for a feature

More information

CSE 564: Visualization. GPU Programming (First Steps) GPU Generations. Klaus Mueller. Computer Science Department Stony Brook University

CSE 564: Visualization. GPU Programming (First Steps) GPU Generations. Klaus Mueller. Computer Science Department Stony Brook University GPU Generations CSE 564: Visualization GPU Programming (First Steps) Klaus Mueller Computer Science Department Stony Brook University For the labs, 4th generation is desirable Graphics Hardware Pipeline

More information

How To Make A Texture Map Work Better On A Computer Graphics Card (Or Mac)

How To Make A Texture Map Work Better On A Computer Graphics Card (Or Mac) Improved Alpha-Tested Magnification for Vector Textures and Special Effects Chris Green Valve (a) 64x64 texture, alpha-blended (b) 64x64 texture, alpha tested (c) 64x64 texture using our technique Figure

More information

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering 3. Computer Graphics Sungmin Kim http://latam.jnu.ac.kr Computer Graphics Definition Introduction Research field related to the activities that includes graphics as input and output Importance Interactive

More information

Optimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August

Optimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August Optimizing Unity Games for Mobile Platforms Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August Agenda Introduction The author and ARM Preliminary knowledge Unity Pro, OpenGL ES 3.0 Identify

More information

GPUs Under the Hood. Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology

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

More information

3D Graphics and Cameras

3D Graphics and Cameras 3D Graphics and Cameras Kari Pulli Senior Director Overview OpenGL ES 1.x OpenGL ES 2.0 WebGL OpenCV FCam All examples on this session on Android OpenGL: Project vertices to camera connect them to triangles

More information

Introduction to GPGPU. Tiziano Diamanti t.diamanti@cineca.it

Introduction to GPGPU. Tiziano Diamanti t.diamanti@cineca.it t.diamanti@cineca.it Agenda From GPUs to GPGPUs GPGPU architecture CUDA programming model Perspective projection Vectors that connect the vanishing point to every point of the 3D model will intersecate

More information

Parallel Web Programming

Parallel Web Programming Parallel Web Programming Tobias Groß, Björn Meier Hardware/Software Co-Design, University of Erlangen-Nuremberg May 23, 2013 Outline WebGL OpenGL Rendering Pipeline Shader WebCL Motivation Development

More information

Modern Graphics Engine Design. Sim Dietrich NVIDIA Corporation sim.dietrich@nvidia.com

Modern Graphics Engine Design. Sim Dietrich NVIDIA Corporation sim.dietrich@nvidia.com Modern Graphics Engine Design Sim Dietrich NVIDIA Corporation sim.dietrich@nvidia.com Overview Modern Engine Features Modern Engine Challenges Scene Management Culling & Batching Geometry Management Collision

More information

GUI GRAPHICS AND USER INTERFACES. Welcome to GUI! Mechanics. Mihail Gaianu 26/02/2014 1

GUI GRAPHICS AND USER INTERFACES. Welcome to GUI! Mechanics. Mihail Gaianu 26/02/2014 1 Welcome to GUI! Mechanics 26/02/2014 1 Requirements Info If you don t know C++, you CAN take this class additional time investment required early on GUI Java to C++ transition tutorial on course website

More information

A Pipeline From COLLADA to WebGL for Skeletal Animation

A Pipeline From COLLADA to WebGL for Skeletal Animation A Pipeline From COLLADA to WebGL for Skeletal Animation Jeffery McRiffey, Ralph M. Butler, and Chrisila C. Pettey Computer Science Department, Middle Tennessee State University, Murfreesboro, TN, USA Abstract

More information

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA The Evolution of Computer Graphics Tony Tamasi SVP, Content & Technology, NVIDIA Graphics Make great images intricate shapes complex optical effects seamless motion Make them fast invent clever techniques

More information

How To Understand The Power Of Unity 3D (Pro) And The Power Behind It (Pro/Pro)

How To Understand The Power Of Unity 3D (Pro) And The Power Behind It (Pro/Pro) Optimizing Unity Games for Mobile Platforms Angelo Theodorou Software Engineer Brains Eden, 28 th June 2013 Agenda Introduction The author ARM Ltd. What do you need to have What do you need to know Identify

More information

Midgard GPU Architecture. October 2014

Midgard GPU Architecture. October 2014 Midgard GPU Architecture October 2014 1 The Midgard Architecture HARDWARE EVOLUTION 2 3 Mali GPU Roadmap Mali-T760 High-Level Architecture Distributes tasks to shader cores Efficient mapping of geometry

More information

Introduction to Computer Graphics

Introduction to Computer Graphics Introduction to Computer Graphics Torsten Möller TASC 8021 778-782-2215 torsten@sfu.ca www.cs.sfu.ca/~torsten Today What is computer graphics? Contents of this course Syllabus Overview of course topics

More information

A.R.I.S.E. Architectural Real-time Interactive Showing Environment. Supervisor: Scott Chase

A.R.I.S.E. Architectural Real-time Interactive Showing Environment. Supervisor: Scott Chase A.R.I.S.E Architectural Real-time Interactive Showing Environment Supervisor: Scott Chase Kasper Grande, Nina T. Hansen Kasper J. Knutzen, Anders Kokholm Long T. Truong Contents A Unity 2 A.1 Unity in

More information

Programmable Graphics Hardware

Programmable Graphics Hardware Programmable Graphics Hardware Alessandro Martinelli alessandro.martinelli@unipv.it 6 November 2011 Rendering Pipeline (6): Programmable Graphics Hardware Rendering Architecture First Rendering Pipeline

More information

Hardware design for ray tracing

Hardware design for ray tracing Hardware design for ray tracing Jae-sung Yoon Introduction Realtime ray tracing performance has recently been achieved even on single CPU. [Wald et al. 2001, 2002, 2004] However, higher resolutions, complex

More information

Game Development in Android Disgruntled Rats LLC. Sean Godinez Brian Morgan Michael Boldischar

Game Development in Android Disgruntled Rats LLC. Sean Godinez Brian Morgan Michael Boldischar Game Development in Android Disgruntled Rats LLC Sean Godinez Brian Morgan Michael Boldischar Overview Introduction Android Tools Game Development OpenGL ES Marketing Summary Questions Introduction Disgruntled

More information

Advances in Real-Time Skin Rendering

Advances in Real-Time Skin Rendering Advances in Real-Time Skin Rendering Natalya Tatarchuk ATI Research Overview Subsurface scattering simulation Texture Space Lighting Irradiance Gradients Precomputed Radiance Transfer Additional tricks

More information

Recent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005

Recent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005 Recent Advances and Future Trends in Graphics Hardware Michael Doggett Architect November 23, 2005 Overview XBOX360 GPU : Xenos Rendering performance GPU architecture Unified shader Memory Export Texture/Vertex

More information

High Dynamic Range and other Fun Shader Tricks. Simon Green

High Dynamic Range and other Fun Shader Tricks. Simon Green High Dynamic Range and other Fun Shader Tricks Simon Green Demo Group Motto If you can t make it good, make it big. If you can t make it big, make it shiny. Overview The OpenGL vertex program and texture

More information

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT COMP27112 Computer Graphics and Image Processing 2: Introducing image synthesis Toby.Howard@manchester.ac.uk 1 Introduction In these notes we ll cover: Some orientation how did we get here? Graphics system

More information

Computer Graphics CS 543 Lecture 12 (Part 1) Curves. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

Computer Graphics CS 543 Lecture 12 (Part 1) Curves. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI) Computer Graphics CS 54 Lecture 1 (Part 1) Curves Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) So Far Dealt with straight lines and flat surfaces Real world objects include

More information

Computer Graphics. Anders Hast

Computer Graphics. Anders Hast Computer Graphics Anders Hast Who am I?! 5 years in Industry after graduation, 2 years as high school teacher.! 1996 Teacher, University of Gävle! 2004 PhD, Computerised Image Processing " Computer Graphics!

More information

Radeon HD 2900 and Geometry Generation. Michael Doggett

Radeon HD 2900 and Geometry Generation. Michael Doggett Radeon HD 2900 and Geometry Generation Michael Doggett September 11, 2007 Overview Introduction to 3D Graphics Radeon 2900 Starting Point Requirements Top level Pipeline Blocks from top to bottom Command

More information

3D Augmented Reality Mobile Application Prototype for Visual Planning Support

3D Augmented Reality Mobile Application Prototype for Visual Planning Support 3D Augmented Reality Mobile Application Prototype for Visual Planning Support Arnau Fombuena Valero Master s of Science Thesis in Geoinformatics TRITA-GIT EX 11-010 School of Architecture and the Built

More information

The Future Of Animation Is Games

The Future Of Animation Is Games The Future Of Animation Is Games 王 銓 彰 Next Media Animation, Media Lab, Director cwang@1-apple.com.tw The Graphics Hardware Revolution ( 繪 圖 硬 體 革 命 ) : GPU-based Graphics Hardware Multi-core (20 Cores

More information

Computer Graphics Hardware An Overview

Computer Graphics Hardware An Overview Computer Graphics Hardware An Overview Graphics System Monitor Input devices CPU/Memory GPU Raster Graphics System Raster: An array of picture elements Based on raster-scan TV technology The screen (and

More information

CUBE-MAP DATA STRUCTURE FOR INTERACTIVE GLOBAL ILLUMINATION COMPUTATION IN DYNAMIC DIFFUSE ENVIRONMENTS

CUBE-MAP DATA STRUCTURE FOR INTERACTIVE GLOBAL ILLUMINATION COMPUTATION IN DYNAMIC DIFFUSE ENVIRONMENTS ICCVG 2002 Zakopane, 25-29 Sept. 2002 Rafal Mantiuk (1,2), Sumanta Pattanaik (1), Karol Myszkowski (3) (1) University of Central Florida, USA, (2) Technical University of Szczecin, Poland, (3) Max- Planck-Institut

More information

3D Math Overview and 3D Graphics Foundations

3D Math Overview and 3D Graphics Foundations Freescale Semiconductor Application Note Document Number: AN4132 Rev. 0, 05/2010 3D Math Overview and 3D Graphics Foundations by Multimedia Applications Division Freescale Semiconductor, Inc. Austin, TX

More information

Procedural Shaders: A Feature Animation Perspective

Procedural Shaders: A Feature Animation Perspective Procedural Shaders: A Feature Animation Perspective Hector Yee, Rendering Specialist, PDI/DreamWorks David Hart, Senior FX Developer, PDI/DreamWorks Arcot J. Preetham, Senior Engineer, ATI Research Motivation

More information

Color correction in 3D environments Nicholas Blackhawk

Color correction in 3D environments Nicholas Blackhawk Color correction in 3D environments Nicholas Blackhawk Abstract In 3D display technologies, as reviewers will say, color quality is often a factor. Depending on the type of display, either professional

More information

Graphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011

Graphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011 Graphics Cards and Graphics Processing Units Ben Johnstone Russ Martin November 15, 2011 Contents Graphics Processing Units (GPUs) Graphics Pipeline Architectures 8800-GTX200 Fermi Cayman Performance Analysis

More information

Volume Rendering on Mobile Devices. Mika Pesonen

Volume Rendering on Mobile Devices. Mika Pesonen Volume Rendering on Mobile Devices Mika Pesonen University of Tampere School of Information Sciences Computer Science M.Sc. Thesis Supervisor: Martti Juhola June 2015 i University of Tampere School of

More information

IT 386: 3D Modeling and Animation. Review Sheet. Notes from Professor Nersesian s IT 386: 3D Modeling and Animation course

IT 386: 3D Modeling and Animation. Review Sheet. Notes from Professor Nersesian s IT 386: 3D Modeling and Animation course IT 386: 3D Modeling and Animation Review Sheet Sources: Notes from Professor Nersesian s IT 386: 3D Modeling and Animation course Notes from CannedMushrooms on YouTube Notes from Digital Tutors tutorial

More information

Introduction to Computer Graphics

Introduction to Computer Graphics Introduction to Computer Graphics Version 1.1, January 2016 David J. Eck Hobart and William Smith Colleges This is a PDF version of a free, on-line book that is available at http://math.hws.edu/graphicsbook/.

More information

Realtime 3D Computer Graphics Virtual Reality

Realtime 3D Computer Graphics Virtual Reality Realtime 3D Computer Graphics Virtual Realit Viewing and projection Classical and General Viewing Transformation Pipeline CPU Pol. DL Pixel Per Vertex Texture Raster Frag FB object ee clip normalized device

More information

GPU(Graphics Processing Unit) with a Focus on Nvidia GeForce 6 Series. By: Binesh Tuladhar Clay Smith

GPU(Graphics Processing Unit) with a Focus on Nvidia GeForce 6 Series. By: Binesh Tuladhar Clay Smith GPU(Graphics Processing Unit) with a Focus on Nvidia GeForce 6 Series By: Binesh Tuladhar Clay Smith Overview History of GPU s GPU Definition Classical Graphics Pipeline Geforce 6 Series Architecture Vertex

More information

A Crash Course on Programmable Graphics Hardware

A Crash Course on Programmable Graphics Hardware A Crash Course on Programmable Graphics Hardware Li-Yi Wei Abstract Recent years have witnessed tremendous growth for programmable graphics hardware (GPU), both in terms of performance and functionality.

More information

Writing Applications for the GPU Using the RapidMind Development Platform

Writing Applications for the GPU Using the RapidMind Development Platform Writing Applications for the GPU Using the RapidMind Development Platform Contents Introduction... 1 Graphics Processing Units... 1 RapidMind Development Platform... 2 Writing RapidMind Enabled Applications...

More information

Shadows. Shadows. Thanks to: Frédo Durand and Seth Teller MIT. Realism Depth cue

Shadows. Shadows. Thanks to: Frédo Durand and Seth Teller MIT. Realism Depth cue Shadows Thanks to: Frédo Durand and Seth Teller MIT 1 Shadows Realism Depth cue 2 1 Shadows as depth cue 3 Spatial relationship between objects Michael McCool Univ of Waterloo 4 2 Spatial relationship

More information

Introduction GPU Hardware GPU Computing Today GPU Computing Example Outlook Summary. GPU Computing. Numerical Simulation - from Models to Software

Introduction GPU Hardware GPU Computing Today GPU Computing Example Outlook Summary. GPU Computing. Numerical Simulation - from Models to Software GPU Computing Numerical Simulation - from Models to Software Andreas Barthels JASS 2009, Course 2, St. Petersburg, Russia Prof. Dr. Sergey Y. Slavyanov St. Petersburg State University Prof. Dr. Thomas

More information

Data Visualization Using Hardware Accelerated Spline Interpolation

Data Visualization Using Hardware Accelerated Spline Interpolation Data Visualization Using Hardware Accelerated Spline Interpolation Petr Kadlec kadlecp2@fel.cvut.cz Marek Gayer xgayer@fel.cvut.cz Czech Technical University Department of Computer Science and Engineering

More information

NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH MATAVENRATH@NVIDIA.COM SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA

NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH MATAVENRATH@NVIDIA.COM SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH MATAVENRATH@NVIDIA.COM SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA GFLOPS 3500 3000 NVPRO-PIPELINE Peak Double Precision FLOPS GPU perf improved

More information

Deferred Shading & Screen Space Effects

Deferred Shading & Screen Space Effects Deferred Shading & Screen Space Effects State of the Art Rendering Techniques used in the 3D Games Industry Sebastian Lehmann 11. Februar 2014 FREESTYLE PROJECT GRAPHICS PROGRAMMING LAB CHAIR OF COMPUTER

More information

Introduction to Game Programming. Steven Osman sosman@cs.cmu.edu

Introduction to Game Programming. Steven Osman sosman@cs.cmu.edu Introduction to Game Programming Steven Osman sosman@cs.cmu.edu Introduction to Game Programming Introductory stuff Look at a game console: PS2 Some Techniques (Cheats?) What is a Game? Half-Life 2, Valve

More information

GPU Christmas Tree Rendering. Evan Hart ehart@nvidia.com

GPU Christmas Tree Rendering. Evan Hart ehart@nvidia.com GPU Christmas Tree Rendering Evan Hart ehart@nvidia.com February 2007 Document Change History Version Date Responsible Reason for Change 0.9 2/20/2007 Ehart Betarelease February 2007 ii Beta Release This

More information

Developer Tools. Tim Purcell NVIDIA

Developer Tools. Tim Purcell NVIDIA Developer Tools Tim Purcell NVIDIA Programming Soap Box Successful programming systems require at least three tools High level language compiler Cg, HLSL, GLSL, RTSL, Brook Debugger Profiler Debugging

More information

Optimizing AAA Games for Mobile Platforms

Optimizing AAA Games for Mobile Platforms Optimizing AAA Games for Mobile Platforms Niklas Smedberg Senior Engine Programmer, Epic Games Who Am I A.k.a. Smedis Epic Games, Unreal Engine 15 years in the industry 30 years of programming C64 demo

More information

GPGPU Computing. Yong Cao

GPGPU Computing. Yong Cao GPGPU Computing Yong Cao Why Graphics Card? It s powerful! A quiet trend Copyright 2009 by Yong Cao Why Graphics Card? It s powerful! Processor Processing Units FLOPs per Unit Clock Speed Processing Power

More information

CMSC 427 Computer Graphics Programming Assignment 1: Introduction to OpenGL and C++ Due Date: 11:59 PM, Sept. 15, 2015

CMSC 427 Computer Graphics Programming Assignment 1: Introduction to OpenGL and C++ Due Date: 11:59 PM, Sept. 15, 2015 CMSC 427 Computer Graphics Programming Assignment 1: Introduction to OpenGL and C++ Due Date: 11:59 PM, Sept. 15, 2015 Project Submission: 1) Delete all intermediate files (run the command make clean)

More information

PRODUCT LIFECYCLE MANAGEMENT COMPETENCY CENTRE RENDERING. PLMCC, JSS Academy of Technical Education, Noida Rendering 1 of 16

PRODUCT LIFECYCLE MANAGEMENT COMPETENCY CENTRE RENDERING. PLMCC, JSS Academy of Technical Education, Noida Rendering 1 of 16 PRODUCT LIFECYCLE MANAGEMENT COMPETENCY CENTRE RENDERING PLMCC, JSS Academy of Technical Education, Noida Rendering 1 of 16 Table of contents Under construction PLMCC, JSS Academy of Technical Education,

More information

Interactive Computer Graphics

Interactive Computer Graphics Interactive Computer Graphics A Top-Down Approach Using OpenGL FIFTH EDITION EDWARD ANGEL UNIVERSITY OF NEW MEXICO PEARSON Addison Wesley Boston San Francisco New York London Toronto Sydney Tokyo Singapore

More information

Transformations in the pipeline

Transformations in the pipeline Transformations in the pipeline gltranslatef() Modeling transformation ModelView Matrix OCS WCS glulookat() VCS CCS Viewing transformation Projection transformation DCS Viewport transformation (e.g. pixels)

More information

GPU Architecture. Michael Doggett ATI

GPU Architecture. Michael Doggett ATI GPU Architecture Michael Doggett ATI GPU Architecture RADEON X1800/X1900 Microsoft s XBOX360 Xenos GPU GPU research areas ATI - Driving the Visual Experience Everywhere Products from cell phones to super

More information

QCD as a Video Game?

QCD as a Video Game? QCD as a Video Game? Sándor D. Katz Eötvös University Budapest in collaboration with Győző Egri, Zoltán Fodor, Christian Hoelbling Dániel Nógrádi, Kálmán Szabó Outline 1. Introduction 2. GPU architecture

More information

Graphics Pipeline in a Nutshell

Graphics Pipeline in a Nutshell Graphics Pipeline in a Nutshell How do we create a rendering such as this? CS334 Spring 2008 Design the scene (technical drawing in wireframe ) Apply perspective transformations to the scene geometry for

More information

Tutorial 9: Skeletal Animation

Tutorial 9: Skeletal Animation Tutorial 9: Skeletal Animation Summary In the last couple of tutorials, you ve seen how to create a scene graph, and implemented a simple animating cube robot using them. You re probably wondering how

More information

A Short Introduction to Computer Graphics

A Short Introduction to Computer Graphics A Short Introduction to Computer Graphics Frédo Durand MIT Laboratory for Computer Science 1 Introduction Chapter I: Basics Although computer graphics is a vast field that encompasses almost any graphical

More information

OpenGL Performance Tuning

OpenGL Performance Tuning OpenGL Performance Tuning Evan Hart ATI Pipeline slides courtesy John Spitzer - NVIDIA Overview What to look for in tuning How it relates to the graphics pipeline Modern areas of interest Vertex Buffer

More information

COMP-557: Fundamentals of Computer Graphics McGill University, Fall 2010

COMP-557: Fundamentals of Computer Graphics McGill University, Fall 2010 COMP-557: Fundamentals of Computer Graphics McGill University, Fall 2010 Class times 2:25 PM - 3:55 PM Mondays and Wednesdays Lecture room Trottier Building 2120 Instructor Paul Kry, kry@cs.mcgill.ca Course

More information

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1 Silverlight for Windows Embedded Graphics and Rendering Pipeline 1 Silverlight for Windows Embedded Graphics and Rendering Pipeline Windows Embedded Compact 7 Technical Article Writers: David Franklin,

More information

OpenGL Shading Language Course. Chapter 5 Appendix. By Jacobo Rodriguez Villar jacobo.rodriguez@typhoonlabs.com

OpenGL Shading Language Course. Chapter 5 Appendix. By Jacobo Rodriguez Villar jacobo.rodriguez@typhoonlabs.com OpenGL Shading Language Course Chapter 5 Appendix By Jacobo Rodriguez Villar jacobo.rodriguez@typhoonlabs.com TyphoonLabs GLSL Course 1/1 APPENDIX INDEX Using GLSL Shaders Within OpenGL Applications 2

More information

L20: GPU Architecture and Models

L20: GPU Architecture and Models L20: GPU Architecture and Models scribe(s): Abdul Khalifa 20.1 Overview GPUs (Graphics Processing Units) are large parallel structure of processing cores capable of rendering graphics efficiently on displays.

More information

Performance Optimization and Debug Tools for mobile games with PlayCanvas

Performance Optimization and Debug Tools for mobile games with PlayCanvas Performance Optimization and Debug Tools for mobile games with PlayCanvas Jonathan Kirkham, Senior Software Engineer, ARM Will Eastcott, CEO, PlayCanvas 1 Introduction Jonathan Kirkham, ARM Worked with

More information

Advanced Visual Effects with Direct3D

Advanced Visual Effects with Direct3D Advanced Visual Effects with Direct3D Presenters: Mike Burrows, Sim Dietrich, David Gosselin, Kev Gee, Jeff Grills, Shawn Hargreaves, Richard Huddy, Gary McTaggart, Jason Mitchell, Ashutosh Rege and Matthias

More information

Computer Graphics on Mobile Devices VL SS2010 3.0 ECTS

Computer Graphics on Mobile Devices VL SS2010 3.0 ECTS Computer Graphics on Mobile Devices VL SS2010 3.0 ECTS Peter Rautek Rückblick Motivation Vorbesprechung Spiel VL Framework Ablauf Android Basics Android Specifics Activity, Layouts, Service, Intent, Permission,

More information

Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 CSE 167: Introduction to Computer Graphics Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Today Course organization Course overview 2 Course Staff Instructor Jürgen Schulze,

More information

Low power GPUs a view from the industry. Edvard Sørgård

Low power GPUs a view from the industry. Edvard Sørgård Low power GPUs a view from the industry Edvard Sørgård 1 ARM in Trondheim Graphics technology design centre From 2006 acquisition of Falanx Microsystems AS Origin of the ARM Mali GPUs Main activities today

More information

Computer Graphics. Introduction. Computer graphics. What is computer graphics? Yung-Yu Chuang

Computer Graphics. Introduction. Computer graphics. What is computer graphics? Yung-Yu Chuang Introduction Computer Graphics Instructor: Yung-Yu Chuang ( 莊 永 裕 ) E-mail: c@csie.ntu.edu.tw Office: CSIE 527 Grading: a MatchMove project Computer Science ce & Information o Technolog og Yung-Yu Chuang

More information

In the early 1990s, ubiquitous

In the early 1990s, ubiquitous How GPUs Work David Luebke, NVIDIA Research Greg Humphreys, University of Virginia In the early 1990s, ubiquitous interactive 3D graphics was still the stuff of science fiction. By the end of the decade,

More information

Algebra Geometry Glossary. 90 angle

Algebra Geometry Glossary. 90 angle lgebra Geometry Glossary 1) acute angle an angle less than 90 acute angle 90 angle 2) acute triangle a triangle where all angles are less than 90 3) adjacent angles angles that share a common leg Example:

More information

Institutionen för systemteknik Department of Electrical Engineering

Institutionen för systemteknik Department of Electrical Engineering Institutionen för systemteknik Department of Electrical Engineering Examensarbete 3D Graphics Technologies for Web Applications An Evaluation from the Perspective of a Real World Application Master thesis

More information

Geometric algebra rotors for skinned character animation blending

Geometric algebra rotors for skinned character animation blending Geometric algebra rotors for skinned character animation blending briefs_0080* QLB: 320 FPS GA: 381 FPS QLB: 301 FPS GA: 341 FPS DQB: 290 FPS GA: 325 FPS Figure 1: Comparison between animation blending

More information

Faster Rendering of Human Skin

Faster Rendering of Human Skin CEIG 08, Barcelona, Sept. 3 5 (2008) L. Matey and J. C. Torres (Editors) Faster Rendering of Human Skin Jorge Jimenez and Diego Gutierrez Universidad de Zaragoza, Spain Abstract Rendering realistic human

More information

glga: an OpenGL Geometric Application framework for a modern, shader-based computer graphics curriculum

glga: an OpenGL Geometric Application framework for a modern, shader-based computer graphics curriculum EUROGRAPHICS 2014/ J.- J. Bourdin, J. Jorge, and E. Anderson Education Paper glga: an OpenGL Geometric Application framework for a modern, shader-based computer graphics curriculum G. Papagiannakis 1,2,

More information

Shear :: Blocks (Video and Image Processing Blockset )

Shear :: Blocks (Video and Image Processing Blockset ) 1 of 6 15/12/2009 11:15 Shear Shift rows or columns of image by linearly varying offset Library Geometric Transformations Description The Shear block shifts the rows or columns of an image by a gradually

More information

Unreal Engine 4: Mobile Graphics on ARM CPU and GPU Architecture

Unreal Engine 4: Mobile Graphics on ARM CPU and GPU Architecture Unreal Engine 4: Mobile Graphics on ARM CPU and GPU Architecture Ray Hwang, Segment Marketing Manager, ARM Jack Porter, Engine Development Lead, Epic Games Korea Hessed Choi, Senior Field Applications

More information

GPU Point List Generation through Histogram Pyramids

GPU Point List Generation through Histogram Pyramids VMV 26, GPU Programming GPU Point List Generation through Histogram Pyramids Gernot Ziegler, Art Tevs, Christian Theobalt, Hans-Peter Seidel Agenda Overall task Problems Solution principle Algorithm: Discriminator

More information

Nicolas P. Rougier PyConFr Conference 2014 Lyon, October 24 25

Nicolas P. Rougier PyConFr Conference 2014 Lyon, October 24 25 GRAPHICS AND ANIMATIONS IN PYTHON USING MATPLOTLIB AND OPENGL Nicolas P. Rougier PyConFr Conference 2014 Lyon, October 24 25 Graphics and Animations in Python Where do we start? A Bit of Context The Python

More information

Course Overview. CSCI 480 Computer Graphics Lecture 1. Administrative Issues Modeling Animation Rendering OpenGL Programming [Angel Ch.

Course Overview. CSCI 480 Computer Graphics Lecture 1. Administrative Issues Modeling Animation Rendering OpenGL Programming [Angel Ch. CSCI 480 Computer Graphics Lecture 1 Course Overview January 14, 2013 Jernej Barbic University of Southern California http://www-bcf.usc.edu/~jbarbic/cs480-s13/ Administrative Issues Modeling Animation

More information

Instructor. Goals. Image Synthesis Examples. Applications. Computer Graphics. Why Study 3D Computer Graphics?

Instructor. Goals. Image Synthesis Examples. Applications. Computer Graphics. Why Study 3D Computer Graphics? Computer Graphics Motivation: Why do we study 3D Graphics? http://www.cs.ucsd.edu/~ravir Instructor http://www.cs.ucsd.edu/~ravir PhD Stanford, 2002. PhD thesis developed Spherical Harmonic Lighting widely

More information

NVIDIA Corporation 2701 San Tomas Expressway Santa Clara, CA 95050 www.nvidia.com

NVIDIA Corporation 2701 San Tomas Expressway Santa Clara, CA 95050 www.nvidia.com Release 1.1 February 2003 Cg Language Toolkit ALL DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS, DIAGNOSTICS, LISTS, AND OTHER DOCUMENTS (TOGETHER AND SEPARATELY, "MATERIALS") ARE BEING PROVIDED

More information

How To Teach Computer Graphics

How To Teach Computer Graphics Computer Graphics Thilo Kielmann Lecture 1: 1 Introduction (basic administrative information) Course Overview + Examples (a.o. Pixar, Blender, ) Graphics Systems Hands-on Session General Introduction http://www.cs.vu.nl/~graphics/

More information

My Materials. In this tutorial, we ll examine the material settings for some simple common materials used in modeling.

My Materials. In this tutorial, we ll examine the material settings for some simple common materials used in modeling. Course: 3D Design Title: My Materials Blender: Version 2.6X Level: Beginning Author; Neal Hirsig (nhirsig@tufts.edu) (May 2012) My Materials In this tutorial, we ll examine the material settings for some

More information

Quick Tutorial. Overview. The NVIDIA Software Improvement Program. Creating an Effect

Quick Tutorial. Overview. The NVIDIA Software Improvement Program. Creating an Effect Quick Tutorial Overview This chapter presents a very short FX Composer 2.5 tutorial to quickly introduce you to several convenient and powerful new features. We highly recommend this tutorial, particularly

More information

Lecture 15: Hardware Rendering

Lecture 15: Hardware Rendering Lecture 15: Hardware Rendering Fall 2004 Kavita Bala Computer Science Cornell University Announcements Project discussion this week Proposals: Oct 26 Exam moved to Nov 18 (Thursday) Bounding Volume vs.

More information

Self-Positioning Handheld 3D Scanner

Self-Positioning Handheld 3D Scanner Self-Positioning Handheld 3D Scanner Method Sheet: How to scan in Color and prep for Post Processing ZScan: Version 3.0 Last modified: 03/13/2009 POWERED BY Background theory The ZScanner 700CX was built

More information

CAUSTICS are complex patterns of shimmering

CAUSTICS are complex patterns of shimmering SCHOOL OF ENGINEERING AND COMPUTER SCIENCE, UNIVERSITY OF CENTRAL FLORIDA, CS TR 50-07 1 Caustics Mapping: An Image-space Technique for Real-time Caustics Musawir Shah, Sumanta Pattanaik Abstract In this

More information

Math for Game Programmers: Dual Numbers. Gino van den Bergen gino@dtecta.com

Math for Game Programmers: Dual Numbers. Gino van den Bergen gino@dtecta.com Math for Game Programmers: Dual Numbers Gino van den Bergen gino@dtecta.com Introduction Dual numbers extend real numbers, similar to complex numbers. Complex numbers adjoin an element i, for which i 2

More information