{"id":1874,"date":"2023-10-19T20:10:09","date_gmt":"2023-10-19T23:10:09","guid":{"rendered":"https:\/\/cs.smu.ca\/~jiju\/?page_id=1874"},"modified":"2023-11-28T21:17:02","modified_gmt":"2023-11-29T00:17:02","slug":"csci-4471-6671-computer-graphics-fall-2023","status":"publish","type":"page","link":"https:\/\/cs.smu.ca\/~jiju\/index.php\/teaching\/csci-4471-6671-computer-graphics-fall-2023\/","title":{"rendered":"CSCI 4471\/6671: Computer Graphics (Fall 2023)"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/10\/final-1.png\" alt=\"\" class=\"wp-image-1878\" width=\"981\" height=\"734\" srcset=\"https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/10\/final-1.png 799w, https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/10\/final-1-300x225.png 300w, https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/10\/final-1-768x575.png 768w\" sizes=\"(max-width: 981px) 100vw, 981px\" \/><figcaption class=\"wp-element-caption\">An image of procedurally synthesized terrain (Image courtesy: Amr Ghoneim, Computer Graphics, Fall 2023)<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Course Description<\/strong><\/h2>\n\n\n\n<p>This course provides an introduction to the field of Computer Graphics with a focus on rendering and modeling. We will cover the basic mathematical concepts, such as 2D and 3D transformations, discuss rendering algorithms such as ray tracing and rasterization, and study the geometric modeling of curves and surfaces. We will investigate how these fundamental components are integrated in current graphics processors and study the corresponding programming APIs.  Students will experiment with modern graphics programming and build demos in C++ and OpenGL ( GLSL or equivalent).  By the end of the course, the student must be able to:<\/p>\n\n\n\n<ul>\n<li>Explain and apply the fundamental mathematical concepts in computer-based image synthesis<\/li>\n\n\n\n<li>Implement a basic rendering system based on ray tracing<\/li>\n\n\n\n<li>Implement  a basic rendering pipeline based on rasterization<\/li>\n\n\n\n<li>Explain the core functionalities of the OpenGL graphics API<\/li>\n\n\n\n<li>Develop simple graphics programs using shader programming<\/li>\n\n\n\n<li>Explore geometric modeling using bezier curves and splines, NURBS etc.<\/li>\n\n\n\n<li>Implement the data structures for polygonal meshes<\/li>\n\n\n\n<li>Design and implement procedural synthesis methods<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Course Administrivia<\/strong><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><span style=\"color:#ff6663\" class=\"tadv-color\">Instructor<\/span><\/strong><\/h4>\n\n\n\n<p>Dr. Jiju Poovvancheri (e-mail:jiju.poovvancheri@smu.ca)<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><span style=\"color:#ff6663\" class=\"tadv-color\">Lectures<\/span><\/strong><\/h4>\n\n\n\n<ul>\n<li>Mondays (10:00am-11:15am) -SB155<\/li>\n\n\n\n<li>Wednesdays (10:00am-11:15am)-SB155<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><span style=\"color:#ff6663\" class=\"tadv-color\">Recitations<\/span><\/strong><\/h4>\n\n\n\n<ul>\n<li>Wednesdays (11:30am-12:45pm)- SB 155<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><span style=\"color:#ff6663\" class=\"tadv-color\">Office Hours (via MS Teams)<\/span><\/strong><\/h4>\n\n\n\n<ul>\n<li>Mondays (12:00-2:00pm) <\/li>\n\n\n\n<li>Wednesdays (1:30 &#8211; 3:00 pm) <\/li>\n\n\n\n<li>Fridays (11:00am-1:30pm) <\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><span style=\"color:#ff6663\" class=\"tadv-color\">Course Pages<\/span><\/strong><\/h4>\n\n\n\n<ul>\n<li><strong><a href=\"https:\/\/teams.microsoft.com\/l\/team\/19%3aDxHd8PHQsKlycGezmHEp1JwQCdV2vweBUToa85vN9Yo1%40thread.tacv2\/conversations?groupId=98c67306-3d99-410a-8e96-bda2e0649579&amp;tenantId=060b02ae-5775-4360-abba-e2e29cca6627\" target=\"_blank\" rel=\"noreferrer noopener\">MS Class Teams<\/a><\/strong><a rel=\"noreferrer noopener\" href=\"https:\/\/teams.microsoft.com\/l\/team\/19%3aPy4adcju8TwskpHR0tH5ST0lArWCsd12x-VTZBnBWwQ1%40thread.tacv2\/conversations?groupId=33ab7177-b5d3-4dcb-a990-af0054d026c1&amp;tenantId=060b02ae-5775-4360-abba-e2e29cca6627\" target=\"_blank\"> <\/a>(Lecture slides, discussion forum, grades)<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/github.com\/jijup\/GraphicsLab\" target=\"_blank\" rel=\"noreferrer noopener\">Github<\/a><\/strong> (Set up &amp; installation info, links to software libraries, starter codes of lab exercises &amp; assignments)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading has-quaternary-color has-text-color\"><strong>Previous Offerings<\/strong><\/h4>\n\n\n\n<ul>\n<li><a href=\"https:\/\/cs.smu.ca\/~jiju\/index.php\/teaching\/csci-4471-6671-computer-graphics\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Fall 2021<\/strong><\/a><\/li>\n\n\n\n<li>Fall 2019<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Tentative Schedule<\/strong> <strong>(Fall 2021)<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-columns has-3-columns is-layout-flex wp-container-4\">\n<div class=\"wp-block-column is-layout-flow\">\n<p class=\"has-text-align-center\"><strong>Date<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p class=\"has-text-align-center\"><strong>Topic<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p class=\"has-text-align-center\"><strong>Assignment<\/strong><\/p>\n<\/div>\n<\/div>\n\n\n\n<h5 class=\"wp-block-heading has-text-align-center\"><strong>Ray tracing<\/strong><\/h5>\n\n\n\n<div class=\"wp-block-columns has-3-columns is-layout-flex wp-container-8\">\n<div class=\"wp-block-column is-layout-flow\">\n<p>Sept. 6<\/p>\n\n\n\n<p>Sept. 11<\/p>\n\n\n\n<p>Sept. 13<\/p>\n\n\n\n<p>Sept. 18<\/p>\n\n\n\n<p>Sept. 20<\/p>\n\n\n\n<p>Sept. 25<\/p>\n\n\n\n<p>Sept. 27<\/p>\n\n\n\n<p>Oct. 2<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p>Introduction to the course<\/p>\n\n\n\n<p>Math Review<\/p>\n\n\n\n<p>Ray tracing-basics<\/p>\n\n\n\n<p>Ray tracing-Intersections<\/p>\n\n\n\n<p>Blinn-Phong Illumination Model<\/p>\n\n\n\n<p>Texture Mapping<\/p>\n\n\n\n<p>Antialiasing<\/p>\n\n\n\n<p>Acceleration Data Structures<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p>   <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Assignment 1 out (Sept. 27)<\/p>\n<\/div>\n<\/div>\n\n\n\n<h5 class=\"wp-block-heading has-text-align-center\">Rasterization<\/h5>\n\n\n\n<div class=\"wp-block-columns has-3-columns is-layout-flex wp-container-12\">\n<div class=\"wp-block-column is-layout-flow\">\n<p>Oct. 4<\/p>\n\n\n\n<p>Oct. 11<\/p>\n\n\n\n<p>Oct. 16<\/p>\n\n\n\n<p>Oct. 18<\/p>\n\n\n\n<p>Oct. 23<\/p>\n\n\n\n<p>Oct. 25<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p>Intro. to Rasterization <\/p>\n\n\n\n<p>2D &amp; 3D Transformations <\/p>\n\n\n\n<p>Midterm<\/p>\n\n\n\n<p>Graphics pipeline, OpenGL<\/p>\n\n\n\n<p>Shader programming<\/p>\n\n\n\n<p>Viewing, Clipping and Culling<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-quaternary-color has-text-color\">Assignment 1 due (Oct. 28)<\/p>\n<\/div>\n<\/div>\n\n\n\n<h5 class=\"wp-block-heading has-text-align-center\">Modeling<\/h5>\n\n\n\n<div class=\"wp-block-columns has-3-columns is-layout-flex wp-container-16\">\n<div class=\"wp-block-column is-layout-flow\">\n<p>Oct. 30<\/p>\n\n\n\n<p>Nov. 1<\/p>\n\n\n\n<p>Nov. 15<\/p>\n\n\n\n<p>Nov. 20<\/p>\n\n\n\n<p>Nov. 22<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p>Procedural Modeling<\/p>\n\n\n\n<p>Perlin noise &amp; Terrains<\/p>\n\n\n\n<p>Curves and surfaces <\/p>\n\n\n\n<p>Sub division surfaces<\/p>\n\n\n\n<p>Triangle Meshes<\/p>\n\n\n\n<p><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p>Assignment 2 out (Nov. 1)<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n<\/div>\n<\/div>\n\n\n\n<h5 class=\"wp-block-heading has-text-align-center\">Animation<\/h5>\n\n\n\n<div class=\"wp-block-columns has-3-columns is-layout-flex wp-container-20\">\n<div class=\"wp-block-column is-layout-flow\">\n<p>Nov. 22<\/p>\n\n\n\n<p>Nov. 24<\/p>\n\n\n\n<p>Nov. 29<\/p>\n\n\n\n<p>Dec. 1<\/p>\n\n\n\n<p>Dec. 6<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p>Intro. to animation<\/p>\n\n\n\n<p>Quiz 2<\/p>\n\n\n\n<p>Rigging and keyframing<\/p>\n\n\n\n<p>Physics based animation<\/p>\n\n\n\n<p>Review  &amp; Discussion<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-quaternary-color has-text-color\">Assignment 2 due (Dec. 5)<\/p>\n\n\n\n<p><\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns has-3-columns is-layout-flex wp-container-24\">\n<div class=\"wp-block-column is-layout-flow\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\"><\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Recitations<\/strong> <strong>(Tentative schedule)<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-columns has-4-columns is-layout-flex wp-container-29\">\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2021\/11\/Perlin128.png\" alt=\"\" class=\"wp-image-1425\" width=\"131\" height=\"131\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/11\/plane.gif\" alt=\"\" class=\"wp-image-1890\" width=\"180\" height=\"142\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2019\/10\/bunny2-min.gif\" alt=\"\" class=\"wp-image-505\" width=\"203\" height=\"171\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"2071\" height=\"722\" src=\"http:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2021\/09\/sampling_teaser.png\" alt=\"\" class=\"wp-image-1399\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2021\/09\/raytraced_image.png\" alt=\"\" class=\"wp-image-1398\" width=\"127\" height=\"133\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/11\/mesh_sky.gif\" alt=\"\" class=\"wp-image-1903\" width=\"153\" height=\"153\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2021\/10\/rasterize_teaser.png\" alt=\"\" class=\"wp-image-1403\" width=\"124\" height=\"132\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/11\/water-2.gif\" alt=\"\" class=\"wp-image-1896\" width=\"269\" height=\"151\"\/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<ul>\n<li>Recitation 1- <strong><a href=\"https:\/\/github.com\/jijup\/GraphicsLab\/wiki\/Recitation-00--Setting-up-the-Development-Environment\" target=\"_blank\" rel=\"noreferrer noopener\">Setting up the development environment<\/a><\/strong><\/li>\n\n\n\n<li>Recitation 2- <strong><a href=\"https:\/\/github.com\/jijup\/GraphicsLab\/wiki\/Recitation-00--Setting-up-the-Development-Environment\" target=\"_blank\" rel=\"noreferrer noopener\">Vector operations (C++ classes, objects)<\/a><\/strong><\/li>\n\n\n\n<li>Recitation 3- <strong><a href=\"https:\/\/github.com\/jijup\/GraphicsLab\/wiki\/Recitation-02-Blinn%E2%80%90Phong-Shading\" target=\"_blank\" rel=\"noreferrer noopener\">Blinn-Phong shading<\/a><\/strong><\/li>\n\n\n\n<li>Recitation 4- <strong><a href=\"https:\/\/github.com\/jijup\/GraphicsLab\/wiki\/Recitation-03--Supersampling\" target=\"_blank\" rel=\"noreferrer noopener\">Antialiasing using Jittering Supersampling<\/a><\/strong><\/li>\n\n\n\n<li>Recitation 5- <strong><a href=\"https:\/\/github.com\/jijup\/GraphicsLab\/wiki\/Recitation-04-Texture-Mapping\" target=\"_blank\" rel=\"noreferrer noopener\">Texture Mapping<\/a><\/strong><\/li>\n\n\n\n<li>Recitation 6-<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/jijup\/GraphicsLab\/wiki\/Rec-04-Rasterization-of-Line-&amp;-Triangle\" target=\"_blank\"><strong> <\/strong><\/a><strong><a href=\"https:\/\/github.com\/jijup\/GraphicsLab\/wiki\/Recitation-05-Rasterization-of-Line-&amp;-Triangle\" target=\"_blank\" rel=\"noreferrer noopener\">Rasterization of line &amp; triangle<\/a><\/strong><\/li>\n\n\n\n<li>Recitation 7- <strong><a href=\"https:\/\/github.com\/jijup\/GraphicsLab\/wiki\/Recitation-06-OpenGL-Shader-Programming\" target=\"_blank\" rel=\"noreferrer noopener\">Shader Programming &amp; Textures<\/a><\/strong><\/li>\n\n\n\n<li>Recitation 8-  <strong><a href=\"https:\/\/github.com\/jijup\/GraphicsLab\/wiki\/Recitation-07-Perlin-Noise\" target=\"_blank\" rel=\"noreferrer noopener\">Perlin Noise Generation<\/a><\/strong><\/li>\n\n\n\n<li>Recitation 9-  <strong><a href=\"https:\/\/github.com\/jijup\/GraphicsLab\/wiki\/Recitation-08-Terrain-and-Water(FrameBuffer)\" target=\"_blank\" rel=\"noreferrer noopener\">Terrain and Water<\/a><\/strong><\/li>\n\n\n\n<li>Recitation 10- <strong><strong><a href=\"https:\/\/github.com\/jijup\/GraphicsLab\/wiki\/Recitation-09-Mesh-Texturing\">Skybox and Texture Blending<\/a><\/strong><\/strong><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Assignments<\/strong><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><a href=\"https:\/\/github.com\/jijup\/GraphicsLab\/wiki\/Assignment-1-Backward-Ray-Tracing\" target=\"_blank\" rel=\"noreferrer noopener\">Assignment 1 (Ray tracing)<\/a><\/strong><\/h4>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<div class=\"wp-block-cover is-light\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim\"><\/span><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"1024\" class=\"wp-block-cover__image-background wp-image-1898\" alt=\"\" src=\"https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/11\/13-1024x1024.png\" data-object-fit=\"cover\" srcset=\"https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/11\/13-1024x1024.png 1024w, https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/11\/13-300x300.png 300w, https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/11\/13-150x150.png 150w, https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/11\/13-768x768.png 768w, https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/11\/13-500x500.png 500w, https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/11\/13.png 1080w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><div class=\"wp-block-cover__inner-container\">\n<p class=\"has-text-align-center has-large-font-size\"><\/p>\n<\/div><\/div>\n\n\n\n<h5 class=\"wp-block-heading\">Generated by Rodion, Computer Graphics, Fall 2023<\/h5>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"500\" height=\"500\" src=\"https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/11\/7.png\" alt=\"\" class=\"wp-image-1899\" srcset=\"https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/11\/7.png 500w, https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/11\/7-300x300.png 300w, https:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2023\/11\/7-150x150.png 150w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Generated by Jawadur, Computer Graphics, Fall 2023<\/h5>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><a href=\"https:\/\/github.com\/jijup\/GraphicsLab\/wiki\/Assignment-2-Procedural-Terrains\" target=\"_blank\" rel=\"noreferrer noopener\">Assignment 2 (Procedural Terrains)<\/a><\/strong><\/h4>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Grading<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-35\">\n<div class=\"wp-block-column is-layout-flow\">\n<p><strong>Assignments (40%)<\/strong> <\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-32\">\n<div class=\"wp-block-column is-layout-flow\">\n<p><strong>A1<\/strong><\/p>\n\n\n\n<p><strong>A2<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p><strong>20%<\/strong><\/p>\n\n\n\n<p><strong>20%<\/strong><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<ul>\n<li>There will be 2 programming assignments (2 x 20%).<\/li>\n\n\n\n<li> Use C++ for the coding part of the assignment.<\/li>\n\n\n\n<li>Starter codes for the assignments will be uploaded to the github repo.<\/li>\n\n\n\n<li>Algorithms, performance and code design will all contribute to your assignment grades.<\/li>\n\n\n\n<li> Assignments should be turned in via MS Class Teams.<\/li>\n\n\n\n<li>Every assignment should be accompanied with a brief documentation on your approach and coding, generated results and the reasons for failures, if any.<\/li>\n\n\n\n<li>Each assignment will have a duration of four weeks.<\/li>\n\n\n\n<li>No late assignments will be accepted unless prior arrangements have been made with the instructor at least 48 hours before the assignment due date.<\/li>\n\n\n\n<li>For all the assignments, a minimum set of required features will be defined. An assignment which implements these features satisfactorily will receive a grade of A. To get an A+, you will need to improve the basic assignment in some way: new features, technical improvements, good design, better interaction, efficiency, etc. We will discuss possible improvements in the recitation and in the assignment description.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-38\">\n<div class=\"wp-block-column is-layout-flow\">\n<p><strong>Midterm (15%)<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<ul>\n<li>Used to evaluate your knowledge of course contents.<\/li>\n\n\n\n<li>To be held during the lecture hour.<\/li>\n\n\n\n<li>If you miss the quiz for any reason: (1) You must contact your instructor within 48 hours, and (2) You will be required to fill out and submit a <a href=\"https:\/\/www.smu.ca\/webfiles\/DeclarationofExtenuatingCircumstances.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Declaration of extenuating Circumstances form<\/a>.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-46\">\n<div class=\"wp-block-column is-layout-flow\">\n<p><strong>Homework\/Recitations (15%)<\/strong><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-41\">\n<div class=\"wp-block-column is-layout-flow\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\"><\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Final Exam (30%)<\/strong><\/h5>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<ul>\n<li>There will be 7-8 C++ programming exercises. We will consider 5 best marks towards the final grading, i.e., 5 x 4% = 20%.<\/li>\n\n\n\n<li>The programming exercises are designed to help you building your assignments.<\/li>\n\n\n\n<li>Attendance in the recitations is required in this course.<\/li>\n\n\n\n<li>You will get 7 days to submit your completed code.<\/li>\n\n\n\n<li>Late submissions of the recitation exercises will not be accepted.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-44\">\n<div class=\"wp-block-column is-layout-flow\">\n<ul>\n<li>Saint Mary&#8217;s University ID is required.<\/li>\n\n\n\n<li>The final is a closed book with no electronics allowed.<\/li>\n\n\n\n<li>Scheduled by the Registrar during the formal exam period.<\/li>\n\n\n\n<li>The exam will cover all material discussed after the midterm.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>Notes:&nbsp;&nbsp;<br>The final mark will be a letter grade based on the scale described in Section 5 of the Academic Regulations in the University Calendar. There is no curving of grades, or grading based on rank (e.g., a certain number of \u201cA\u201d grades, etc.). Final grades are truncated to 1 decimal place and then rounded (.5 to .9 are rounded up, .0 to .4 are rounded down) to the nearest whole number.&nbsp;There will be no supplementary examinations.&nbsp; <\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Text Books<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-49\">\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2019\/08\/book1_orig.jpg\" alt=\"\" class=\"wp-image-325\" width=\"129\" height=\"165\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p><strong>Required:<\/strong><strong>Fundamentals of Computer Graphics, 3rd\/4th Edition<\/strong><br>Peter Shirley, Steve Marschner<br>A.K. Peters, ISBN: 978-1482229394\n\n<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-52\">\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2019\/08\/book2.jpg\" alt=\"\" class=\"wp-image-327\" width=\"131\" height=\"199\"\/><\/figure>\n\n\n\n<p><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p><strong>Reference: Realistic Ray Tracing, 2nd Edition<\/strong><br>Peter Shirley, Keith Morley<br>A.K. Peters, ISBN: 1-56881-198-5 <\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-55\">\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2019\/08\/41OHM2RPJSL.jpg\" alt=\"\" class=\"wp-image-341\" width=\"138\" height=\"201\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p><strong>Reference: Computer Graphics and Geometric Modeling<\/strong><br>David Saloman<br>Springer, ISBN-13: 978-0387986821      <\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-58\">\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/cs.smu.ca\/~jiju\/wp-content\/uploads\/2019\/08\/procedural_book.jpg\" alt=\"\" class=\"wp-image-386\" width=\"136\" height=\"174\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<p><strong>Reference: Texturing and Modeling: A Procedural Approach<\/strong> David S. Ebert et al. ,  Morgan Kaufmann, ISBN-13:  978-1558608481 <\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-64\">\n<div class=\"wp-block-column is-layout-flow\">\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-61\">\n<div class=\"wp-block-column is-layout-flow\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\"><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\"><\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Course Description This course provides an introduction to the field of Computer Graphics with a focus on rendering and modeling.&hellip;<\/p>\n","protected":false},"author":1,"featured_media":290,"parent":19,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/cs.smu.ca\/~jiju\/index.php\/wp-json\/wp\/v2\/pages\/1874"}],"collection":[{"href":"https:\/\/cs.smu.ca\/~jiju\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cs.smu.ca\/~jiju\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cs.smu.ca\/~jiju\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cs.smu.ca\/~jiju\/index.php\/wp-json\/wp\/v2\/comments?post=1874"}],"version-history":[{"count":11,"href":"https:\/\/cs.smu.ca\/~jiju\/index.php\/wp-json\/wp\/v2\/pages\/1874\/revisions"}],"predecessor-version":[{"id":1905,"href":"https:\/\/cs.smu.ca\/~jiju\/index.php\/wp-json\/wp\/v2\/pages\/1874\/revisions\/1905"}],"up":[{"embeddable":true,"href":"https:\/\/cs.smu.ca\/~jiju\/index.php\/wp-json\/wp\/v2\/pages\/19"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cs.smu.ca\/~jiju\/index.php\/wp-json\/wp\/v2\/media\/290"}],"wp:attachment":[{"href":"https:\/\/cs.smu.ca\/~jiju\/index.php\/wp-json\/wp\/v2\/media?parent=1874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}