Computer Graphics - Treasure Hunter

Size: px
Start display at page:

Download "Computer Graphics - Treasure Hunter"

Transcription

1 Computer Graphics - Treasure Hunter CS 4830 Dr. Mihail September 16, Introduction In this assignment you will implement an old technique to simulate 3D scenes called billboarding, sometimes referred to as 2.5D graphics using sprites. A sprite is simply a textured rectangle (two triangles) that is always facing the camera. In other words, regardless of which direction the viewer is looking from, the sprite will be parallel to the view plane. Older games relied on this technique to simulate 3D objects, simply to save computation time, which was required for real-time rendering, especially in games. At a minimum, you will implement a game, which I uninterestingly call Treasure Hunt, where the goal is to navigate through a neighborhood that hides a treasure between many identical houses. The story, goal of the game and graphics are subject to creative enhancement, which I reward with extra credit. During game-play, the canvas should look (at a minimum) like Figure 2. 2 Implementation Details The concept you have to master is the idea of a camera, or, in other words, the location and direction from which the player is looking at the world. The simple projection matrix we derived in class and those generated using the perspective function from MV.js assume the camera s center of projection is on the positive Z-axis, at some focal length d. Vertices from the world are projected on the view plane, that is the XY plane, at z = Geometry In this assignment, you will generate the geometry (billboards) for every frame (or, more efficiently, when changes due to player or enemy movements occur). As the player moves through the world, you will generate the billboard triangles, as they are always parallel to the view plane. Every object in the world has a position, and lives on the XZ plane, at y = 0. An easy way to ensure all billboard triangles are parallel to the XY plane is to set all the vertices z value the same Ground and Sky The sky and ground are each made up of two triangles, and drawn using a different shader. The skyground shader uses the color attribute, while the billboard shader uses the texture coordinate attribute. You have to disable depth testing, draw sky and ground, then enable depth testing and draw everything else, in that order. 1

2 Figure 1: Sample canvas view during game-play Figure 2: World coordinate system and camera. Objects within the near and far clip planes and within the field of view will be displayed on the canvas through a perspective projection onto the view plane at z = 0. The pentagons are the objects which are rendered as billboards using different textures (e.g., house or enemy). 2

3 2.2 Camera When the player moves in the world, the camera is simulated by transforming every vertex of our objects in the world. For example, if the player walks forward to an object, the camera moves closer to the object. Equivalently, we translate (move) the object closer to the camera. Similarly, when the player turns, the direction the camera faces rotates. Equivalently, we can rotate every vertex of our objects in the world around the Y-axis, since our view plane is at z = 0. You will implement two movements: forward/backward and turning left/right. Movement forward is equivalent to translating every vertex by a small positive amount along the Z-axis; movement backward is equivalent to a small negative translation along the Z-axis. Turning left is equivalent to rotating every vertex by a small degree in a clockwise direction. Turning right is equivalent to rotating every vertex by a small degree in a counter-clockwise direction. 3 Program Requirements Your program has to follow the following specifications: Your program has to allow the player to move through the world with at least four controls: forward, backward, turn left and turn right. Your program has to have two shaders. The shaders (written in the HTML file) script tags have an id property that has to be different between shaders. For example one can have the id= vertexshader while another shader can have the id= vertex-shader-skyground. Your world has to contain billboards with at least two different textures. Note that you DO NOT need two texture images. You can put two images side-by-side inside a square texture (using MS Paint or GIMP) with a size of length power of 2. Your triangle texture coordinates can determine which part of the texture image you use for a given billboard. Your world has to have at least 20 billboards. The house billboard is posted on the course webpage. 4 Technical Considerations In order to have the billboards always face the camera, you can keep track of their positions in an array of vec4 s, with the y value as 0. To ensure that some billboards are in the view frustum, you can generate them with x values in the range ( 1, 1) and z values in the range ( 1, 1) as well. The render loop will have the following logic (or something similar): 1. Disable depth testing 2. Draw ground and sky 3. Enable depth testing 4. Create a translation matrix, set to identity 5. If W is pressed, modify the translation matrix to increase the z-values by a small amount 6. If S is pressed, modify the translation matrix to decrease the z-values by a small amount 7. Apply translation to all vertices of the objects in the world 3

4 8. Create a rotation matrix, set it to identity 9. If A is pressed, modify the rotation to include a small clockwise rotation around the Y-axis 10. If D is pressed, modify the rotation to include a small counter-clockwise rotation around the Y-axis 11. Apply rotation matrix to all vertices of the objects in the world 12. Do collision checking and/or other game logic 13. Generate billboard geometry using the positions of the objects in the world 14. Send geometry (vertex attributes such as position, texture coordinate, color) to GPU 15. Draw As you can see above, unless W, S, A or D is pressed, the geometry is transformed using identity matrices, i.e., nothing happens. 5 Useful Functions Below is a function that multiplies a matrix by a column vector, returning a vector. 1 function vecmatmult ( vec, mat ) { 2 var res = vec4 (); 3 res [0] = mat [0][0] * vec [0] + mat [0][1] * vec [1] + mat [0][2] * vec [2] + mat [0][3] * vec [3]; 4 res [1] = mat [1][0] * vec [0] + mat [1][1] * vec [1] + mat [1][2] * vec [2] + mat [1][3] * vec [3]; 5 res [2] = mat [2][0] * vec [0] + mat [2][1] * vec [1] + mat [2][2] * vec [2] + mat [2][3] * vec [3]; 6 res [3] = mat [3][0] * vec [0] + mat [3][1] * vec [1] + mat [3][2] * vec [2] + mat [3][3] * vec [3]; 7 return res ; 8 } Below is a function that creates a quad (billboard) and places it in the world at the position given in the argument. 1 2 function create_ billboard ( position ) { 3 // the vertices define two triangles on the z =0 plane 4 var vertices = [ new vec4 (-1, -1, 0, 1), new vec4 (1, -1, 0, 1), new vec4 (-1, 1, 0, 1), new vec4 (1, -1, 0, 1), new vec4 (-1, 1, 0, 1), new vec4 (1, 1, 0, 1) ]; 5 // we translate the billboard to the position of the object in the world 6 var trans = translate ( position [0], 0, position [ 2]) ; 7 // we shrink it using a scale matrix 8 var sc = scalem (0.02, 0.02, 0. 02) ; 9 // apply the above transformations to all 6 vertices of our billboard 10 for ( var i =0; i <6; i ++) 11 { 12 vertices [i] = vecmatmult ( vertices [i], sc); // scale 13 vertices [i] = vecmatmult ( vertices [i], trans ); // translate 14 } 15 // define texture coordinates 4

5 16 var texturecoords = [ new vec2 (0, 0), new vec2 (1, 0), new vec2 (0, 1), new vec2 (1, 0), new vec2 (0, 1), new vec2 (1, 1) ]; 17 // create an empty object 18 var ret = {}; 19 // add properties to object and return 20 ret. vertices = vertices ; 21 ret. texturecoords = texturecoords ; 22 return ret ; 23 } In MV.js, you will use the following functions: perspective for the perspective projection matrix, rotate for the rotation matrix, translate for translation matrices, and scalem for scale. In Javascript, you can create an array of objects as follows: 1 var myarray = []; 2 for ( var i = 0; i< nrobjects ; i ++) { 3 myarray. push ( new vec4 ( Math. random () * 2-1, 0, Math. random () * 2-1, 1); 4 } 5 myarraylength = myarray. length ; // this is how you get the length of the array Transparency is enabled using the following commands: 1 gl. blendfunc (gl. SRC_ALPHA, gl. ONE_MINUS_SRC_ALPHA ); 2 gl. enable (gl. BLEND ); Depth testing is enabled using the following command: 1 gl. enable (gl. DEPTH_TEST ); 6 Write-up In the write-up you will document the challenges you encountered and how you addressed them. You will also describe the goal of the game and make up a storyline. The write-up has to be a minimum of 1 page single spaced, 12 point font. 7 Due Date This assignment is submitted via the electronic submission form on the course web page (as a zip file) and is due before midnight on Friday, October 2nd. 8 Grading Rubric W and S keys move the camera forward/backward (by translating the positions of objects along the Z-axis) (20 pts) A and D keys rotate the camera left and right (by rotating the positions of objects clockwise and counter-clockwise) (20 pts) Ground and sky are drawn (20 pts) Interaction with the world, e.g., finding an object when you get close to it (20 pts) Write-up (20 pts) 5

6 9 Extra Credit It is possible to earn up to 100% extra credit. You can only get extra credit if the base requirements are met. Creative graphics, game logic and story-line (up to 25%) Billboard texture changes with respect to the angle it makes with the camera view-plane (up to 25%) AIs either chase you or run away from you (up to 25%) Multiple ways of interacting with the world (up to 25%) 6

CS451Real-time Rendering Pipeline

CS451Real-time Rendering Pipeline 1 CS451Real-time Rendering Pipeline JYH-MING LIEN DEPARTMENT OF COMPUTER SCIENCE GEORGE MASON UNIVERSITY Based on Tomas Akenine-Möller s lecture note You say that you render a 3D 2 scene, but what does

More information

CS 381 Computer Graphics, Fall 2012 Midterm Exam Solutions. The Midterm Exam was given in class on Tuesday, October 16, 2012.

CS 381 Computer Graphics, Fall 2012 Midterm Exam Solutions. The Midterm Exam was given in class on Tuesday, October 16, 2012. CS 381 Computer Graphics, Fall 2012 Midterm Exam Solutions The Midterm Exam was given in class on Tuesday, October 16, 2012. 1. [7 pts] Synthetic-Camera Model. Describe the Synthetic-Camera Model : how

More information

CMSC427: Computer Graphics Lecture Notes Last update: November 21, 2014

CMSC427: Computer Graphics Lecture Notes Last update: November 21, 2014 CMSC427: Computer Graphics Lecture Notes Last update: November 21, 2014 TA: Josh Bradley 1 Linear Algebra Review 1.1 Vector Multiplication Suppose we have a vector a = [ x a y a ] T z a. Then for some

More information

CS 559 Computer Graphics Midterm Exam March 22, :30-3:45 pm

CS 559 Computer Graphics Midterm Exam March 22, :30-3:45 pm CS 559 Computer Graphics Midterm Exam March 22, 2010 2:30-3:45 pm This exam is closed book and closed notes. Please write your name and CS login on every page! (we may unstaple the exams for grading) Please

More information

Drawing in 3D (viewing, projection, and the rest of the pipeline)

Drawing in 3D (viewing, projection, and the rest of the pipeline) Drawing in 3D (viewing, projection, and the rest of the pipeline) CS559 Spring 2016 Lecture 6 February 11, 2016 The first 4 Key Ideas 1. Work in convenient coordinate systems. Use transformations to get

More information

Assignment 1 due 4/13/2017 at 11:59PM Topic: Getting Started with WebGL and Transformations

Assignment 1 due 4/13/2017 at 11:59PM Topic: Getting Started with WebGL and Transformations Virtual Reality EE 267, Spring 2017 Assignment 1 due 4/13/2017 at 11:59PM Topic: Getting Started with WebGL and Transformations Students should use Javascript for this assignment, building on top of the

More information

Ciril Bohak. - INTRODUCTION TO WEBGL

Ciril Bohak. - INTRODUCTION TO WEBGL 2016 Ciril Bohak ciril.bohak@fri.uni-lj.si - INTRODUCTION TO WEBGL What is WebGL? WebGL (Web Graphics Library) is an implementation of OpenGL interface for cmmunication with graphical hardware, intended

More information

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

More information

Lecture 3 Sections 2.2, 4.4. Mon, Aug 31, 2009

Lecture 3 Sections 2.2, 4.4. Mon, Aug 31, 2009 Model s Lecture 3 Sections 2.2, 4.4 World s Eye s Clip s s s Window s Hampden-Sydney College Mon, Aug 31, 2009 Outline Model s World s Eye s Clip s s s Window s 1 2 3 Model s World s Eye s Clip s s s Window

More information

Announcements. Submitting Programs Upload source and executable(s) (Windows or Mac) to digital dropbox on Blackboard

Announcements. Submitting Programs Upload source and executable(s) (Windows or Mac) to digital dropbox on Blackboard Now Playing: Vertex Processing: Viewing Coulibaly Amadou & Mariam from Dimanche a Bamako Released August 2, 2005 Rick Skarbez, Instructor COMP 575 September 27, 2007 Announcements Programming Assignment

More information

CS 4620 Program 3: Pipeline

CS 4620 Program 3: Pipeline CS 4620 Program 3: Pipeline out: Wednesday 14 October 2009 due: Friday 30 October 2009 1 Introduction In this assignment, you will implement several types of shading in a simple software graphics pipeline.

More information

Drawing in 3D (viewing, projection, and the rest of the pipeline)

Drawing in 3D (viewing, projection, and the rest of the pipeline) Drawing in 3D (viewing, projection, and the rest of the pipeline) CS559 Fall 2016 Lecture 6/7 September 26-28 2016 The first 4 Key Ideas 1. Work in convenient coordinate systems. Use transformations to

More information

Viewing with Computers (OpenGL)

Viewing with Computers (OpenGL) We can now return to three-dimension?', graphics from a computer perspective. Because viewing in computer graphics is based on the synthetic-camera model, we should be able to construct any of the classical

More information

Shadows in the graphics pipeline

Shadows in the graphics pipeline Shadows in the graphics pipeline Steve Marschner Cornell University CS 569 Spring 2008, 19 February There are a number of visual cues that help let the viewer know about the 3D relationships between objects

More information

Introduction to 3D Concepts

Introduction to 3D Concepts PART I Introduction to 3D Concepts Chapter 1 Scene... 3 Chapter 2 Rendering: OpenGL (OGL) and Adobe Ray Tracer (ART)...19 1 CHAPTER 1 Scene s0010 1.1. The 3D Scene p0010 A typical 3D scene has several

More information

Drawing in 3D (viewing, projection, and the rest of the pipeline)

Drawing in 3D (viewing, projection, and the rest of the pipeline) Drawing in 3D (viewing, projection, and the rest of the pipeline) CS559 Spring 2017 Lecture 6 February 2, 2017 The first 4 Key Ideas 1. Work in convenient coordinate systems. Use transformations to get

More information

Models and Architectures

Models and Architectures Models and Architectures Objectives Learn the basic design of a graphics system Introduce graphics pipeline architecture Examine software components for an interactive graphics system 1 Image Formation

More information

Game Architecture. 2/19/16: Rasterization

Game Architecture. 2/19/16: Rasterization Game Architecture 2/19/16: Rasterization Viewing To render a scene, need to know Where am I and What am I looking at The view transform is the matrix that does this Maps a standard view space into world

More information

CS 432 Interactive Computer Graphics

CS 432 Interactive Computer Graphics CS 432 Interactive Computer Graphics Lecture 4 3D Viewing Matt Burlick - Drexel University - CS 432 1 Reading Angel Chapters 3-4 Red Book Chapter 5, Appendix E Matt Burlick - Drexel University - CS 432

More information

Rasterization Overview

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

More information

CS 112 The Rendering Pipeline. Slide 1

CS 112 The Rendering Pipeline. Slide 1 CS 112 The Rendering Pipeline Slide 1 Rendering Pipeline n Input 3D Object/Scene Representation n Output An image of the input object/scene n Stages (for POLYGON pipeline) n Model view Transformation n

More information

CMSC427 Final Practice v2 Fall 2017

CMSC427 Final Practice v2 Fall 2017 CMSC427 Final Practice v2 Fall 2017 This is to represent the flow of the final and give you an idea of relative weighting. No promises that knowing this will predict how you ll do on the final. Some questions

More information

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

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

More information

CS452/552; EE465/505. Models & Viewing

CS452/552; EE465/505. Models & Viewing CS452/552; EE465/505 Models & Viewing 2-03 15 Outline! Building Polygonal Models Vertex lists; gl.drawarrays( ) Edge lists: gl.drawelements( )! Viewing Classical Viewing Read: Viewing in Web3D Angel, Section

More information

Animation Essentially a question of flipping between many still images, fast enough

Animation Essentially a question of flipping between many still images, fast enough 33(70) Information Coding / Computer Graphics, ISY, LiTH Animation Essentially a question of flipping between many still images, fast enough 33(70) Animation as a topic Page flipping, double-buffering

More information

Virtual Cameras and The Transformation Pipeline

Virtual Cameras and The Transformation Pipeline Virtual Cameras and The Transformation Pipeline Anton Gerdelan gerdela@scss.tcd.ie with content from Rachel McDonnell 13 Oct 2014 Virtual Camera We want to navigate through our scene in 3d Solution = create

More information

One or more objects A viewer with a projection surface Projectors that go from the object(s) to the projection surface

One or more objects A viewer with a projection surface Projectors that go from the object(s) to the projection surface Classical Viewing Viewing requires three basic elements One or more objects A viewer with a projection surface Projectors that go from the object(s) to the projection surface Classical views are based

More information

Notes on Assignment. Notes on Assignment. Notes on Assignment. Notes on Assignment

Notes on Assignment. Notes on Assignment. Notes on Assignment. Notes on Assignment Notes on Assignment Notes on Assignment Objects on screen - made of primitives Primitives are points, lines, polygons - watch vertex ordering The main object you need is a box When the MODELVIEW matrix

More information

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

Computer Viewing. CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science Computer Viewing CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science 1 Objectives Introduce the mathematics of projection Introduce OpenGL viewing functions Look at

More information

Homework 1: Getting Started with WebGL and Transformations EE267 Virtual Reality 2018

Homework 1: Getting Started with WebGL and Transformations EE267 Virtual Reality 2018 Homework 1: Getting Started with WebGL and Transformations EE267 Virtual Reality 2018 Due: 04/12/2018, 11:59pm Instruction Students should use JavaScript for this assignment, building on top of the provided

More information

Scene Modeling for a Single View

Scene Modeling for a Single View Scene Modeling for a Single View René MAGRITTE Portrait d'edward James with a lot of slides stolen from Steve Seitz and David Brogan, Breaking out of 2D now we are ready to break out of 2D And enter the

More information

Advanced Lighting Techniques Due: Monday November 2 at 10pm

Advanced Lighting Techniques Due: Monday November 2 at 10pm CMSC 23700 Autumn 2015 Introduction to Computer Graphics Project 3 October 20, 2015 Advanced Lighting Techniques Due: Monday November 2 at 10pm 1 Introduction This assignment is the third and final part

More information

Project 2: 3D transforms and Cameras

Project 2: 3D transforms and Cameras Project : D transforms and Cameras 50pts See schedule on website for the due date and time. The purpose of this assignment is to gain an understanding of how D transforms and viewing works in OpenGL with

More information

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

CS 381 Computer Graphics, Fall 2008 Midterm Exam Solutions. The Midterm Exam was given in class on Thursday, October 23, 2008. CS 381 Computer Graphics, Fall 2008 Midterm Exam Solutions The Midterm Exam was given in class on Thursday, October 23, 2008. 1. [4 pts] Drawing Where? Your instructor says that objects should always be

More information

the gamedesigninitiative at cornell university Lecture 14 2D Sprite Graphics

the gamedesigninitiative at cornell university Lecture 14 2D Sprite Graphics Lecture 14 Drawing Images Graphics Lectures SpriteBatch interface Coordinates and Transforms Drawing Perspective Camera Projections Drawing Primitives Color and Textures Polygons 2 Drawing Images Graphics

More information

Scanline Rendering 2 1/42

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

More information

Adaptive Point Cloud Rendering

Adaptive Point Cloud Rendering 1 Adaptive Point Cloud Rendering Project Plan Final Group: May13-11 Christopher Jeffers Eric Jensen Joel Rausch Client: Siemens PLM Software Client Contact: Michael Carter Adviser: Simanta Mitra 4/29/13

More information

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 Models and Architectures

More information

Chapter 5. Projections and Rendering

Chapter 5. Projections and Rendering Chapter 5 Projections and Rendering Topics: Perspective Projections The rendering pipeline In order to view manipulate and view a graphics object we must find ways of storing it a computer-compatible way.

More information

Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer

Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer The exam consists of 10 questions. There are 2 points per question for a total of 20 points. You

More information

WebGL and GLSL Basics. CS559 Fall 2016 Lecture 14 October

WebGL and GLSL Basics. CS559 Fall 2016 Lecture 14 October WebGL and GLSL Basics CS559 Fall 2016 Lecture 14 October 24 2016 Review 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

More information

Graphics for VEs. Ruth Aylett

Graphics for VEs. Ruth Aylett Graphics for VEs Ruth Aylett Overview VE Software Graphics for VEs The graphics pipeline Projections Lighting Shading VR software Two main types of software used: off-line authoring or modelling packages

More information

Representing 2D Transformations as Matrices

Representing 2D Transformations as Matrices Representing 2D Transformations as Matrices John E. Howland Department of Computer Science Trinity University One Trinity Place San Antonio, Texas 78212-7200 Voice: (210) 999-7364 Fax: (210) 999-7477 E-mail:

More information

Sign up for crits! Announcments

Sign up for crits! Announcments Sign up for crits! Announcments Reading for Next Week FvD 16.1-16.3 local lighting models GL 5 lighting GL 9 (skim) texture mapping Modern Game Techniques CS248 Lecture Nov 13 Andrew Adams Overview The

More information

Computer Graphics Coursework 1

Computer Graphics Coursework 1 Computer Graphics Coursework 1 Deadline Deadline: 4pm, 24/10/2016 4pm 23/10/2015 Outline The aim of the coursework is to modify the vertex and fragment shaders in the provided OpenGL framework to implement

More information

Transforms 3: Projection Christian Miller CS Fall 2011

Transforms 3: Projection Christian Miller CS Fall 2011 Transforms 3: Projection Christian Miller CS 354 - Fall 2011 Eye coordinates Eye space is the coordinate system at the camera: x right, y up, z out (i.e. looking down -z) [RTR] The setup Once we ve applied

More information

Project 1, 467. (Note: This is not a graphics class. It is ok if your rendering has some flaws, like those gaps in the teapot image above ;-)

Project 1, 467. (Note: This is not a graphics class. It is ok if your rendering has some flaws, like those gaps in the teapot image above ;-) Project 1, 467 Purpose: The purpose of this project is to learn everything you need to know for the next 9 weeks about graphics hardware. What: Write a 3D graphics hardware simulator in your language of

More information

6.837 Introduction to Computer Graphics Assignment 5: OpenGL and Solid Textures Due Wednesday October 22, 2003 at 11:59pm

6.837 Introduction to Computer Graphics Assignment 5: OpenGL and Solid Textures Due Wednesday October 22, 2003 at 11:59pm 6.837 Introduction to Computer Graphics Assignment 5: OpenGL and Solid Textures Due Wednesday October 22, 2003 at 11:59pm In this assignment, you will add an interactive preview of the scene and solid

More information

Guided Problem Solving

Guided Problem Solving -1 Guided Problem Solving GPS Student Page 57, Exercises 1 1: Match each rule with the correct translation. A. (x, y) (x, y 1 ) I. P(, 1) P (3, ) B. (x, y) (x 1 3, y) II. Q(3, 0) Q (3, ) C. (x, y) (x 1,

More information

Drawing Shapes on a Coordinate Grid

Drawing Shapes on a Coordinate Grid UNIT STUDENT OOK LESSO N Drawing Shapes on a oordinate Grid Quick Review t t Home Sc h o o l To describe the position of a shape on a grid, we use ordered pairs. The numbers in an ordered pair are called

More information

CS 465 Program 5: Ray II

CS 465 Program 5: Ray II CS 465 Program 5: Ray II out: Friday 2 November 2007 due: Saturday 1 December 2007 Sunday 2 December 2007 midnight 1 Introduction In the first ray tracing assignment you built a simple ray tracer that

More information

Computer Graphics Seminar

Computer Graphics Seminar Computer Graphics Seminar MTAT.03.305 Spring 2018 Raimond Tunnel Computer Graphics Graphical illusion via the computer Displaying something meaningful (incl art) Math Computers are good at... computing.

More information

Introduction to 3D Graphics

Introduction to 3D Graphics Graphics Without Polygons Volume Rendering May 11, 2010 So Far Volumetric Rendering Techniques Misc. So Far Extended the Fixed Function Pipeline with a Programmable Pipeline Programming the pipeline is

More information

Spring 2011 Prof. Hyesoon Kim

Spring 2011 Prof. Hyesoon Kim Spring 2011 Prof. Hyesoon Kim Application Geometry Rasterizer CPU Each stage cane be also pipelined The slowest of the pipeline stage determines the rendering speed. Frames per second (fps) Executes on

More information

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

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11 Pipeline Operations CS 4620 Lecture 11 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives to pixels RASTERIZATION

More information

CS602 Midterm Subjective Solved with Reference By WELL WISHER (Aqua Leo)

CS602 Midterm Subjective Solved with Reference By WELL WISHER (Aqua Leo) CS602 Midterm Subjective Solved with Reference By WELL WISHER (Aqua Leo) www.vucybarien.com Question No: 1 What are the two focusing methods in CRT? Explain briefly. Page no : 26 1. Electrostatic focusing

More information

TSBK03 Screen-Space Ambient Occlusion

TSBK03 Screen-Space Ambient Occlusion TSBK03 Screen-Space Ambient Occlusion Joakim Gebart, Jimmy Liikala December 15, 2013 Contents 1 Abstract 1 2 History 2 2.1 Crysis method..................................... 2 3 Chosen method 2 3.1 Algorithm

More information

Orthogonal Projection Matrices. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015

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

More information

CS 4620 Midterm 1. Tuesday 22 October minutes

CS 4620 Midterm 1. Tuesday 22 October minutes CS 4620 Midterm 1 Tuesday 22 October 2013 90 minutes Problem 1: Transformations (20 pts) Consider the affine transformation on R 3 defined in homogeneous coordinates by the matrix: 1 M = 1 0 0 2 0 1 0

More information

Learning Task: Exploring Reflections and Rotations

Learning Task: Exploring Reflections and Rotations Learning Task: Exploring Reflections and Rotations Name Date Mathematical Goals Develop and demonstrate an understanding of reflections and rotations of figures in general and on a coordinate plane. Essential

More information

Classical and Computer Viewing. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico

Classical and Computer Viewing. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico Classical and Computer Viewing Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico Planar Geometric Projections Standard projections project onto a plane Projectors

More information

MATRIX REVIEW PROBLEMS: Our matrix test will be on Friday May 23rd. Here are some problems to help you review.

MATRIX REVIEW PROBLEMS: Our matrix test will be on Friday May 23rd. Here are some problems to help you review. MATRIX REVIEW PROBLEMS: Our matrix test will be on Friday May 23rd. Here are some problems to help you review. 1. The intersection of two non-parallel planes is a line. Find the equation of the line. Give

More information

COMPSCI 372 S2 C - Assignment 2 Due Date: Monday 22nd September 2008, 9.30pm

COMPSCI 372 S2 C - Assignment 2 Due Date: Monday 22nd September 2008, 9.30pm COMPSCI 372 S2 C - Assignment 2 1 of 8 Computer Science COMPSCI 372 S2 C - Assignment 2 Due Date: Monday 22nd September 2008, 9.30pm This assignment is worth 6.25% of your final grade. In this assignment

More information

Overview. By end of the week:

Overview. By end of the week: Overview By end of the week: - Know the basics of git - Make sure we can all compile and run a C++/ OpenGL program - Understand the OpenGL rendering pipeline - Understand how matrices are used for geometric

More information

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

CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015 CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015 Announcements Project 2 due tomorrow at 2pm Grading window

More information

Rendering If we have a precise computer representation of the 3D world, how realistic are the 2D images we can generate? What are the best way to mode

Rendering If we have a precise computer representation of the 3D world, how realistic are the 2D images we can generate? What are the best way to mode Graphic Pipeline 1 Rendering If we have a precise computer representation of the 3D world, how realistic are the 2D images we can generate? What are the best way to model 3D world? How to render them?

More information

Lecture 4. Viewing, Projection and Viewport Transformations

Lecture 4. Viewing, Projection and Viewport Transformations Notes on Assignment Notes on Assignment Hw2 is dependent on hw1 so hw1 and hw2 will be graded together i.e. You have time to finish both by next monday 11:59p Email list issues - please cc: elif@cs.nyu.edu

More information

Billboards!! A texture mapped polygon, which always faces the viewer

Billboards!! A texture mapped polygon, which always faces the viewer 38(58) Information Coding / Computer Graphics, ISY, LiTH Billboards A texture mapped polygon, which always faces the viewer 38(58) Billboards 2D images placed on surfaces that are always facing the camera

More information

Graphics for VEs. Ruth Aylett

Graphics for VEs. Ruth Aylett Graphics for VEs Ruth Aylett Overview VE Software Graphics for VEs The graphics pipeline Projections Lighting Shading Runtime VR systems Two major parts: initialisation and update loop. Initialisation

More information

Geometry Unit 1: Transformations in the Coordinate Plane. Guided Notes

Geometry Unit 1: Transformations in the Coordinate Plane. Guided Notes Geometry Unit 1: Transformations in the Coordinate Plane Guided Notes Standard: MGSE9 12.G.CO.1 Know precise definitions Essential Question: What are the undefined terms essential to any study of geometry?

More information

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

CSE 167: Introduction to Computer Graphics Lecture #9: Visibility. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018 CSE 167: Introduction to Computer Graphics Lecture #9: Visibility Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018 Announcements Midterm Scores are on TritonEd Exams to be

More information

Lab 2-3D Transformations and Vertex Shaders

Lab 2-3D Transformations and Vertex Shaders Lab 2-3D Transformations and Vertex Shaders Support code: /course/cs1230/src/labs/lab02 Demo: /course/cs1230/bin/cs1230_lab02_demo Intro Last week you learned how to draw 2D shapes in OpenGL using VBOs

More information

Graphics 2009/2010, period 1. Lecture 6: perspective projection

Graphics 2009/2010, period 1. Lecture 6: perspective projection Graphics 2009/2010, period 1 Lecture 6 Perspective projection Orthographic vs. perspective projection Introduction Projecting from arbitrary camera positions Orthographic projection and the canonical view

More information

CSE 167: Lecture #4: Vertex Transformation. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

CSE 167: Lecture #4: Vertex Transformation. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Project 2 due Friday, October 12

More information

EECE 478. Learning Objectives. Learning Objectives. Rasterization & Scenes. Rasterization. Compositing

EECE 478. Learning Objectives. Learning Objectives. Rasterization & Scenes. Rasterization. Compositing EECE 478 Rasterization & Scenes Rasterization Learning Objectives Be able to describe the complete graphics pipeline. Describe the process of rasterization for triangles and lines. Compositing Manipulate

More information

Computer graphics 2: Graduate seminar in computational aesthetics

Computer graphics 2: Graduate seminar in computational aesthetics Computer graphics 2: Graduate seminar in computational aesthetics Angus Forbes evl.uic.edu/creativecoding/cs526 Homework 2 RJ ongoing... - Follow the suggestions in the Research Journal handout and find

More information

Transforms 1 Christian Miller CS Fall 2011

Transforms 1 Christian Miller CS Fall 2011 Transforms 1 Christian Miller CS 354 - Fall 2011 Transformations What happens if you multiply a square matrix and a vector together? You get a different vector with the same number of coordinates These

More information

CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation

CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013 Announcements Project 2 due Friday, October 11

More information

CS 354R: Computer Game Technology

CS 354R: Computer Game Technology CS 354R: Computer Game Technology Texture and Environment Maps Fall 2018 Texture Mapping Problem: colors, normals, etc. are only specified at vertices How do we add detail between vertices without incurring

More information

The exam begins at 2:40pm and ends at 4:00pm. You must turn your exam in when time is announced or risk not having it accepted.

The exam begins at 2:40pm and ends at 4:00pm. You must turn your exam in when time is announced or risk not having it accepted. CS 184: Foundations of Computer Graphics page 1 of 10 Student Name: Class Account Username: Instructions: Read them carefully! The exam begins at 2:40pm and ends at 4:00pm. You must turn your exam in when

More information

Enabling immersive gaming experiences Intro to Ray Tracing

Enabling immersive gaming experiences Intro to Ray Tracing Enabling immersive gaming experiences Intro to Ray Tracing Overview What is Ray Tracing? Why Ray Tracing? PowerVR Wizard Architecture Example Content Unity Hybrid Rendering Demonstration 3 What is Ray

More information

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

More information

CS1950U Setup Spring 2018

CS1950U Setup Spring 2018 CS1950U Topics in 3D Game Engine Development Barbara Meier CS1950U Setup Spring 2018 Introduction Hi there! This guide is designed to help you get setup for taking CS1950U. It will go through the basics

More information

Spring 2009 Prof. Hyesoon Kim

Spring 2009 Prof. Hyesoon Kim Spring 2009 Prof. Hyesoon Kim Application Geometry Rasterizer CPU Each stage cane be also pipelined The slowest of the pipeline stage determines the rendering speed. Frames per second (fps) Executes on

More information

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

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane Rendering Pipeline Rendering Converting a 3D scene to a 2D image Rendering Light Camera 3D Model View Plane Rendering Converting a 3D scene to a 2D image Basic rendering tasks: Modeling: creating the world

More information

CS464 Oct 3 rd Assignment 3 Due 10/6/2017 Due 10/8/2017 Implementation Outline

CS464 Oct 3 rd Assignment 3 Due 10/6/2017 Due 10/8/2017 Implementation Outline CS464 Oct 3 rd 2017 Assignment 3 Due 10/6/2017 Due 10/8/2017 Implementation Outline Assignment 3 Skeleton A good sequence to implement the program 1. Start with a flat terrain sitting at Y=0 and Cam at

More information

CS4620/5620: Lecture 14 Pipeline

CS4620/5620: Lecture 14 Pipeline CS4620/5620: Lecture 14 Pipeline 1 Rasterizing triangles Summary 1! evaluation of linear functions on pixel grid 2! functions defined by parameter values at vertices 3! using extra parameters to determine

More information

Raytracing CS148 AS3. Due :59pm PDT

Raytracing CS148 AS3. Due :59pm PDT Raytracing CS148 AS3 Due 2010-07-25 11:59pm PDT We start our exploration of Rendering - the process of converting a high-level object-based description of scene into an image. We will do this by building

More information

6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, :05-12pm Two hand-written sheet of notes (4 pages) allowed 1 SSD [ /17]

6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, :05-12pm Two hand-written sheet of notes (4 pages) allowed 1 SSD [ /17] 6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, 2011 9:05-12pm Two hand-written sheet of notes (4 pages) allowed NAME: 1 / 17 2 / 12 3 / 35 4 / 8 5 / 18 Total / 90 1 SSD [ /17]

More information

Performance OpenGL Programming (for whatever reason)

Performance OpenGL Programming (for whatever reason) Performance OpenGL Programming (for whatever reason) Mike Bailey Oregon State University Performance Bottlenecks In general there are four places a graphics system can become bottlenecked: 1. The computer

More information

CS184 : Foundations of Computer Graphics Professor David Forsyth Final Examination

CS184 : Foundations of Computer Graphics Professor David Forsyth Final Examination CS184 : Foundations of Computer Graphics Professor David Forsyth Final Examination (Total: 100 marks) Figure 1: A perspective view of a polyhedron on an infinite plane. Cameras and Perspective Rendering

More information

CS 4620 Midterm, October 23, 2018 SOLUTION

CS 4620 Midterm, October 23, 2018 SOLUTION 1. [20 points] Transformations CS 4620 Midterm, October 23, 2018 SOLUTION (a) Describe the action of each of the following matrices, as transformations in homogeneous coordinates, in terms of rotation,

More information

SUMMARY. CS380: Introduction to Computer Graphics Projection Chapter 10. Min H. Kim KAIST School of Computing 18/04/12. Smooth Interpolation

SUMMARY. CS380: Introduction to Computer Graphics Projection Chapter 10. Min H. Kim KAIST School of Computing 18/04/12. Smooth Interpolation CS38: Introduction to Computer Graphics Projection Chapter Min H. Kim KAIST School of Computing Smooth Interpolation SUMMARY 2 Cubic Bezier Spline To evaluate the function c(t) at any value of t, we perform

More information

Describe the Orthographic and Perspective projections. How do we combine together transform matrices?

Describe the Orthographic and Perspective projections. How do we combine together transform matrices? Aims and objectives By the end of the lecture you will be able to Work with multiple transform matrices Describe the viewing process in OpenGL Design and build a camera control APIs Describe the Orthographic

More information

Shape & Space Part C: Transformations

Shape & Space Part C: Transformations Name: Homeroom: Shape & Space Part C: Transformations Student Learning Expectations Outcomes: I can describe and analyze position and motion of objects and shapes by Checking for Understanding identifying

More information

THE VIEWING TRANSFORMATION

THE VIEWING TRANSFORMATION ECS 178 Course Notes THE VIEWING TRANSFORMATION Kenneth I. Joy Institute for Data Analysis and Visualization Department of Computer Science University of California, Davis Overview One of the most important

More information

CS452/552; EE465/505. Intro to Lighting

CS452/552; EE465/505. Intro to Lighting CS452/552; EE465/505 Intro to Lighting 2-10 15 Outline! Projection Normalization! Introduction to Lighting (and Shading) Read: Angel Chapter 5., sections 5.4-5.7 Parallel Projections Chapter 6, sections

More information

CS559 Computer Graphics Fall 2015

CS559 Computer Graphics Fall 2015 CS559 Computer Graphics Fall 2015 Practice Midterm Exam Time: 2 hrs 1. [XX Y Y % = ZZ%] MULTIPLE CHOICE SECTION. Circle or underline the correct answer (or answers). You do not need to provide a justification

More information

Project report Augmented reality with ARToolKit

Project report Augmented reality with ARToolKit Project report Augmented reality with ARToolKit FMA175 Image Analysis, Project Mathematical Sciences, Lund Institute of Technology Supervisor: Petter Strandmark Fredrik Larsson (dt07fl2@student.lth.se)

More information

The Graphics Pipeline and OpenGL IV: Stereo Rendering, Depth of Field Rendering, Multi-pass Rendering!

The Graphics Pipeline and OpenGL IV: Stereo Rendering, Depth of Field Rendering, Multi-pass Rendering! ! The Graphics Pipeline and OpenGL IV: Stereo Rendering, Depth of Field Rendering, Multi-pass Rendering! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 6! stanford.edu/class/ee267/!!

More information