CS 4363/6353 INTRODUCTION TO COMPUTER GRAPHICS. WHAT YOU’LL SEE Interactive 3D computer graphics Real-time 2D, but mostly 3D OpenGL C/C++ (if you don’t.

Slides:



Advertisements
Similar presentations
CS 352: Computer Graphics Chapter 7: The Rendering Pipeline.
Advertisements

Graphics Pipeline.
Computer Graphic Creator: Mohsen Asghari Session 2 Fall 2014.
3D Graphics Rendering and Terrain Modeling
Basics. OpenGL. “Hello world” George Georgiev Telerik Corporation
HCI 530 : Seminar (HCI) Damian Schofield.
CGDD 4003 THE MASSIVE FIELD OF COMPUTER GRAPHICS.
Graphics Systems I-Chen Lin’s CG slides, Doug James’s CG slides Angel, Interactive Computer Graphics, Chap 1 Introduction to Graphics Pipeline.
Game Engine Design ITCS 4010/5010 Spring 2006 Kalpathi Subramanian Department of Computer Science UNC Charlotte.
CHAPTER 7 Viewing and Transformations © 2008 Cengage Learning EMEA.
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.
3D Concepts Coordinate Systems Coordinates specify points in space 3D coords commonly use X, Y, & Z A vertex is a 'corner' of an object Different coordinate.
Course Overview, Introduction to CG Glenn G. Chappell U. of Alaska Fairbanks CS 381 Lecture Notes Friday, September 5, 2003.
Basic Graphics Concepts Day One CSCI 440. Terminology object - the thing being modeled image - view of object(s) on the screen frame buffer - memory that.
Basics of Rendering Pipeline Based Rendering –Objects in the scene are rendered in a sequence of steps that form the Rendering Pipeline. Ray-Tracing –A.
University of Illinois at Chicago Electronic Visualization Laboratory (EVL) CS 426 Intro to 3D Computer Graphics © 2003, 2004, 2005 Jason Leigh Electronic.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
3D Programming Concepts How objects are described in 3D and Rendering Pipelines – A conceptual way of thinking of the steps involved of converting an abstract.
CSE 381 – Advanced Game Programming Basic 3D Graphics
02/26/02 (c) 2002 University of Wisconsin, CS 559 Last Time Canonical view pipeline Orthographic projection –There was an error in the matrix for taking.
Week 2 - Wednesday CS361.
Image Synthesis Rabie A. Ramadan, PhD 2. 2 Java OpenGL Using JOGL: Using JOGL: Wiki: You can download JOGL from.
Computer Graphics An Introduction. What’s this course all about? 06/10/2015 Lecture 1 2 We will cover… Graphics programming and algorithms Graphics data.
Week 5 - Wednesday.  What did we talk about last time?  Project 2  Normal transforms  Euler angles  Quaternions.
MIT EECS 6.837, Durand and Cutler Graphics Pipeline: Projective Transformations.
2 COEN Computer Graphics I Evening’s Goals n Discuss the mathematical transformations that are utilized for computer graphics projection viewing.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
CS-378: Game Technology Lecture #2.1: Projection Prof. Okan Arikan University of Texas, Austin Thanks to James O’Brien, Steve Chenney, Zoran Popovic, Jessica.
Graphics Systems and OpenGL. Business of Generating Images Images are made up of pixels.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Lecture 6: 3D graphics Concepts 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 718,  ex 2271 
CAP4730: Computational Structures in Computer Graphics 3D Transformations.
Advanced Computer Graphics Advanced Shaders CO2409 Computer Graphics Week 16.
Programming 3D Applications CE Displaying Computer Graphics Week 3 Lecture 5 Bob Hobbs Faculty of Computing, Engineering and Technology Staffordshire.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
CS559: Computer Graphics Lecture 9: Rasterization Li Zhang Spring 2008.
CS 450: COMPUTER GRAPHICS PROJECTIONS SPRING 2015 DR. MICHAEL J. REALE.
OpenGL The Viewing Pipeline: Definition: a series of operations that are applied to the OpenGL matrices, in order to create a 2D representation from 3D.
Mark Nelson 3d projections Fall 2013
Basic 3D Concepts. Overview 1.Coordinate systems 2.Transformations 3.Projection 4.Rasterization.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
University of North Carolina at Greensboro
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
CS COMPUTER GRAPHICS LABORATORY. LIST OF EXPERIMENTS 1.Implementation of Bresenhams Algorithm – Line, Circle, Ellipse. 2.Implementation of Line,
Rendering Pipeline Fall, D Polygon Rendering Many applications use rendering of 3D polygons with direct illumination.
Programming with OpenGL Part 2: Complete Programs Ed Angel Professor of Emeritus of Computer Science University of New Mexico.
Programming with OpenGL Part 2: Complete Programs Ed Angel Professor of Emeritus of Computer Science University of New Mexico.
1 Perception and VR MONT 104S, Fall 2008 Lecture 20 Computer Graphics and VR.
Coordinate Systems Lecture 1 Fri, Sep 2, The Coordinate Systems The points we create are transformed through a series of coordinate systems before.
Viewing and Projection. The topics Interior parameters Projection type Field of view Clipping Frustum… Exterior parameters Camera position Camera orientation.
Design Visualization Software Introduction / Review.
Revision Sheet Computer Graphics and Human Interaction By Dr. HANY ELSALAMONY1.
GLSL Review Monday, Nov OpenGL pipeline Command Stream Vertex Processing Geometry processing Rasterization Fragment processing Fragment Ops/Blending.
Viewing. Classical Viewing Viewing requires three basic elements - One or more objects - A viewer with a projection surface - Projectors that go from.
Applications and Rendering pipeline
Introduction to Computer Graphics
Visible Surface Detection
- Introduction - Graphics Pipeline
University of North Carolina at Greensboro
Intro to 3D Graphics.
CSCE 441 Computer Graphics 3-D Viewing
Modeling 101 For the moment assume that all geometry consists of points, lines and faces Line: A segment between two endpoints Face: A planar area bounded.
3D Graphics Rendering PPT By Ricardo Veguilla.
CENG 477 Introduction to Computer Graphics
The Graphics Rendering Pipeline
CS451Real-time Rendering Pipeline
Introduction to Computer Graphics with WebGL
Graphics Processing Unit
Introduction to Computer Graphics with WebGL
Presentation transcript:

CS 4363/6353 INTRODUCTION TO COMPUTER GRAPHICS

WHAT YOU’LL SEE Interactive 3D computer graphics Real-time 2D, but mostly 3D OpenGL C/C++ (if you don’t know them) The math behind the scenes Shaders Simple and not-so-simple 3D file formats (OBJ and FBX)

WHAT YOU WON’T SEE Applications (though they are useful) Photoshop/Gimp/Paint.NET Maya Web graphics Art Character animations Very complex Usually require 3 rd party software

WHY? Senior Graphics Engineer at Autodesk – 1/6/2012

WHY? C/C++ Game Programmer at Addmired – 1/5/2012

WHY? Graphics Engineer at LucasArts – 1/4/2012

EARLY GRAPHICS Das Blinkenlights Dot matrix printers Shortly after printers came the CRT…

EARLY GRAPHICS The CRT was able to draw more than ASCII characters. It could draw dots!

EARLY GRAPHICS If you can draw a dot, you can draw a line! Bresenham’s Line Drawing algorithm

THINGS TO NOTE… Everything at this time was 2D Looked really bad, but was playable! was in real time How did the “animation” work?

INTO THE 3 RD DIMENSION Add depth dimension How do you perceive depth everyday? You have two eyes The image for your left eye is different than the right Brain extracts the differences to understand depth 3DTVs – how do they work?

BUT WAIT! Monitors are one “flat image on a flat surface” How do we perceive depth now? Farther objects are smaller (foreshortening) Subtle lighting changes We’ll use mathematics to do this for us big/perspective_1765_XX_venice.jpg

COMMON TERMINOLOGY Rendering: the entire process of drawing an image to the screen Vertex: a single 3D point (x, y, z) Edge: a line between two vertices Face: Most often 3 vertices and their edges Transformations: moving one or more vertices Translate: pushing vertices along the x, y or z axis Rotate: revolving vertices around some 3D point Scale: increasing or decreasing the distance of vertices from their center Model matrix – a mathematical structure for holding transformations (later) View matrix – another used for holding the viewpoint (camera) Projection matrix – another, used to get images on the screen (later) Rasterization – putting the actual pixels on the screen (final phase of rendering)

TRANSFORMATIONS Translate Rotate Scale

TERMINOLOGY (IMAGE FROM THE OPENGL SUPERBIBLE) Wireframe – rendering only the edges of the model (old games)

Hidden Surface Removal (HSR) – occluded objects can’t be seen Backface culling - drawing only the triangles that are facing the camera TERMINOLOGY (IMAGE FROM THE OPENGL SUPERBIBLE)

Solid shading (this isn’t a definition) – note that everything’s hard-coded red! TERMINOLOGY (IMAGE FROM THE OPENGL SUPERBIBLE)

Flat Shading – simulate lighting TERMINOLOGY (IMAGE FROM THE OPENGL SUPERBIBLE)

Texture mapping – using an image during the rasterization process TERMINOLOGY (IMAGE FROM THE OPENGL SUPERBIBLE)

Blending – mixing colors by rendering more than one thing in one spot The floor is rendered semi-transparent (yes, there are two cubes) TERMINOLOGY (IMAGE FROM THE OPENGL SUPERBIBLE)

WHAT ABOUT THIS? (NON-REAL-TIME)

COORDINATE SYSTEMS We have several spaces: Local/Object – the coordinate system the mesh was modeled in World – the coordinate system of the virtual environment View/Camera – the coordinate system relative to the camera Clip – windowing system We use mathematics to transform vertices from one space to another

COORDINATE SYSTEMS (FOR WINDOWING SYSTEMS) Because your screen is flat, we must work with 2D Cartesian Coordinates x = horizontal, y = vertical (0, 0) is origin +x -x +y -y

COORDINATE CLIPPING When creating a window, we must define where we are in the Cartesian system The window header doesn’t count in this equation Middle of screen is (0, 0)

ANOTHER EXAMPLE Middle of screen is (75, 100)

SETTING A WINDOW’S VIEWPORT Window size usually doesn’t match clipping size The viewport maps the clipping area to part (or all) of the window Most often, the viewport fills the entire window Sometimes, you want a “Picture in Picture” (PIP) rendering

EXAMPLE – ENTIRE WINDOW 0 (150, 200) x1200 Window

PIP EXAMPLE 0 (150, 200) x1200 Window

3D COORDINATE SYSTEMS We live (and think) in 3 dimensions x = horizontal, y = vertical, z = depth (can be RHS or LHS) (0, 0, 0) is origin +x -x +y -y +z -z

BASIC PROBLEM We need to convert our 3D models and display them on a 2D screen To do this, we use projections by defining a viewing volume These “flatten” the 3D world There are two kinds: Orthographic (aka “parallel”) All objects that have the same dimension are the same size, regardless of distance Viewing volume is rectangular Perspective Objects shrink with distance Viewing volume is shaped like a pyramid

EXAMPLE (UPPER-RIGHT IS A PERSPECTIVE VIEW)

ORTHOGRAPHIC VIEW VOLUME (YOU CAN SEE THE PARALLEL NOW…) Near clipping plane Far clipping plane

PERSPECTIVE VIEW VOLUME Near clipping plane Far clipping plane