How To Learn To Program In Csc 406 Computer Graphics



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

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

CSCD18: Computer Graphics

CPIT-285 Computer Graphics

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

William Paterson University of New Jersey Department of Computer Science College of Science and Health Course Outline

How To Teach Computer Graphics

Students will be notified by the instructor of any changes in course requirements or policies.

Video Game Programming ITP 380 (4 Units)

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

CENTRAL COLLEGE Department of Mathematics COURSE SYLLABUS

MASTER SYLLABUS

SAN DIEGO COMMUNITY COLLEGE DISTRICT MESA COLLEGE ASSOCIATE DEGREE COURSE OUTLINE

CS 394 Introduction to Computer Architecture Spring 2012

INFO 2130 Introduction to Business Computing Spring 2013 Self-Paced Section 006

Physics 21-Bio: University Physics I with Biological Applications Syllabus for Spring 2012

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

Carleton University School of Computer Science COMP Computer graphics Fall 2015

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS 3D MODELING & ANIMATION CGT Class Hours: 3.0 Credit Hours: 3.0

MGMT 280 Impact Investing Ed Quevedo

1.00 Lecture 1. Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders

3D Modeling, Animation, and Special Effects ITP 215x (2 Units)

Course Syllabus. Tuesday 4 pm to 5 pm & Thursday 4 to 5 pm

3D Modeling, Animation, Compositing, and Special Effects ITP 215x (2 Units)

Computer and Information Sciences

Course information: Copy and paste current course information from Class Search/Course Catalog.

LOS ANGELES VALLEY COLLEGE MATH 275. Ordinary Differential Equations (section # units) S16. MW 9:40 11:05a MS 108

CS 378: Computer Game Technology

Masters of Science in Software & Information Systems

Geography 676 Web Spatial Database Development and Programming

Introduction to Computer Graphics

UNIVERSITY OF MACAU DEPARTMENT OF COMPUTER AND INFORMATION SCIENCE SFTW 463 Data Visualization Syllabus 1 st Semester 2011/2012 Part A Course Outline

MAT Elements of Modern Mathematics Syllabus for Spring 2011 Section 100, TTh 9:30-10:50 AM; Section 200, TTh 8:00-9:20 AM

Accounting Information Systems (ACC409) Spring 2015 School of Accountancy Shidler College of Business University of Hawaii at Manoa

INFO 2130 Introduction to Business Computing Fall 2014

Mobile Application Development ITP 342 (3 Units)

Updated: 8/31/15 Page 1 of 5

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS INTRODUCTION TO STATISTICS MATH 2050

CS 300 Data Structures Syllabus - Fall 2014

MUSIC BUSINESS Northwest College MUSB COOPERATIVE EDUCATION, MUSIC MANAGEMENT AND MERCHANDISING. CRN Summer 2014

CS 2302 Data Structures Spring 2015

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS PROJECT SCHEDULING W/LAB ENGT 2021

II. Office Hours* (sign up at least 24 hours in advance in binder at student desk in office) Monday

MAT 103B College Algebra Part I Winter 2016 Course Outline and Syllabus

Mathematics Department Laboratory Technology - Analytical Chemistry Program Calculus I 201-NYA-05

Computer Aided Design (CAD), ME , JHU Professor Dan Stoianovici,

COURSE SYLLABUS. Office Hours: MWF 08:30am-09:55am or by appointment, DAV 238

CSC-570 Introduction to Database Management Systems

AGEC 448 AGEC 601 AGRICULTURAL COMMODITY FUTURES COMMODITY FUTURES & OPTIONS MARKETS SYLLABUS SPRING 2014 SCHEDULE

Institution : Majmaah University. Academic Department : College of Science at AzZulfi. Programme : Computer Science and Information Course :

BUS Computer Concepts and Applications for Business Fall 2012

CSC 341, section 001 Principles of Operating Systems Spring 2015 Monday/Wednesday 1:00 PM 2:15 PM

PLV Goldstein 315, Tuesdays and Thursdays, 6:00PM-7:50PM. Tuesdays and Thursdays, 4:00PM-5:30PM and 7:50PM 9:30PM at PLV G320

School of Computing and Information Sciences

CS 1340 Sec. A Time: 8:00AM, Location: Nevins Instructor: Dr. R. Paul Mihail, 2119 Nevins Hall, rpmihail@valdosta.

New York City College of Technology The City University of New York. Department of Communication Design. COMD D Animation & Modeling II

BCM :00-12:15 p.m. 1:30-3:35 p.m. Wednesday 10:00-12:00 noon

Finance 471: DERIVATIVE SECURITIES Fall 2015 Prof. Liang Ma University of South Carolina, Moore School of Business

INFSCI 1017 Implementation of Information Systems

MTH (seated)/277 V01 (online): Vector Calculus, Fall 2015

: Foundations of Game Programming

CSCI 599: Digital Geometry Processing

CSC 314: Operating Systems Spring 2005

SE 333/433 Software Testing and Quality Assurance

SOUTHWEST COLLEGE Department of Mathematics

Alabama Department of Postsecondary Education. Representing The Alabama Community College System

Central COLLEGE Department of Mathematics COURSE SYLLABUS. MATH 0308: Fundamentals of Math II

Software Development Foundations CPSC Spring 2014 Syllabus

Math 161A-01: College Algebra and Trigonometry I Meeting Days: MW 9:31am 11:30am Room : D9

Syllabus. Website: Office Location: NRG, Room 2147 Office Hours: TTh 9:00-10:00 a.m.

Teaching Introductory Computer Graphics Via Ray Tracing

UCC1: New Course Transmittal Form

CSC 425 Computer Graphics and Games

How To Teach C++ Data Structure Programming

CS 5890: Introduction to Data Science Syllabus, Utah State University, Fall

Child Development 382 Professional Seminar in Child Development: Current Issues Fall 2016 Tuesdays 5-7:50pm in Modoc 120

MATHEMATICS 152, FALL 2004 METHODS OF DISCRETE MATHEMATICS

ENGR 100 Introduction to CAD Drexel Engineering Core Curriculum

Programming Languages

Statistics and Research Methods in Psychology ROWAN UNIVERSITY. Fall MW 1:45-4:30 MW 4:45-7:15 Robinson 102 Robinson 102

Psychological Testing (PSYCH 149) Syllabus

COS 480/580: Database Management Systems

MKTG 435 International Marketing Course Syllabus Spring Phone: (618)

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS ADVANCED DATABASE MANAGEMENT SYSTEMS CSIT 2510

Mobile App Project ITP 442x (4 Units)

Professor s Contact Information Office Phone Other Phone n/a Office Location ECS South Address

Instructor Contact Information:

George Mason University Electrical and Computer Engineering Department ECE 201: Introduction to Signal Analysis Syllabus Fall 2015

Mathematics Spring Branch Campus

ACCT 3103 Intermediate Accounting I Oklahoma State University Spring 2015

Middlesex Community College New Media Studies Center Initiative. July 27, 2015

INFO B512 Scientific and Clinical Data Management

Systems and Internet Marketing Syllabus Spring 2011 Department of Management, Marketing and International Business

Syllabus FINANCE 330 Spring 2016 Section 003

Professor: Monica Hernandez Phone: (956) Dept. Secretary Ms. Canales

SYLLABUS Honors College Algebra MAC 1105H / 3 credit hours Fall 2014

Computer Graphics. Overview. Thomas Funkhouser Princeton University C0S 426, Fall Introduction. Applications. Syllabus. Coursework.

Course Outline. 1. COURSE INFORMATION Session Offered Winter 2012 Course Name Mathematics V

Technology and Online Computer Access Requirements: Lake-Sumter State College Course Syllabus

A Student s Guide to Mathematics at CLC College of Lake County

Transcription:

CSC 406 Computer Graphics Fall 2011 1 CSC 406 Computer Graphics Geometry, Modeling, and Animation Fall 2011 Lectures Tyler Hall, Room 052 Monday, 6:30-9:15 PM Professor Jean-Yves Hervé Tyler Hall, Room 253 also: Tyler Hall, Room 104 (research lab) Tel: 874 4400 email: jyh@cs.uri.edu Office hours: Monday: 3:00-4:30 PM Tuesday: 6:0-7:30 PM or by appointment Teaching Assistant: Joel Barruos Tyler Hall, Room 245 email: barruos@gmail.com Office hours: Thursday: - 12:45-1:45 pm and 5:00-7:00 pm The Course at a Glance Prerequisites CSC212, MTH215 and MTH243 I know that the URI catalog lists CSC305 as a prerequisite, but CSC212 is the real CS prerequisite for this course (and should soon be the official one as well). It might come to you as a shock that linear algebra is used a lot in computer graphics. It would be a good idea for you to refresh your fond, I am certain memories of matrices in the next few days. MTH243 material will be needed around the end of October, when we start talking about parametric models of curves and surfaces, and kinematics (animation). Objectives This course will concentrate exclusively on the geometric and kinematic aspects of computer graphics. At the end of this course, you should be capable of Constructing a geometric model of a simple scene; Implementing the objects of this scene, using OpenGL, glut, and glu primitives; Controlling, interactively or automatically, the displacements of objects, including the camera(s) that capture the scene;

CSC 406 Computer Graphics Fall 2011 2 Building a simple graphical user interface for your application, using the glut library (for C++ programmers). Other aspects of computer graphics are covered in the following courses ART304 and ART306: 3D Graphics design (using Maya 2010), CSC492: Introduction to Computational Geometry, CSC583: Computer Vision, which can be seen as reverse computer graphics. Equipment and References Course textbook This semester, I have not picked an official textbook. The main reason for this is that I am really lousy at following a textbook. I am going to post pdf versions of my notes, but you might still want to purchase one of the following fine books: OpenGL references The standard references are the red book and the blue book. There is also a green book that is dedicated to OpenGL for Unix/X11, but I can t see why anyone would submit themselves voluntarily to something as ugly as X11/Motif programming (use a cross-platform framework instead!). OpenGL Programming Guide (the red book ), Addison-Wesley, Reading, MA, 2000. OpenGL Reference Manual (the blue book ), Addison-Wesley, Reading, MA, 2000. These editions cover version 1.4 of OpenGL. Earlier versions of books (opengl v. 1.2) are available (see the Links page on the course s web site) My recommendation for an OpenGL reference is the following handy little book: Edward Angel, OpenGL - A Primer, 2nd edition, Addison-Wesley, Reading, MA, 2004. This book covers all the OpenGL we are going to need in this course and is small enough that you can carry it with you. Mathematics for graphics If you feel that you need a refresher on linear algebra or calculus, I have some links to nice online books on the course s web site. A few good books that cover the mathematics commonly used in computer graphics and game development are Eric Lengyel, Mathematics for 3D Game Programming and Computer Graphics, Charles Media River, Hingham, MA, 2002.

CSC 406 Computer Graphics Fall 2011 3 Philip Schneider and David H. Eberly, Geometric Tools for Computer Graphics, (The Morgan Kaufmann Series in Computer Graphics), Morgan Kaufmann, 2002. The following book covers all the material of the previous two books, but in a less compact form, plus a lot of more advance material on animation and rendering: T. Akenine-Möller and E. Haines, Real-Time Rendering, 2nd edition, A.K. Peters Ltd., 2002. Graphic API In your future careers as computer scientists and programmers, you will often have to learn a new API (Application Programming Interface) and use it in your projects. This course offers us a good opportunity to develop this important skill. We will be using OpenGL (for C++ programmers). This API developed by SGI is the most standard cross-platform API used both for professional 3D editing applications (Maya, SoftImage) and computer games (Quake II & III, Descent 3, etc.). On some Unix platforms, what is found is not OpenGL per se but MESA, which is an open-source project (encouraged/supported by SGI) that offers source-level compatibility with OpenGL. Java programmers can use jogl, which is a thin class wrapper around OpenGL. The graphics code is virtualy identical in jogl and OpenGL, except for the addition of a.gl prefix to all function calls. For example, a call to the OpenGL function glvertex3f becomes an invocation of the method gl.glvertex3f in jogl. The GUI code will be different, though, as you will have to use AWT or Swing instead of glut. Virtually all the OpenGL tutorial and code you are going to find online is in C, with a huge and ugly display function doing all the work. I am going to insist that you use proper object-oriented implementations for all the assignments, with a nice hierarchy of graphic classes taking care of their own drawing. once you get the hang of it, you will see that it makes your life a lot easier. Programming environment All projects will be implemented in C++, using OpenGL + glut, or in Java, using the jogl library. You can use this course as an opportunity to learn C++ (C++ in not superior to Java or more grown-up. It is just that there a number of low-level things in OpenGL are better/easier done in C++). You can use any IDE or tool you desire to program your assignments, but what you hand in must compile and run with Eclipse 3.5. I will provide a header file that solve most path issues so that the same code can compile on any platform. Grading Examinations One midterm examination will be administered around the end of October, at the usual class hours. All notes and printed documentation will be allowed during this examination. Short quizzes may be held occasionally as well.

CSC 406 Computer Graphics Fall 2011 4 Assignments We will have a new programming assignment nearly each week. For each programming assignment, you will be asked to provide complete documented (in javadoc/doxygen style) source code and a report. On slow weeks I may also hand out homework assignments that will deal with the theoretical aspects of the material covered in this course. The Mix The following coefficients will be used to compute the final grade: Homework Assignments: 10% Programming Assignments: 45% Midterm 15% Quizzes 5% Final Project 25% Rules of Conduct Late Submissions All assignments should be turned in on the day and time they are due. If an assignment is not turned in on time, a 10% penalty will be applied for each late day (a fraction of a day will count as a whole day). Assignments more than one week late will not be graded. If the assignment asks for multiple deliverables (code, project, report, javadoc-style documentation) the date at which the last item was handed in will be used to determine the late penalty. If you submit an assignment late, don t just upload it to the server. You must also send an email to the TA (with Cc. to me) to inform him that the assignment is now complete and ready to be graded. You cannot just expect people to watch after you. Cheating Unless explicitly stated otherwise, all work should be done individually. Any evidence of cheating may result in expulsion from the class with a failing grade and will be brought to the attention of the Dean for disciplinary action. You are strongly encouraged to discuss the assignments with other students, and try to figure them out together, but when comes the time of writing a report or developing code, you are expected to do it by yourself (or with other students from your group when the assignment explicitly mentions groups of 2 to 3 students).

CSC 406 Computer Graphics Fall 2011 5 The Unversity Manual states: Students are expected to be honest in all academic work. A student s name on any written work shall be regarded as assurance that the work is the result of the student s own thought and study. Work should be stated in the student s own words, properly attributed to its source. Students have an obligation to know how to quote, paraphrase, summarize, or reference the work of others with integrity. The following are examples of academic dishonesty. Using material from published sources (print or electronic) without appropriate citation Claiming disproportionate credit for work not done independently Unauthorized possession or access to exams Unauthorized communication during exams Unauthorized use of another s work or preparing work for another student Taking an exam for another student Altering or attempting to alter grades The use of notes or electronic devices to gain an unauthorized advantage during exams Fabricating or falsifying facts, data or references Facilitating or aiding another s academic dishonesty Submitting the same paper for more than one course without prior approval from the instructors. Laboratory use Any abuse of computer or software equipment will be brought to the attention of the appropriate authority for disciplinary action. Software piracy (the use, appropriation, or storage of illegal copies of software) is a form of abuse of the equipment and will be treated accordingly. Attendance Class attendance is not mandatory, although I strongly suggest that you make efforts to attend all classes. We will spend a significant part of the time in classes discussing about examples of programs, possible errors, bugs, etc. Don t spend too much time taking notes during classes; rather make efforts to understand on-line what is going on. It will only get easier as we advance in the semester.

CSC 406 Computer Graphics Fall 2011 6 Incomplete grade In the past I have been much too lenient in giving an Incomplete grade at the end of the semester. This almost always eventually turns into a headache for me, so starting this semester, I am going to apply strictly the University guidelines: A student shall receive a report of Incomplete in any course in which the course work has been passing up until the time of a documented precipitating incident or condition, but has not been completed because of illness or another reason which in the opinion of the instructor justifies the report. (Section 8.53.20 University Manual). Note that overload from other courses does not fulfill the University policy conditions. Neither does a hard drive/laptop failure (we have a computer laboratory for your use). Tentative Class Schedule Week 1 Weeks 2-4 Week 5 Week 6 Week 7 Computer Graphics: Introduction Classes of graphical systems OpenGL glut Basic 2D and 3D Geometry Points and vectors Reference frames Transformations between reference frames Quaternions Simple Geometric Problems Distance to a line, to a plane Intersection problems Collision detection Simple Animation Path vs. trajectory Point kinematics Kinematics of solid objects Animation with glut Virtual Cameras Orthographic camera Pinhole perspective camera

CSC 406 Computer Graphics Fall 2011 7 Week 8 Weeks 9-10 Weeks 11-12 Week 13 Simple Geometric Models of Objects Discrete vs. continuous Parametric vs. implicit models Polygonal meshes Normal vectors Better Object Models Hierarchical models Splines, NURBS Texture maps Bump maps and displacement maps Animation, Part II Key framing Forward kinematics of articulated objects Inverse kinematics of articulated objects Misc. Problems Collision detection Optimization