OpenGL SDL辅导、解析OpenGL SDL程序设计、讲解OpenGL SDL编程
- 首页 >> OS编程Advanced Graphics and Game Engine Design
Tuesdays: 7:00 pm – 9:00 pm 006 Benton Hall
2. Course Description
The course covers graphics hardware, game engine architectures, and the mathematics and algorithms used
to create digital games. Topics will include shader based rendering and programming. Students will implement
portions of a game engine which incorporates animation, collision detection, and simulated physics.
Programming required.
CSE 287 covers the mathematical underpinnings behind 3D image generation. In contrast, CSE 387 covers the
game engine architectures and shader based rendering. CSE 287 is the prerequisite for both CSE 387 and CSE
487. CSE 387 is not a prerequisite for CSE 487.
PREREQUISITES: CSE 287
In this course, 3D graphics programming will be accomplished on the IBM PC using OpenGL (Open Graphics
Library version 4.0 or higher) and and the SDL (Simple DirectMedia Layer) library. Shaders will be written in
the GLSL shading language. OpenGL is a graphics standard that provides advanced rendering features with a
simple programming model. SDL is a cross platform game development written in C. It allows windows system
independent applications to be written in C and C+ using OpenGL. The OpenGL Shading Language has been
designed to allow application programmers to express the processing that occurs at programmable points of
the graphics pipeline. Course projects and labs will be completed using C++ and Visual Studio 2017.
3. Textbooks
Required:
Sanjay Madhav, “Game Programming in C++: Creating 3D Games, “1st Edition,
Addison-Wesley Professional, March 6, 2018, ISBN-13: 978-0134597201 ISBN-10: 0134597206.
526 pages. ~39.54
1 of 5
Recommended:
Graham Sellers, Richard S Wright Jr., Nicholas Haemel, “OpenGL Programming Guide: Comprehensive Tutorial
and Reference,” 9th Edition, Addison-Wesley Professional; 2016, ISBN-10: 0134495497 ISBN-13:
978-0134495491, 976 pages. ~$27.79
Both texts are currently available through Safari Tech Books Online. You can access Safari for free by going to
http://www.lib.muohio.edu, selecting "Databases A-Z", and then "Safari Tech Books Online." You may need to
log in with your Miami username and password.
4. Code Resources
Download Visual Studio Community 2017 through the Microsoft Imagine. Use your Miami unique ID and
password to login. Click “Download from Site” at:
https://miamioh.teamdynamix.com/TDClient/Requests/ServiceDet?ID=9060
5. Other Resources
Architectural Review Board for OpenGL http://www.opengl.org/
OpenGL 4 Reference Pages http://www.opengl.org/sdk/docs/man4/
GLSL (Shading language) http://www.opengl.org/documentation/glsl/
6. Course Policies
Individual Responsibility
At Miami University, it is expected that students will spend a minimum of two to three hours outside of
class for every hour spent in class or lab. Bring questions to class.
Do not expect course materials to be perfect. Documents may contain typographical errors as well as
missing or incorrect information. Assignments may also be unclear. It is your responsibility to inform me
of ambiguities, errors or omissions as soon as possible so that they can be corrected.
Regularly check your Miami email for announcements about the course. Urgent corrections or additions
to assignments may be communicated in this manner.
I will not respond to emails sent to me on a 24/7 basis. Do not expect me to quickly respond to email in
the evenings or on weekends.
Attendance
You are allowed four unexcused absences without penalty. More than five minutes late = half absence
If you have more than four unexcused absences and the last day to drop has not passed, you will be
dropped from the course. If the drop deadline has passed, you will receive a failing grade in the course.
Regarding the idea of “excused” absences, the following excerpt is from Miami’s Student Handbook:
“There are no University-recognized excused absences except for religious observances that require
absence from a class session and other required class activities. Students must give written
notification to their instructor within the first week of class of the religious event that prohibits class
attendance and the date that will be missed, if officially known. Instructors will, without prejudice,
provide such students with reasonable accommodations for completing missed work. However,
students are ultimately responsible for material covered in class, regardless of whether the student
is absent or present.”
2 of 5
Participation:
Simply attending is not participation. Rather, participation includes all of the following:
● Completing the assigned readings prior to class (because this prepares you to take an active role
in class).
● Asking questions in class
● Volunteering answers to questions in class
● Helping other students during labs
● Provide corrections to and requesting clarification of class materials.
● Keeping material that is unrelated to this course closed on your laptop during lecture and
taking notes.
Getting Class Materials and Submitting Work:
Note outlines and other material for the course will be on the course canvas site. Projects and labs will be
submitted through this site as well.
Programs and Homework:
Assignments cannot be turned in late. Labs and projects that do not run or are in the wrong format will
not be graded and will receive a zero. The lowest lab grade will be dropped.
Start early and backup your work. Begin working on assignments on the day they are assigned NOT the
day before they are due. Plan to complete your work well before the due date. Starting 24 hours before
the due date, the instructor will not provide help on assignments.
Programming Style
All programming that is submitted as part of a lab or a programming assignment should follow the
departmental Programming Style Guidelines.
http://miamioh.edu/cec/academics/departments/cse/academics/programming-style/index.html
In particular, study the formatting, commenting, and naming conventions. Be consistent.
Quizzes
There will be regular quizzes throughout the course. Generally quizzes will be given through Canvas at the
end of the second class each week. Each quiz will cover the material covered in the previous week. the
lowest quiz score be dropped.
Exams
There will be one mid-term and one final exam.
The final exam will be cumulative. All exams are closed book.
There is no makeup for missed quizzes or exams. If you are absent, your grade for the exam will be zero.
Grading
Individual grades will routinely be posted on canvas. Check your grades regularly and immediately let me
know if something seems incorrect.
The final grade will be computed using the following weights:
Labs: 15%
Projects: 35%
Quizzes: 20%
Exams: 30%
Final letter grades will be assigned according to the following scale. Exam grades will be based on a
percentage of the highest score in the class.
A+ [97, 100] C+ [77, 80)
3 of 5
A [93, 97) C [73, 77)
A- [90, 93) C- [70, 73)
B+ [87, 90) D+ [67, 70)
B [83, 87) D [63, 67)
B- [80, 83) D- [60, 63)
F (0,60)
Academic Integrity:
WORK ALONE. Learn to help one another without sharing code. Review departmental academic integrity
expectations at
http://miamioh.edu/cec/academics/departments/cse/academics/academic-integrity/index.html
and make sure you understand them. Software for finding similarities between submitted assignments may be
used in this class.
People learn by doing the work themselves. All students shall comply with departmental academic integrity
expectations. Projects and assignments that are essentially identical will considered to be the work of another, and
will be treated as academic dishonesty.
Miami University Learning Community
Miami University is committed to fostering a supportive learning environment for all students irrespective of
individual differences in gender, race, national origin, religion, handicapping condition, sexual preference, or age.
Students should expect, and help create, a supportive learning environment free from all forms of prejudice.
Disparaging comments, sexist or racist humor, or questioning the academic commitment of students based upon
these individual differences are behaviors that undermine our learning community. If such behaviors occur in
class, please seek the assistance of your instructor or department chair.