Computer graphics 2: Graduate seminar in computational aesthetics

Similar documents
Computer graphics 2: Graduate seminar in computational aesthetics

Game Graphics & Real-time Rendering

Rasterization Overview

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

Overview. By end of the week:

Rendering Objects. Need to transform all geometry then

CS 354R: Computer Game Technology

Lecture 2. Shaders, GLSL and GPGPU

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

Game Graphics & Real-time Rendering

The Graphics Pipeline and OpenGL I: Transformations!

OPENGL RENDERING PIPELINE

COMP371 COMPUTER GRAPHICS

The Graphics Pipeline and OpenGL I: Transformations!

CS451Real-time Rendering Pipeline

Game Architecture. 2/19/16: Rasterization

Models and Architectures

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

Introduction to Computer Graphics with WebGL

Overview. By end of the week:

TSBK03 Screen-Space Ambient Occlusion

Pipeline Operations. CS 4620 Lecture 14

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

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

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

CS 130 Exam I. Fall 2015

Scanline Rendering 2 1/42

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

Spring 2011 Prof. Hyesoon Kim

Advanced Rendering Techniques

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

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

Shadows. Prof. George Wolberg Dept. of Computer Science City College of New York

The Rasterization Pipeline

CS 4620 Program 3: Pipeline

Programmable GPUs. Real Time Graphics 11/13/2013. Nalu 2004 (NVIDIA Corporation) GeForce 6. Virtua Fighter 1995 (SEGA Corporation) NV1

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

Today. Rendering pipeline. Rendering pipeline. Object vs. Image order. Rendering engine Rendering engine (jtrt) Computergrafik. Rendering pipeline

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

Shaders. Slide credit to Prof. Zwicker

3D Polygon Rendering. Many applications use rendering of 3D polygons with direct illumination

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

Computer Graphics Seminar

CSE4030 Introduction to Computer Graphics

Module Contact: Dr Stephen Laycock, CMP Copyright of the University of East Anglia Version 1

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

CMSC427 Transformations II: Viewing. Credit: some slides from Dr. Zwicker

CS559 Computer Graphics Fall 2015

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

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

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

Copyright Khronos Group 2012 Page 1. Teaching GL. Dave Shreiner Director, Graphics and GPU Computing, ARM 1 December 2012

CS 4620 Midterm, October 23, 2018 SOLUTION

CS 130 Final. Fall 2015

Chapter 5. Projections and Rendering

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

The Application Stage. The Game Loop, Resource Management and Renderer Design

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

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

Graphics Programming. Computer Graphics, VT 2016 Lecture 2, Chapter 2. Fredrik Nysjö Centre for Image analysis Uppsala University

A Conceptual and Practical Look into Spherical Curvilinear Projection By Danny Oros

Computergrafik. Matthias Zwicker. Herbst 2010

Comp 410/510 Computer Graphics Spring Programming with OpenGL Part 2: First Program

3D Graphics Pipeline II Clipping. Instructor Stephen J. Guy

For each question, indicate whether the statement is true or false by circling T or F, respectively.

CS 432 Interactive Computer Graphics

Spring 2009 Prof. Hyesoon Kim

CIS 581 Interactive Computer Graphics

Models and Architectures. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

The Importance of Matrices in the DirectX API. by adding support in the programming language for frequently used calculations.

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

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

Overview of Projections: From a 3D world to a 2D screen.

OpenGL refresher. Advanced Computer Graphics 2012

Ulf Assarsson Department of Computer Engineering Chalmers University of Technology

We assume that you are familiar with the following:

Triangle Rasterization

Programming shaders & GPUs Christian Miller CS Fall 2011

Today s Agenda. Basic design of a graphics system. Introduction to OpenGL

Ciril Bohak. - INTRODUCTION TO WEBGL

We will use WebGL 1.0. WebGL 2.0 is now being supported by most browsers but requires a better GPU so may not run on older computers or on most cell

3D Viewing Episode 2

CS770/870 Spring 2017 Open GL Shader Language GLSL

CS770/870 Spring 2017 Open GL Shader Language GLSL

Viewing with Computers (OpenGL)

By: Tyler Spears Mentor: Dr. Bijaya Karki. Visualizing Time- Dependent Atomic Data in OpenGL

Coding OpenGL ES 3.0 for Better Graphics Quality

CS130 : Computer Graphics. Tamar Shinar Computer Science & Engineering UC Riverside

E.Order of Operations

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

Computer Graphics Shadow Algorithms

Zeyang Li Carnegie Mellon University

Programmable GPUS. Last Time? Reading for Today. Homework 4. Planar Shadows Projective Texture Shadows Shadow Maps Shadow Volumes

OpenGL SUPERBIBLE. Fifth Edition. Comprehensive Tutorial and Reference. Richard S. Wright, Jr. Nicholas Haemel Graham Sellers Benjamin Lipchak

Direct Rendering of Trimmed NURBS Surfaces

CS4620/5620: Lecture 14 Pipeline

Chapter 1 Introduction

Surface Graphics. 200 polys 1,000 polys 15,000 polys. an empty foot. - a mesh of spline patches:

Computer Graphics 7: Viewing in 3-D

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

Transcription:

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 and describe three papers OR projects of your choice. (include images, videos, diagrams) - Come up with (or refine) five interesting ideas in computer graphics or new media arts (include text and sketches) - Research one academic or creative venue

Homework 2 Emulation Project - Choose one artist from the Inventing Abstraction website a) recreate or extend the artwork with as much detail as possible (using Three.js), focusing on shape, color, texture (due 9/15) b) create a program that applies the style of the artist to any input image (or video), focusing on the use of GPU shaders (due 9/22)

Today s class 0. Discussion of papers from RJ 1. Small group discussion ideas 2. Rendering pipeline 3. Lab session shader programming

Rendering pipeline - Fundamental functionality of modern computer graphics libraries is to transform objects in a user-defined 3D space onto a 2D screen. - Using OpenGL and GLSL, you have complete control over this transformation and how to define ( shade ) each pixel of your 3D geometry.

CPU / GPU CPU side Define geometry; handle interaction GPU side Vertex shader: transform geometry from 3D space to 2D space Fragment shader (also called a Pixel shader): determine pixel color of every pixel inside the geometry

Geometry All 3D objects are defined as one of three geometric primitives: points, lines, or triangles (and usually triangles). This geometry, or vertex data, is passed into the GPU via special OpenGL/WebGL commands that bind a specified shader program on the GPU and matching terms on a vertex shader.

Geometry

Rendering pipeline

Coordinate systems The Object or Local coordinate system is defined in terms of the Geometry itself. The origin is usually the center or the lower-left of the object.

Coordinate systems The Model or World coordinate system defines the x, y, and z axes which serve as a basis for the 3D space. Where is the origin? Which way is up?

Coordinate systems The Eye, Camera, or View coordinate system defines another set of x, y, and z axes which server as a different basis for the 3D space. The camera is always positioned at the origin of this coordinate system.

Coordinate systems The Clip coordinate system describes the bounded view of the visible by the camera in terms of both the lens of the camera, its depth of focus, and the aspect ratio of the screen bounds.

Coordinate systems The Normalized Device coordinates is the same view normalized from -1 to +1 along each axis.

Coordinate systems The Window or Screen coordinates are these x and y coordinates positioned within the screen bounds. The z is used for depth-testing and is bound between 0 and 1.

Setting up coordinate systems 4x4 matrices are used to encode transformations between each of these coordinate systems. 3d 2d normalized - Model transformation - View transformation - Projection transformation 2d normalized - pixel - Viewport definition

Setting up coordinate systems A vertex is left multiplied through each matrix to transform it into the new coordinate system.

Modelview Sometimes the model and view transformations are encoded in a single matrix, MV = V * M. Sometimes the model, view, and projection transformations are encoded in a single matrix, MVP = P * V * M.

Perspective projection

Perspective projection

Lab session, Three.js Create a scene containing a series of geometric objects, use a GLSL shader program to displace the vertices and changes the pixel colors.

Three.js, GLSL built-ins geometry.vertices[ i ].position => position object.matrixworld => modelmatrix camera.projectionmatrix => projectionmatrix camera.matrixworldinverse => viewmatrix camera.matrixworldinverse * object.matrixworld => modelviewmatrix https://github.com/mrdoob/three.js/issues/1188

Light Space Modulator, Moholy-Nagy http:// www.sfmoma.org/ explore/ multimedia/ videos/1