CS 470 - Advanced Graphics Programming
Fall 2014
Class times:
- Section 101, T/Th 12:30 - 1:45PM in KEC 118
Instructor:
- David Babcock, dbabcock@ycp.edu
Office hours (KEC 101): MW 1-3, TR 2-3, or by appointment
Course Description
This course is a follow up to CS 370 and will explore more advanced graphics programming topics. Topics will include creating geometry using meshes, applying stencil and accumulation buffers for shadows, developing both application and GPU particle systems, advanced lighting effects, environment and cube maps, and other advanced shader effects. Both HLSL (DirectX) and GLSL (OpenGL) shader languages will be used for implementation of the various shader effects. Students will demonstrate their knowledge through several projects throughout the semester.
Prerequisites
CS370 with a grade of 2.0 or higher.
Textbook
Luna, Frank D. Introduction to 3D Game Programming with DirectX 11. Mercury Learning, 2012.
Frank Luna's supplementary materials.
Supplementary Reference
Course Structure and Expectations
Class time will be spent primarily on discussion of reading topics and working on the labs and course projects. In general, I will avoid giving lectures. It is very important that you do the reading; otherwise, it will be difficult for the class time to be used effectively.
Completing the in-class labs is very important as they will lay the foundations you will need for the projects. If you do not complete a lab in class, I will expect you to complete it on your own outside of class.
As this is an advanced elective course, you will only get as much out of this course as you put into it.
Learning Outcomes
By the end of the semester you will be able to
- Write graphics programs using the DirectX API
- Write advanced vertex and fragment shaders using HLSL and/or GLSL, Cg
- Utilize the stencil and accumulation buffers for advanced effects such as shadows and stereoscopic rendering
- Use basic ray tracing methods to render photorealistic scenes
- Apply particle systems and NURBS to scene generation
Policies
Grades
Grades are assigned on a 100-point scale:
Numeric Range Letter Grade 90-100 A (4.0) 87-90 B+ (3.5) 80-87 B (3.0) 77-80 C+ (2.5) 70-77 C (2.0) 60-70 D (1.0) 0-60 F (0.0)
Your overall grade for the course will be determined as follows:
- Topic lecture: 15% (†)
- Midterm project: 35% (*)
- Final project: 45% (*)
- Attendance and participation: 5%
(†) The lecture material must consist of a document describing the details of the topic along with a well defined lab activity.
(*) The two course projects must be done individually and demonstrate incorporation of the various effects covered in class. Collaboration is encouraged for high-level conceptual discussions only. Sharing of code is expressly forbidden and will be considered academic dishonesty.
Course Website
Please check the course web page, http://ycpcs.github.io/cs470-fall2014/, regularly for important announcements.
Reading Assignments and Labs
Reading assignments are posted in the Schedule. Each reading assignment will be posted at least 1 week before the class in which the topic will be covered.
I expect you to do each reading before class.
Labs will be posted as zip files on the course web page, http://ycpcs.github.io/cs470-fall2014/labs.
Course Projects
This course will be primarily project based and contain two projects throughout the semester. The midterm project will be similar to the final project from CS370 to demonstrate the basic graphics concepts such as geometry, lighting, texture mapping, etc. using the DirectX 11 API. The final project will be more comprehensive to include advanced effects such as particle systems, stencil/accumulation buffer effects, shadow mapping, geometry shader effects, etc.
The grades for the projects will depend on how well each effect is utilized along with extension of the effects above and beyond what is provided in class. Students will be required to demonstrate both projects.
Academic Integrity
The college catalog states the following:
Academic dishonesty will not be tolerated at York College. Academic dishonesty refers to actions such as, but not limited to, cheating, plagiarism, fabrication of research, falsification of academic documents, etc., and includes all situations where students make use of the work of others and claim such work as their own.
Please refer to the college catalog for an explanation of the official college policies relating to academic integrity.
The following policy pertains to the projects for this course:
All graded projects are to be completed individually. I encourage you to discuss high level concepts and strategies with other students, but any work you submit must be yours alone.
Direct copying of code or other work from other students, web sites, or other sources is absolutely forbidden under any circumstances.
Any sources (books, websites, articles, fellow students, etc.) that you consult must be properly acknowledged. In general, I encourage you to use other resources beyond those given in class, however you must reference the source even if you have adapted the code.
Any violation of the course's academic integrity policy will be referred to the Dean of Academic Affairs, and could have consequences ranging from a 0 on an assignment to dismissal from the college.
Attendance and Participation
I expect you to attend class and participate regularly in class activities. If you miss a class, please notify me in advance. You are responsible for all material covered in class, regardless of whether or not you were present. If you attend and participate in class regularly, you can expect to receive full credit for attendance and participation. Frequent absence and/or lack of participation will reduce the credit you receive for attendance and participation. You are responsible for keeping up with the reading assignments.
Use of Personal Technology in the Classroom
While York College recognizes students’ need for educational and emergency-related technological devices such as laptops, PDA’s, cellular phones, etc., using them unethically or recreationally during class time is never appropriate. The college recognizes and supports faculty members’ authority to regulate in their classrooms student use of all electronic devices.
Communication Standards
York College recognizes the importance of effective communication in all disciplines and careers. Therefore, students are expected to competently analyze, synthesize, organize, and articulate course material in papers, examinations and presentations. In addition, students should know and use communication skills current to their field of study, recognize the need for revision as part of their writing process, and employ standard conventions of English usage in both writing and speaking. Students may be asked to further revise assignments that do not demonstrate effective use of these communication skills.
Disability Support Services
If you had an IEP or 504 plan in high school or if you have a disability or health condition that impacts you in the classroom, please contact Linda Miller, Director of Disability Support Services, at 815-1785 or lmille18@ycp.edu to discuss obtaining the accommodations for which you may be eligible. If you already have an accommodation memo and wish to access your accommodations in this class, please see me confidentially to discuss.
Disclaimer
This syllabus is subject to change by the instructor.