Tuesdays and Thursdays 10:30 AM to 11:45 AM in HEC #111
Office Hours
Tuesdays and Thursdays: 9:00 AM to 10:15 AM at HEC# 218
Alternate Hours By Appointment
Pre-requisites
Computer Programming, OO Programming, Data Structure and Algorithms and Matrix Algebra. It is expected that you know basic geometry, algebra and basic knowledge of matrix algebra (addition/subtraction, multiplication, transpose, inversion).
Required Programming Background
This class is graphics programming intensive. You must have OO Programming experience.
In this class you will be programming in HTML, Javascript, WebGL 2.0 and GLSL!
NOTE: It is expected that the students have some undergraduate Graphics Programming background.
In this class you will be introduced to graphics programming using WebGL at a pace
sufficient for those with some graphics programming background.
Students completely unfamiliar to Graphics Programming, but wishing to continue in this class,
must put extra effort to develop proficiency in graphics programming. Here are a couple of suggestions for those students:
Plan to audit our undergraduate class CAP 4720, where
graphics programming using WebGL is covered in a slow and relaxed pace.
The class timings are 6:00PM - 7:15PM on Tuesdays and Thursday. Classes are held at CB1 320.
Take help from the Instructor during Office hours (i.e. Tuesdays and Thursdays 9:00AM to 10:15AM).
Required Text Books
Student must have access to one of the following two books:
- Physically Based Rendering, Third Edition From Theory To Implementation
by Matt Pharr, Greg Humphreys
- Fundamentals of Computer Graphics 3rd Edition by Peter Shirley (Author), Michael Ashikhmin (Author), Steve Marschner
Recommended Text Books
- Interactive Computer Graphics with WebGL by Edward Angel, Dave Shreiner
- WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL by Matsuda and Lea
Required Computational Resource
A WebGL2.0 enabled browser (preferably Chrome or Firefox) running on any computing hardware (no restriction on the hardware).
However, you need a text editor (such as Notepad++) to write and edit programs.
The following pages will help you verify whether your browser supports WebGL2.0 or not.
The student must make arrangement for this required computation resource.
Course Goal
This course will cover fundamental 3D Rendering with special emphasis on Realistic Lighting.
This course will review CG Math (Vector Algebra and Transformations that are at the foundation of all 3D graphics),
introduce the students to GPU based Graphics Programming using WebGL2.0 (OpenGL ES3.0) and Javascript.
The course will also present more advanced math needed as it becomes necessary.
Topics
Given below is a tentative list of topics to be covered during the course. These topics are to be viewed as general guidelines. The list is not final and will be adjusted as necessary.
Graphics Pipeline, WebGL+GLSL (See resources below)
CG Math Review
Color
Surface Shading
Texturing
Light and light transport
Reflection Models
Global Illumination Computation: Radiosity Method
HDR imaging and Display
Light transport inside participating medium and rendering
(This list does not show the exact order of the lectures.)
UCF's Golden Rule: As reflected in the UCF creed, integrity and scholarship
are core values that should guide our conduct and decisions as members of
the UCF community.
Plagiarism and cheating contradict these values,
and so are very serious academic offenses.
Penalties can include a failing grade in an assignment or in the course,
or suspension or expulsion from the university. Students are expected to
familiarize themselves with and follow the University’s Rules of Conduct
(see
http://www.goldenrule.sdes.ucf.edu/).
Student's Academic Activity Verification Policy:
All faculty members are required to document students' academic activity at the beginning of each course.
In order to document that you began this course, make sure to complete the first assignment by the by the end of the week (Aug 26).
Evaluation
The progress of the student will be evaluated through regular programming
assignments, and exams.
Total Points : 100
Programming assignments: (50 Points) Here is a tentative breakup of assignment points between
assignment types.
Practice assignments : 20 Points
Final project : 30 Points
Exams: 50 Points
Short Exams (Frequent) : 30 Points
Final Exam (date: check UCF Calendar) : 20 Points
The class will use +/- system for grading.
A Rough Guideline for Points to grade conversion:
A: 90 and above
B: 80 - 84 points (B+: 85-87, A-:88-89)
C: 70 - 74 Points (C+: 75-77, B-:78-79)
Short Exam Policies
Short exams will be held frequently (may be held during class hours or assigned as take home).
The exams held in class will be of closed book nature.
The questions will be on the theoretical and programming concepts covered in the class and in the assignments.
In general, there will be no make up for the exam. Students missing an exam will receive a zero grade for that exam.
Programming Assignment Policies
The practice assignments may be discussed with others, and with the instructor, but must be completed and submitted individually.
Practice assignment difficulty level will increase as the semester progresses.
The practice assignments must be turned in by deadline date and time, mostly set to 10:25 am of the date (just before the class time).
The major project must be completed and demoed on or before our last class day (Nov 30).
The project will be discussed in the class and
the students will be required to submit a regular biweekly update about the progress in the project.
Assignment and project submission is through WebCourses.
No late submission allowed.
All programming assignments must be done in HTML and Javascript using WebGL as Graphics API.