Skip to content

MHebes/ComputerGraphics

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ComputerGraphics

This repository is for the Northeastern University Computer Graphics class in Spring 2020.

Syllabus, Schedule, and Roadmap

The following is our tentative syllabus for the course, some changes should be expected throughout the semester. I will announce in class or through e-mail any major changes. Please note that A2 does not actually exist -- due to some strangeness with numbering, A2 was skipped.

*** Note: Due to the COVID emergency, due dates here are recommended dates. All submissions MUST be in by April 15 for credit, but no late penalties will be applied.

Module Theme Date Topic Assignments Note(s)
1 Introduction Tues Jan 7 2020 Module 1 - Introduction to Computer Graphics, APIs, and OpenGL
  • Lecture outline
    • Course Structure
    • Introduction to Computer Graphics
    • Introduction to Graphics APIs and some History
    • Getting Started with the Qt
  • Lab
    • Qt
A0 Released (Due Jan 20, 2020) -- --
2 Fundamentals: Software Rasterization Tues Jan 14 2020 Module 2 - Introduction to C++ and Raster Graphics
  • Lecture outline
    • Drawing a Line
    • Drawing a Triangle
    • Filling a Line
    • Working with PPM
  • Lab
    • Basic Software Rasterizer
-- -- -- --
3 Tues Jan 21 2020 Module 3 - Math Foundations 1
  • Lecture outline
    • Linear Algebra
  • Lab
    • Starfield
A1 released (Due Feb 5. 2020) -- --
4 Tues Jan 28 2020 Module 4 - Painting and Viewing
  • Lecture outline
    • Painter's Algorithm vs. Z-Buffers
    • Frustums
    • Culling and Draw Order
    • Camera and Model Transforms
    • Matrix Examples
    • Spaces
    • Projections
  • Lab
    • Rotating Triangle
-- -- -- --
5 Using OpenGL Tues Feb 4 2020 Module 5 - Introduction to OpenGL
  • Lecture outline
    • From Software to Hardware
    • Some GPU History
    • Drawing a shape
    • Vertex Buffers
    • Vertex and Fragment Shaders
    • Index Buffers
  • Lab
    • First Shapes
A3 released (Due Feb 19. 2020) -- --
6 Tues Feb 11 2020 Module 6 - Color, Transform, and Error
  • Lecture outline
    • glError
    • Color
    • GLM
    • MVP
  • Lab
    • Color and Camera
-- -- -- --
- Tues Feb 18 2020 No class -- Instructor out of town
-- -- Erik out of town.
7 Tues Feb 25 2020 Module 7 - Camera and Lighting
  • Lecture outline
    • C++ Object lifetimes and memory
    • Abstraction in C++
    • Texturing
    • Mipmapping
    • Normal mapping
  • Lab
    • Abstraction
A4 released (Due Mar 27, 2020)*** Final Project Prep
- Tues Mar 3 2020 Spring Break
-- -- -- --
8 Tues Mar 10 2020 Module 8 - Camera
  • Lecture outline
    • Cameras
    • Lighting models
    • Shading models
  • Lab
    • Camera and Lighting
-- -- -- --
9 Tues Mar 17 2020 Canceled due to COVID
  • Lecture outline
    • Multiple Lights in Shaders
    • Normal Mapping
  • Lab
    • Multiple Lights
-- -- -- --
10 Tues Mar 24 2020 Module 9 - Lights, Multiple Lights and Normal Mapping
  • Lecture outline
    • Lighting
    • Multiple Lights in Shaders
    • Normal Mapping
  • Lab
    • Camera
    • Illumination
    • Multiple Lights
A5 Released (Due Apr 8, 2020)*** -- --
11 Tues Mar 31 2020 Module 10 - Scene Graphs and Terrain
  • Lecture outline
    • Trees
    • Scene Graphs
    • Triangle Strips
    • Heightmaps
  • Lab
    • Terrain
A6 Released (Due Apr 15, 2020)*** -- --
12 Tues Apr 7 2020 Module 11 - Framebuffer Objects and Post-processing
  • Lecture outline
    • Screen Buffers
    • FBOs
    • Kernels
    • Rendering Engines
  • Lab
    • Real Time Image Processing
5 slides There is no final exam here.
13 Tues Apr 14 2020 Module 12 - Ray Tracing
  • Lecture outline
    • Ray Tracing
  • Lab
    • Ray Tracer - Optional
-- -- There is no final exam here.

Course Description

This course teachings the fundamentals of Computer Graphics. We will be using C++ and OpenGL to explore computer graphics programming. C++ may be new to many students and often poses to be one of the challenges to entering the field of computer graphics so there will be additional guidance on learning this language. This course also provides a refresher of linear algebra throughout the course.

Registrar Description: Charts a path through every major aspect of computer graphics with varying degrees of emphasis. Discusses hardware issues: size and speed; lines, polygons, and regions; modeling, or objects and their relations; viewing, or what can be seen (visibility and perspective); rendering, or how it looks (properties of surfaces, light, and color); transformations, or moving, placing, distorting, and animating and interaction, or drawing, selecting, and transforming.

Course Objectives: By the end of this course, you will be ready to:

  • Build graphics applications using OpenGL and C++.
  • Be able to take more advanced graphics courses (Advanced graphics, Computer Vision, GPGPU, etc).
  • Understand how to utilize the GPU for general purpose programming (e.g. OpenCL).
  • Position yourself for jobs in gaming, entertainment, or hardware involving graphics.

Course Prerequisites

  • (Undergrad) Prereq. CS 3540 or permission of instructor
  • (Grad)Knowledge of computer graphics, differential calculus, operating systems concepts, and algorithms; restricted to students in the Khoury College of Computer and Information Sciences.

Additional Prerequisites

  • This course will be taught using C++. It is possible you have not taken a specific course on C++ --that is okay.
    • This means, you will learn more in this class. That is a good thing.
    • This means, you will have to work hard. I will support you in learning some C++, and early lectures will be devoted to some C++.
    • I feel strongly about using C++, as the game and entertainment industry largely uses modern C++. The C dialect is additionally used for programming GPUs, so it can be easier think in one language.
  • You should have basic knowledge in github, using any text-based editor, and how to compile, run, and debug programs.

Resources There will be no required textbook to purchase for this course. However, these resources have been vetted, and I recommend for mastery (while taking this course, and reviewing later on in your career).

Academic Integrity and Non-Discrimination

Students and instructors are to follow the Northeastern policies on these important issues.

  • Northeastern Non-Discrimination Policy - This classroom is a safe space for the instructor and students to talk about ideas, share viewpoints, and learn.
  • Northeastern Academic Integrity Policy - You only cheat yourself if you are not honest. Most often cheating occurs when an individual falls behind or perhaps has other circumstances occurring in their life. Please consult the instructor before ever considering cheating.
    • If you are caught cheating I have to report the violation. My official policy is you receive a 0 in the course. Always remember, if you use any external sources, you must cite them.
  • Student Code of Conduct: Students and instructors will follow the following guide for how we conduct ourselves. This is to create a respectful environment where everyone can learn.

Lateness, Attendance, and Make-up Policies

Students participating in varsity athletics(this does not include club sports or intramurals) or other University sanctioned events may have the need for a make-up. Please contact me in advance of such events, so that appropriate accommodations can be made.

Occasionally, other life events and circumstances occur that were not planned. If this is the case, please e-mail me privately.

E-mailing me asking for extensions just because is unfortunately not fair to your classmates. The 10% penalty for each day late has to be enforced so I do not get taken advantage of.

Students who do well in this course tend to show up to the course consistently, participate, and engage with their peers. Come to class, come on time, and build good habits! In-Class activities that are not attended are a zero.

Accessibility

Part of what makes Northeastern University unique, is our diverse cohort of students, faculty, and staff. In order to support this, Northeastern is committed to providing equal access and support to all qualified students through the provision of reasonable accommodations so that each student may fully participate in the University experience. If you have a disability that requires accommodations, please contact the Student Accessibility Services office at [email protected] or (617) 373-2675 to make an appointment with the Disability Resource Center representatives in 20 Dodge Hall to determine appropriate accommodations.

Assessment/Course Policies

Please find below the grading distribution that will be used for this course to compute a weighted average for your final grade. You will find grades you earn through the semester on blackboard and your final grade in banner. As a result of the COVID-19 pandemic, we will not have a final project. To re-balance the grading, labs will be worth an additional 5% and Assignments an additional 15%.

  • In-Class Activity: 5%
  • In-Class Labs:     20%
  • Assignments:       75%
    • (Each Assignment worth the same % of points)
  • The grade system follows the University Grading System.
    • A  = 95 – 100
    • A- = 91 – 94
    • B+ = 87 – 90
    • B  = 83 – 86
    • B- = 80 – 82
    • C+ = 77 – 79
    • C  = 73 – 76
    • D+ = 67 – 69
    • D  = 63 – 66
    • F  =  0 – 62
  • In the event of a snow day (i.e. we miss a lab or in-class activity) the weight of each assignment increases (There may also be shuffling of course material if we are interrupted).
  • The expectation is that the assignments are fair but difficult, so you should start early!
  • Late Submissions of Assignments receive 10% off per day submitted late (up to 3 days max, then 0% received).
    • Unfortunately, with larger classes I cannot make individual exceptions fairly to your classmates who are likely making other personal sacrifices.
  • Assignments that do not compile/open receive no credit Simply put, programs that do not compile do not do anything.
  • There are no "re-grades" or points awarded one week after your grade is posted. "re-grades" may result in a higher, equal, or lower score.
    • There are no "re-grades" after the semester is over.
    • Do not ask multiple members of the course staff for "re-grades"
  • If you are currently wait listed, you must submit your homework on time. That is the gamble! If you do not have blackboard access, you will submit by e-mail or other course mechanism.
  • There are no extra credit assignments. I reserve the right to add points to assignments that do go above and beyond however.
  • I reserve the right to modify the grading scale in your favor if you show exemplary proficiency in any of the categories. I will never modify the scale to lower a students grade.
  • In class work cannot be made up at a later date unless otherwise arranged with the instructor well in advance.
    • Course work completed after the date cannot be graded, as solutions will have been discussed (this includes if taking this course for an Incomplete).
    • Once again, "in-class" work must be completed in-class unless there is a documented emergency or you have prearranged with the instructor a make-up well in advance.
  • No Facebook, no cell phones. Not only does it distract you, it distracts others! (Divide your tuition by lecture hours and perhaps you will be more motivated as well!)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 95.8%
  • Objective-C 1.7%
  • Other 2.5%