Skip to content

msu/csci-441-spring2018

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computer Graphics CSCI 441

NOTE: This is a live document and is subject to change throughout the semester.

Computer graphics is a field of computer science that involves generating visual content. Applications of computer graphics includes modeling and animation software, CAD design software, image manipulation packages such as Photoshop or Illustrator, video games, medical visualisation tools and much, much more. In this class, we will cover some of the fundamentals of computer graphics; from transformations and camera projections, to light and shading models, to simulations that approximate phenomena in the real world. We will use C++ and OpenGL to explore practical, realtime, graphics programming while learning the theory behind it so you can apply it to other environments.

Assignments

Class will be a mix of lecture and in class lab assignments. There will be many lab assignments that are designed to give you a better understanding of the topics taught in lecture. Code will be provided to get you up and running with the labs. You may work in groups of two or three. You must demo your labs to me in class or office hours and push your code up to Bitbucket in a repository you've shared with me prior to class on the due date. There will also be a few major programming assignments as well. The program assignments will take significantly more time than the labs and are designed to inspire individual creativity and self expression. I’ll try to keep lectures as short as possible to give you time in class to work on your assignments with me available to ask questions. All assignments and other resources for the class will be made available via Bitbucket:

https://bitbucket.org/msu-cs/csci441-spring2018

Meeting Times

Tuesdays and Thursdays 15:05 - 16:20 in Barnard Hall 108.

Instructor

David L. Millman, Ph.D.

Email: david.millman@montana.edu

Office hours: Mon 17:00 - 18:00 and Thurs 12:00 - 13:00

Bitbucket username: david_millman

Grader

Amy Peerlinck

Email: amy.peerlinck@student.montana.edu

Bitbucket username: amy_linck

Textbook

Textbooks are optional but recommended

Online Resources

Class schedule

The lecture schedule is subject to change throughout the semester, but here is the current plan. Assignments and due dates will be updated as they're assigned in class.

January

Date Description Assigned Due Recommended Reading
1/11 Intro - applications of computer graphics Lab 0 FoCG Chapter 1
1/16 C++ overview / git basics
1/18 Rasterization / Barycentric coordinates / Color Lab 1 Lab 0 FoCG 2.7.1, 3.3
1/23 Barycentric coordinates FoCG 8.1.2
1/25 Overview of graphics pipeline Lab 2 Lab 1 GL Chapter 1, LoGL "Hello Tri"
1/30 Vectors / Coordinates / OpenGL basics FoCG 2, LoGL "Hello Window" & "Hello Tri"

February

Date Description Assigned Due Recommended Reading
2/1 OpenGL basics LoGL "Hello Tri"
2/6 Matrices, Rotation and Scale Lab 3 Lab 2 FoCG 6.1
2/8 Affine Transformations FoCG 6.3
2/13 Coordinate Transformations Lab 4 Lab 3 FoCG 6.5, 4.2
2/15 Projections FoCG 7.0-.1
2/20 Projections, Camera Program 1 FoCG 7.1-7.2
2/22 Diffuse Shading Lab 4 FoCG 10.1
2/27 Triangulation/Transforming Normals Lab 5 FoCG 6.2.2, David Eberly's trianguation notes

March

Date Description Assigned Due Recommended Reading
3/1 Standard Template Library/Phong Shading FoCG 10.2, Geeks for Geeks STL Notes
3/6 Problem Session Lab5(anywhere on earth)
3/8 Midterm Program 2
3/11 No class (due date, any where on earth) Program 1
3/13 No class (Spring Break) Lab EC 1
3/15 No class (Spring Break)
3/20 Polygon Soup / Element Arrays Lab 6 Lab EC 1 FoCG 12.1
3/22 Doubly Connected Edge List DutchBook 2.2
3/27 Texture Mapping Lab 6 FoCG 11.1-.2
3/29 Texture Mapping Pt 2 Lab 7 FoCG 11.2-.3

April

Date Description Assigned Due Recommended Reading
4/3 Texture Mapping in OpenGL LoGL "Textures"
4/5 Ray Tracing Program 3 Program 2 FoCG 4.1,.3
4/10 Computing View Rays Lab 8 Lab 7 FoCG 4.3
4/12 Computing Intersections FoCG 4.4
4/17 Quaternions Lab 9 Lab 8 FoCG 16.2
4/19 Spatial Data Structures FoCG 12.3
4/24 Where to go next Lab 9
4/26 Review/Wrap up Program 3

May

Date Description
5/4 Final - 12-1:50pm

Catalog Information

PREREQUISITE: M 221 and CSCI 232. High resolution computer graphics. 3D graphics programming using a high level API. Vector mathematics for graphics. Graphics primitives. Curve and surface representations. Transformations using matrices and quaternions. Representing natural objects with particle systems and fractals. Shading and lighting models. Global illumination models. Color representations.

Course Offerings

At the end of the course, students should be able to

  • Write basic graphical applications using OpenGL and C++
  • Understand the modern graphics pipeline and how to leverage hardware to write realtime graphics applications
  • Use vectors and matrices to transform geometry in 3D space
  • Understand common shading and lighting models for displaying 3D models
  • Use particle systems to simulate real world phenomena.

Course Evaluation

  • Participation 5%
  • Labs 20%
  • Programs 40%
  • Midterm 15%
  • Final 20%

Discussion Board

Group discussions, questions, and announcements will take place using Brightspace. It is OK to send me an email if you have a question that you feel is not appropriate to share with the class. If, however, you send me an email with a question for which the response would be useful to the rest of the class, I will likely ask you to post it.

Policy on Collaboration and Academic Misconduct

Collaboration IS encouraged, however, all submitted individual work must be your own and you must acknowledge your collaborators at the beginning of the submission.

On any group project, every team member is expected to make a substantial contribution. The distribution of the work, however, is up to the team.

A few specifics for the assignments. You may:

  • Work with the other people on your team.
  • Share ideas with other teams.
  • Help other teams debug their code.

You may NOT:

  • Share code that you wrote with other teams.
  • Submit code that someone on your team did not write.
  • Modify another's code and claim it as your own.

Using resources in addition to the course materials is encouraged. But, be sure to properly cite additional resources. Remember, it is NEVER acceptable to pass others work off as your own.

Paraphrasing or quoting another’s work without citing the source is a form of academic misconduct. Even inadvertent or unintentional misuse or appropriation of another’s work (such as relying heavily on source material that is not acknowledged) is considered plagiarism. If you have any questions about using and citing sources, you are expected to ask for clarification. My rule of thumb is if I am in doubt, I cite.

By participating in this class, you agree to abide by the student code of conduct. Please review the policy.

Policy on Assignments

All assignments must be submitted by the start of class on the due date. Late assignments will not be accepted.

For descriptive assignments and reports, the submission should be typed up and submitted as a PDF (LaTeX suggested but not required). For code assignments, well organized source code with clear comments should be submitted.

Policy on Class Attendance

Class attendance is required. If a student must miss a class, please notify me as soon as possible. Note that class participation is part of your final grade. If you do not show up you cannot participate.

Classroom Etiquette

Except for note taking and coding, please keep electronic devices off during class, they can be distractions to other students. Disruptions to the class will result in you being asked to leave the lecture and will negatively impact your grade.

Special needs information

If you have a documented disability for which you are or may be requesting an accommodation(s), you are encouraged to contact me and Disabled Student Services as soon as possible.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •