CMPS-3480 Computer Graphics
Computer Graphics
CMPS 3480 - Fall 2019

Gordon Griesel
Office: Sci III 337
Office Hours: see my schedule, or make an appointment
Email: gordon@cs.csub.edu
Course web site: https://www.cs.csub.edu/~gordon/3480/
Class meets:
MWF  12:00pm - 12:50pm  in Sci III 240 (lecture #82897)
Thur 10:00am - 12:30pm  in Sci III 240 (lab #82898)


Course Description
This course introduces the fundamentals of Computer Graphics.
From the catalog:
Introduction to computer graphics hardware, animation, two-dimensional
transformations, basic concepts of computer graphics, theory and
implementation. Use of graphics APIs such as DirectX or OpenGL.
Developing 2D graphics applications software.
Prerequisite: CMPS 223, 2020, with C- or above.

Lecture Topics and Rough Schedule
The topics below are the general subjects of the course, and will
be introduced and discussed sequentially as the course progresses.
Subjects could be added or removed.

Raster graphics
	C/C++ graphics framework in Linux and XWindows.
	Color, pixels, lines, line-drawing algorithms, DDA, Bresenham.
	Keyboard/mouse interaction, line clipping, simple animation.
	Bezier curves, splines, quadratic and cubic, curve resolution,
	midpoint algorithm, rubberband and rigid line segments,
	kinematic chains, and gravity.
	Filling areas: scanline, floodfill, Monte Carlo method.
	Fill: window, circle, square, rectangle, checkerboard, triangle.
	Odd/even method, 3 half-spaces, barycentric coordinates.
	PPM image format, texture mapping.
	Scan conversion.
Ray tracing
	Ray casting, orthographic projection, rays, vectors, planes.
	Normal, dot product, cross product, Cartesian coordinate system,
	Right-hand rule, Up vector.
	Object intersection: plane, ring, sphere, cylinder, cone.
	Lighting: ambient, diffuse, specular, highlights.
	Shading: Gouraud, Phong, Blinn, Lambert.
	Shadows, hard/soft edge, caching.
	Texture: checker, Perlin noise, image mapping.
	Optimization, BVH bounding volume hierarchy.
OpenGL
	Rendering pipeline, window management, single/double buffering.
	Orthographic 2D, perspective 3D.
	Primitive points, lines, shapes.
	Transformation matrices, translation, rotation, scaling.
	Object space, World space.
	Model building with import/export.
	Texture mapping: tiling, mipmapping.
	Animation, physics, collision detection, particle systems.
	Shaders.


Textbooks:
Our textbook material will come from the school's Safari website.
These books are provided free by the CSUB Library.
Sections of the following books will be used:

Fundamentals of Computer Graphics, Fourth Edition
By: Steve Marschner; Peter Shirley
Publisher: A K Peters/CRC Press
Pub. Date: April 8, 2016
Print ISBN-10: 1-4822-2939-0
Print ISBN-13: 978-1-4822-2939-4

Computer Graphics Through OpenGL
By: Sumanta Guha
Publisher: A K Peters/CRC Press
Pub. Date: 2014
ISBN-13: 978-1482258394
ISBN-10: 1482258390


Grading Policy Weekly assignments 50% . labs . homework . quizzes Exams 25% Project 25% ------------------------ Total 100% Grading scale used during the semester... A 93% A- 90% B+ 87% B 83% B- 80% C+ 77% C 73% C- 70% D+ 67% D 63% D- 60% F 0%

Attendance Class attendance is both recommended and required. Attendance is usually taken before class begins. When our class time-block starts, you should already be in your seat and ready to go. Not being in the classroom when class begins is an attendance mark. One attendance mark is no big deal. The second attendance mark causes a deduction of 1/2 percent to your overall course grade. The count then starts again. Every second attendance mark causes a 0.5% deduction in your grade. Note: Current time is determined using an Andriod phone which runs about 15-seconds behind the official U.S. time presented on www.time.gov. Plan your time using time.gov and never be late. Late arrivals Arriving late to class after roll has been taken causes an attendance mark. If you do arrive late, enter quietly and do not walk across the classroom looking for a seat. A disturbance to the class can cause an additional attendance mark. Labs Labs are hands-on assignments designed to be done in the classroom on classroom computers. You may install the necessary components on your own laptop computer, and bring it to class. - Attendance is required for any credit. - Full attendance is required for full credit. Each lab will have some tasks that are due by the end of the lab period. A lab assignment could be extended into a homework assignment. Important: Do no arrive late to a lab session and then ask another student to help you with the assignment. This can result in a score of zero. Ask your instructor for help instead. Homework Homework assignments and due dates will be posted on the course website. It is common for a lab assignment to be extended into a homework assignment. Sharing of assignment files is not allowed. If you miss a class session, do not ask for or accept the completed or partially-completed assignment files of another student. This will result in a score of zero for all students involved. Instead, ask your instructor how to get caught-up with the class. Quizzes A quiz is a short exam that covers current material from reading, lecture, lab, homework, and project material. Quizzes can be online or written. A quiz can be given at any time during any class session. Exams Exams will be announced in advance. Late Assignment Policy Assignments submitted late are not accepted and receive a score of zero. Compile and build standards for all work Compile flags C++11, C++14, and C++17 are not needed for work in this course. If you need them, please make sure your programs compile on the Odin server and on our classroom computers. Time Conflicts Time conflicts are not allowed. Your own personal schedule must allow you to arrive on-time to class, and stay for the entire class period. CMPS-3480 is a hands-on course taught in-person in the classroom by your instructor. This course is in no way an on-line course. In-class assignments are not to be done at some remote location. All exams require your in-class on-time attendance also. Accommodations Students requiring accommodations should speak with the instructor at the start of the course. To make arrangements for accomodations, please contact SSD at the following link: http://www.csub.edu/univservices/ssd/services2.htx Classroom Behavior Please do not... • wear headphones of any type in the classroom. • use your cellphone during class time. • walk across the classroom while a lecture is in progress. • hold a conversation with another student during a lecture. Absence from class If you miss a class and wish to make up the work, it is your responsibility to inform your instructor of the reason for missing class (documentation required) and to arrange to make up exams, quizzes, and class work, to the extent that this is possible. Excusable absences include, but are not limited to: Illness, injury, family emergency, etc. See a complete list at CSUB Catalog page 64. Recordings Under California Education Code Section 51512, it is illegal for any person, including a student, to use an electronic device to record what is happening in the classroom without the consent of the instructor. This includes photos. The instructor for this course does not give consent for recording of any kind. If a disability requires you to record a class session, then please contact SSD so accommodations can be made. Academic Integrity Policy All work done in this course is individual work, unless specified otherwise. Please do not share your work with other students. Refer to the Academic Integrity policy printed in the campus catalog and class schedule. Violations are enforced in accordance with the Department's policy on academic honesty. Amendments Your instructor reserves the right to amend this syllabus during the semester.