Welcome to CS559!

by Eftychios Sifakis on January 23, 2018

Dear Students,

Welcome to CS559 “Introduction to Computer Graphics”. This web page will be your portal for all announcements related to the class, information about class logistics, and repository of lecture notes and supplemental information.

 

To get started, make sure to check out the Syllabus page for the most important general class information (including grading and administrative logistics), and the Calendar (link coming soon!) for a time-indexed view of topics and important special scheduling notices.

You will be getting information on reading materials as we go, but if you want to prefetch some information that will definitely be useful, take a look at the following tutorials/discussions:

That should be a good starting point! Please keep track of the posted deadlines for assignments (summarized in the “Week in 559” window on the right of the main page of the class). Also make sure to verify you have access to the Piazza and Canvas pages (linked for your convenience to the right of the main page). Have a great start to your semester and enjoy the class!

{ 0 comments }

Practice final exam

by Eftychios Sifakis on May 3, 2018

A practice final exam can be downloaded here [PDF]

{ 0 comments }

Summary final study guide

by Eftychios Sifakis on May 1, 2018

In order to facilitate your review for your final exam, we have compiled a list of most important topics from your readings. It should be made clear that this is not an exhaustive list of what you should know for the midterm (this would be: all the assigned readings, plus the information discussed in lectures), but is just meant to highlight topics that are particularly important.

From Foundations of Computer Graphics :

  • From Chapter 4 [Link] : The sections to emphasize are : Introduction, Section 4.1, 4.5, 4.8.
  • From Chapter 8 [Link] : Focus on Sections 8.1, 8.2, and 8.3.
  • From Chapter 11 [Link] : This is all good information. You may skip 11.1, and 11.3.1.
  • From Chapter 15 [Link] : Beginning of the chapter through Section 15.3.4 is very important. The discussion on curve length and re-parameterization is omitted. Section 15.3.5 might be useful for implementation purposes, but will not be targeted in the exam. You can skip 15.3.6. Take just a quick look at 15.4. Section 15.5 is very important; 15.5.3 you can skip. From Section 15.6.1 you should simply be familiar with the high-level properties (degree of continuity, approximating but not interpolating the control points) but you may omit the algebraic details.

From The Big Fun Graphics Book :

  • From Chapter 15 [Link] : All good material – you may skip Section 15.2.
  • From Chapter 16 [Link] : This is all useful and accessible (too bad the chapter is incomplete!)

From Real Time Rendering :

  • Chapter 6 [Link] is a fantastic reference for texturing, although it includes substantially more detail than we covered in class (or needed for your exam). You can skip Summed Area Tables (p. 167) and Anisotropic Filtering (p. 168), Section 6.2.5, 6.2.6, 6.4, 6.6., 6.7.4. Section 6.7.3 is great to know about, but you won’t be examined on it.

Our discussion of global illumination (last week of classes) is excluded from your final exam.

All the material included in Lecture Notes is highly relevant. Make sure to review those slides and/or supplementary documents.

{ 0 comments }

Dear students,

In addition to his regular office hours of Wednesday May 2nd (2:30-3:15pm), Prof. Sifakis will also be available on Thursday May 3rd (also between 2:30-3:15pm).

{ 0 comments }

Lecture notes Week 14

by Eftychios Sifakis on April 26, 2018

Our in-class discussion on curves closely reflects the discussion in chapter 15 of Fundamentals of Computer Graphics [PDF Link].

{ 0 comments }

Programming Assignment #10: GraphicsTown Wrap-Up

by Eftychios Sifakis on April 26, 2018

Due: Thursday, May 3rd (see the class late policy on the Syllabus) – NOTE: The last day the submission will remain open is one day before the final exam.

Synopsis: You will have the opportunity to complete and/or enhance your GraphicsTown project, and pursue extra credit by going beyond the requirements of assignments #7 through #9. In addition to optional embellishments described in the prior assignments, you will have the opportunity to incorporate (for bonus credit) elements of parametric curves and motion into your project.

Learning Objectives: The goal of this project is to give you the opportunity to venture deeper into advanced appearance effects (beyond what was minimally mandated before) and optionally gain experience with parametric curves and their use for crafting motion of animated scene elements.

Evaluation: We will grade on the scale explained in the Syllabus for turning a working version of the graphics town project that shows off the minimum required new features. We will give extra points for doing more than the minimum, or for creating particularly interesting things in the basic assignment.

Handin: Submit your code through Canvas [Link].

Description

In the fourth and final installment of the GraphicsTown project you will also the opportunity to wrap-up your project, adding any effects that fall under the scope of prior parts of the GraphicsTown project. In addition, you may experiment with adding motion to your GraphicsTown, and specifically implementing concepts related to parametric curves.

The requirements (for getting at least a “3” grade) are that you must submit a GraphicsTown project that satisfied the mandatory requirements of assignments #7 through #9. In more detail, this means that:

  • If your programming assignment #9 already satisfies the mandatory requirements given in all of assignments #7, #8 and #9, you can submit exactly the same assignment and you will be granted a minimum of a “3” grade. This does not mean that if you got “3”s in all of #7 through #9, you can simply submit the same assignment, if that grade was leniently given to you without satisfying the mandated requirements.
  • Any optional add-ons you have implemented before will count towards possible extra credit, but on a slightly more strict level of evaluation. No “5” will be given for programming assignment #10 without having implemented a significant extra body of work relative to #7 through #9.

For extra credit, consider doing some of the following:

  • Implement even more advanced appearance effects, beyond the minimum required in #9.
  • Use parametric curves to control the motion of objects in your environment. You can either have the motion be automatic, or optionally controlled by a slider (or both). You should aim to have both the position and the orientation of (at least some) objects be controlled by the parametric curve. You should also aim to have at least one object move around in a closed trajectory.
  • Optionally include implementations of one or more different types of cubic curves (e.g. Hermite and B-Splines). You can either have a switch that selects between 2 different curve types, or you can have 2 objects following 2 different trajectories (each of a different type).
  • Provide non-trivial user interaction to manipulate control points, i.e. altering the trajectory of objects based on user interface.
  • Draw elaborate “tracks” that objects move on (for example, rail tracks on which a train moves on)
  • Make vehicles with wheels that “roll” along a trajectory, in addition to moving along it.
  • Or, design motion patterns and behaviors (hierarchically modeled objects, with elements controlled by curves?) that are particularly creative.

 

{ 0 comments }

One-time change to instructors’ office hours (Wed 4/25)

by Eftychios Sifakis on April 24, 2018

Dear students,

The instructor’s office hours on Wednesday April 25th (previously scheduled for 2:30-3:15pm) will be held between 1:30pm-2:15pm instead. This is a one-time change. Same location, i.e. CS6387.

 

{ 0 comments }

Due: Thursday, April 26th (see the class late policy on the Syllabus)

Synopsis: You will add more advanced texturing effects to your GraphicsTown, in order to try out the ideas discussed in class.

Learning Objectives:
The goal of this project is to give you experience creating implementing more advanced visual effects using interactive graphics tricks.

Evaluation: We will grade on the scale explained in the Syllabus for turning a working version of the graphics town project that shows off the minimum required new features. We will give extra points for doing more than the minimum, or for creating particularly interesting things in the basic assignment.

Handin: Submit your code through Canvas [Link]

Description

By now you should be familiar with the Graphics Town Project, as in the past weeks you have been adding more interesting objects and textures. This week you will continue to add things – just this time, they’ll be fancier things.

Technically, you can add effects to the objects that you made last week – but the idea is that you keep adding more and more stuff so that the project becomes more and more interesting.

The objective for this week is to implement advanced appearance effects, by using the capability to manipulate textures for purposes more than just attaching a color texture to surfaces.  You are required to implement two such effects. Examples include:

  1. Skybox
  2. Projector textures
  3. Specular maps (check out the example here)
  4. Decal texture (using multi-texture)
  5. Bump mapping (normal mapping) to make a surface look “non-smooth”
  6. An intuitive use of two-pass (or multi-pass) rendering. You might try to fake a mirror (somewhat difficult), or include a closed-circuit-TV screen somewhere in your environment that shows how a camera somewhere in your scene views the world — just a couple of ideas; feel free to use your imagination.
  7. Pre-Computed Environment map to make reflections / fancy lighting environment
  8. Dynamic Environment map to make reflections of the actual scene
  9. Shadow maps (and other tricks to make shadows)

The last two (dynamic environment maps and shadow maps) require implementing multi-pass – which will be tricky given the graphics town framework. But if you pull it off, you will be rewarded. But it will be hard. Really hard.

Doing environment maps with a pre-rendered environment (like a skybox) is a much more reasonable thing to try. If you choose to do a skybox, make sure you do it correctly (a box that moves with the camera, rather than one that is just far away).

To get a satisfactory grade you have to show two add-ons from the list above. If you implement more than the required add-ons (or if you implement them with a notable degree of sophistication) you will be rewarded accordingly in your score.

 

{ 0 comments }

Lecture notes weeks 10-11

by Eftychios Sifakis on April 12, 2018

Practical texturing in WebGL [PDF]

{ 0 comments }

Programming Assignment #8: GraphicsTown Part II

by Eftychios Sifakis on April 10, 2018

Due: Thursday, April 19

Synopsis: You will add textured objects to your GraphicsTown project in order to practice working with basic texturing.

Learning Objectives:
The goal of this project is to give you experience creating textured objects and to use the WebGL machinery for textures. The focus here is on image textures (and regular ones) – there will opportunities later for other forms a texturing.

Evaluation: We will grade on the scale explained in the Syllabus for turning a working version of the graphics town project that shows off the minimum required new features. We will give extra points for doing more than the minimum, or for creating particularly interesting things in the basic assignment.

Handin: You will turn in your assignment on Canvas [Link]

Description

By now you should be familiar with the Graphics Town Project, last week you had the first part – adding a few object to the framework. This week you will continue to add object – just that this time you’ll add texture to the them.

Technically, you can add texture to the objects that you made last week – but the idea is that you keep adding more and more stuff so that the project becomes more and more interesting.

For this week, your project must contain objects that do the following things:

  1. You must have at least 2 different image-based textures on objects in your scene.
  2. At least one of the images must be one you found on the internet.
  3. At least one of the images must be one that you made yourself.
  4. It is required that of the textured objects must apply a texture that “wraps” around many triangles. That is a bunch of triangles need texture coordinates – and the object that the texture is applied to cannot be flat. The texture must extend beyond the flat part of the object. Putting a picture on a face of a cube doesn’t qualify. Putting a picture that wraps around a cube does.
  5. Your textures should be affected by lighting. (or at least some of them should).

It’s up to you what objects to make, and what textures to put on them – subject to the restrictions above. It’s OK to improve upon the objects you made for P7, or to add new object that make your town more interesting. We can look at the individual objects (that’s what the “Examine” mode is for).

These two new image-based textures are supposed to be image-based textures. You can of course add more than 2. And you can add procedural textures (in fact, the ground plane is a procedural texture). For this assignment, however, the main thing is to show that you can do image-based textures.

 

{ 0 comments }

Reading Assignment #4 : Texturing

April 5, 2018

Due: Saturday, April 14th Synopsis: This reading covers the theory of texturing, including both the basic practice, aliasing issues, as well as the types of tricks typically employed in order to generate more elaborate appearance effects using the stock graphics pipeline. Evaluation: Check/No Check (based on passing the Quiz). Handin: Submit quiz on Canvas [Link] […]

Read the full article →