Home Syllabus Lecture Assignment Example Reference CGPark MyLS
   [WLU Home Page]

Department of Physics & Computer Science

CP411 Computer Graphics 2024 Fall (Session A)

Instructor: Dr. Hongbing Fan (HBF)
Office: Science Building N2081
Email: hfan@wlu.ca

Welcome to CP411 Computer Graphics

The first class meeting is at 8:30 am Thursday, September 05. in room Science Building N1002.

The course web site on MyLS will be available on the first day of the term. This page is an external accessing point, providing syllabus, example and reference resources for your preview. Please read the course syllabus, should you have any questions about the syllabus, try to get them answered in the first class.

We will use C++ and OpenGL for graphics programming. If you want to do an early warm-up for the course, first go to the example page, and follow the first item to install the C++ development environment. Secondly, take a quick self-tutorial on C++ programming language, or take a quick warm up on C++ by examples.

This is an introduction course to computer graphics, we do more breadth covering than depth exploring on computer graphics. We will create and build a 3D graphics viewing system through a sequnce of assignments, and then use it for final project. To see what can be done for the project, please visit our CGpark.

Why taking this course?

  1. First of all, computer graphics is about image modeling, generation, storage and display, it is a hot field in computer scicence and engineering, and it has applications in many other fields.
  2. To understand computer graphics: Almost all images we see on computer or smart phone screens are results of computer graphics. Isn't it fascinating to know how computer images are generated?
  3. To understand how graphics hardware works: Every desktop computer or smart phone has a graphics processing unit (GPU). Isn't good to learn about GPUs and GPU programming, and to understand the impact of GPUs on today's AI computing.
  4. To understand the concepts and principles of computer image generation and graphics software development, and to create various graphics applications such as graphical user interfaces, video games, virtual reality, and data visualization. Isn't it cool to see and appreciate what you create?
  5. To provide a technical background for related fields such as computer vision, image processing, pattern recognition, and robotics.
  6. To apply and integrate knowledge from Geometry, Algebra, Calculus, Numerical Analysis (Scientific Computing), and Physics: How satisfying would it be to make actual use of what you've learned in math and physics courses in graphics programming?
  7. To use your knowledge and skills in data structures, algorithms, and software engineering: Performance is crucial for graphics, and efficient solutions are always pursued in computer graphics.
  8. To practice more complex programming projects: You will gradually develop a 3D graphics engine through assignments and then use it for the final project. This will enhance your knowledge and skills in software engineering and object-oriented program design and implementations.
  9. To gain experience with industrial computer graphics software tools such as C/C++ with OpenGL for graphics programming, and GPU programming using GLSL and OpenCL for high-performance computing.