Welcome to CS559!

by Eftychios Sifakis on September 4, 2017

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.

IMPORTANT CLASSROOM LOCATION CHANGE:

OUR CLASS MEETINGS HAVE BEEN RELOCATED TO COMPUTER SCIENCES AUDITORIUM 1240 – EFFECTIVE IMMEDIATELY!

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 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 }

Instructors office hours (exams week)

by Eftychios Sifakis on December 18, 2017

The instructor will hold his regular office hours on Monday Dec 18th (4:00-4:45pm) and additional office hours on Tuesday Dec 19th (4:00-4:45pm).

Summary final study guide

by Eftychios Sifakis on December 15, 2017

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] : You’ve reviewed parts of this for the midterm; now would be a good time to review Sections 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.5 is very important. 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. Section 15.6.1 is included, up to page 369 “Geometric Intuition …”

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.

From our discussion on rendering/raytracing/global illumination, the information you should be familiar with is focused on knowing what advanced appearance effects are considered beyond the scope of the standard GL pipeline (e.g. WebGL) as discussed in our slides from the Nov 6th & Nov 22nd lectures.

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

One practice final (additional one coming soon)

by Eftychios Sifakis on December 12, 2017

Dear students,

You can find the Spring’16 final exam for CS559 here. It is representative of the length (and, roughly, of the scope — although this year we had additional emphasis on texture, and a bit less emphasis on global illumination) you should expect.

Programming Assignment #10 : GraphicsTown Wrap-up

by Eftychios Sifakis on December 6, 2017

Due: Wednesday, Dec 13th (see the class late policy on the Syllabus) – NOTE: The last day the submission will remain open is May 19th, the before the final.

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 implement arc-length parameterization on one of your curves. It is best to do it on a curve that defines 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.
  • Provide user controls for the “tension” of curve segments.
  • Or, design motion patterns and behaviors (hierarchically modeled objects, with elements controlled by curves?) that are particularly creative.

 

Lecture notes Week 14 : Curves

by Eftychios Sifakis on December 6, 2017

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

Lecture Notes from Weeks 12/13 : Advanced texturing

by Eftychios Sifakis on December 2, 2017

Our lecture slides covering the discussion of advanced texturing effects can be downloaded here : [PDF]  [PDF]

Due: Friday, December 8th (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 / Light Maps
  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.

 

Reading Assignment #4 : Texturing

by Eftychios Sifakis on November 27, 2017

Due: Wednesday, December 6th

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]

Description

Principles and basic practices of texturing will be discussed in Chapter 11 of Fundamentals of Computer Graphics, and in Chapter 15 of Hart’s “Big Fun Graphics” book.

More advanced features are discussed in Hart’s Chapter 16 (which is very good, but only partially written). For a tour-de-force, read Chapter 6 of Real Time Rendering – this is a great resource. It’s an encyclopedic survey of things as they were in 2008. The foundations haven’t changed (although fancier new methods exist, and the fact that we have more programmable shading means we can do fancier things).

Required Readings

  • Chapter 11 of Fundamentals of Computer Graphics (Link)
  • Chapter 15 of Hart’s Big Fun Graphics Book (Link)
  • Chapter 16 of Hart’s Big Fun Graphics Book (Link)

Optional Readings

  • Chapter 6 of RTR (Link)

 

Programming Assignment #8 : GraphicsTown Part II

by Eftychios Sifakis on November 22, 2017

Due: Friday, December 1st

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 three 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.

 

Sneak peek : Programming Assignment #8

November 20, 2017

Your programming assignment #8 will be posted very soon (and will be due no earlier than Friday Dec 1st). In the meantime, you can take a sneak peek into last semester’s version, which will be almost identical [Link]

Read the full article →