Location and Time: Gillet 231(Thursdays) and Art 047 (Tuesdays); TTH 1:00-2:40 PM
Instructor: Robert Schneider
Conatct Info:
- email: robert.schneider@lehman.cuny.edu
- web page: comet.lehman.cuny.edu/schneider/
- office hours: TTH 9:30-11 Gillet 200 and by appointment
Grading Policy:
Course Objectives:
- Projects -25%
- Project Tests- 25%
- Midterm- 20%
- Final- 30%
- Overview of traditional computer graphics and current applications of computational photography to graphics.
- Exploration of mathematical and artificial intelligence techniques used in computer graphics.
- Programming using the Processing Language to illustrate concepts.
- Introduction to software used in computer graphics
Accommodating Disabilities:
- Lehman College is committed to providing access to all programs and curricula to all students. Students with disabilities who may need classroom accommodations are encouraged to register with the Office of Student Disability Services. For more info, please contact the Office of Student Disability Services, Shuster Hall, Room 238, phone number, 718-960-8441.
Resources and Idealized Course Outline (feedback necessary to adjust pace):
I have lots of books on graphics that I can lend you. I will put some books on reserve.
I will use notes from the following free online courses at MIT
computer graphics 6-837
Digital & Computational Photography 6.815/6.865
I will use the following software in my introduction and throughout the course.
Cinema 4d-- Note I have to work out the registration code procedure for a student license. We have one through Professor Ferraro and I am in the process of nailing down the details. In the meantime please use their demo product you can have for a month.
Photoshop
- A major graphics package that I will use to demonstrate graphical concepts
- you do not need to learn the software unless you wish to learn a portion as a project
- there seems to be a free student version for you to use. We have full versions in the art department. If it takes a while to get student version you can download trial. Do soon.
- I will use this package throughout the course to demonstrate concepts.
Processing
- The major image processing software- massive
- I will use this to illustrate the connection between image processing and graphics.
- You can get a free 30 day trial but do not do this till you need it
- We have full versions in the art department
01.29.2015 Overview and Introduction:
- free graphics and image processing language- simplified Java- on math/cs macs
- tutorials -- to get started on pedagogial projects
- Hello Processing
- Images and Pixels
- Models, Texture, Manipulation, Cameras,Lights (no action (animation) in introduction-- we have enough to cover).
- Mathematical representation vs pictures on screen
- Photography can create models
- Major active area of research to build models from enormous amount of cell hone photographs. May be used in history, intelligence info, marketing ....
- Introduction With Cinema 4d
- Following notes -- made Feb 2
- HW: Due Monday the 9th
- In two dimensions :
- Can you prove that rotate does not change the lengths of line segments
- Can you prove that rotate and uniform scaling preserves the direction of a line
- move is intuitively defined as picking a new point for one end of line segment and drawing a line segment in same direction and same length to original line segment so these are easy for move
- What are you using as your definition of scale and rotate?
- HW: Due Thur 26th (will add more)
- You can move a line segment in cinema 4d by moving it in model mode or by moving it by moving both endpoints the same amount. Is there a difference?
- Explain from our formula of a line and convexity why moving the endpoints by the same amount will move the line by that amount.
- Show that moving the endpoints of a two point Bezier curve moves the curve.
- Lecture Feb 19
- Formula for a line and triangle as convex combinations
- some notes online covering convex combinations of two and three points
- scan conversion to give shading in graphics using topics discussed (much more than in lecture)
- A bilinear interpolation calculator
- The Q's and P's represent some property at the points (like gray scale or one of RGB of color or normals)
- The coordinate location of these properties (color?) are given by (x,y) or (x1,y1) etc.
- HWdue March 9
- try the calculator with some simple coordinates and values at the vertices to see how things work
- Why is this a convex combination?
- Show that if you put in the coordinates for Q11-->(x1,y1), Q21-->(x2,y1) and by hand see what vector you get then you get the coordinates of P-->(x,y)
- Lecture Feb 24
- Warping and Morphing on raster style graphics (we just do simple stuff)
- Introduction to Processing
- Projects in processing to see how these are implemented in raster graphics - bi-linear interpolation assignment
- HW: due March 17 Make a processing program that
- reads in a jpeg image
- on each mouseclick blows up the image by 1.1 uniformly
- use bilinear interpolation taught in class
- remember to figure out color at a point by looking at color of inverse image of blowup
- you will need some storage arrays
- use processing reference and sample programs from processing web pages
- for instance look at pixels[]
- your jpeg image will have a color in it to use.
- you will have to interpolate with the RGB of a color value at each element of pixels[] see functions blue(), green(),red() or look up bit masking
- Lecture March 3
- bezier curves
- Surfaces
- notes from web
- Lecture March 5
- Linear algebra and change of basis
- Lecture March 10-- mit notes still but will give other links too
- rotation in 3d
- matrices to represent transformations including translation
- adding a dimension
- getting points to screen
- another overview
- image plane and viewing window (viewport) for "camera"
- clipping -- many beautiful algorithms
- clipping lines need to be fast and do early-- in three space
- clipping polygons you clip against half planes
- Projecting to screen
- lectures with more details -- project instead of midterm
- Change to screen coordinates
- Orthogonal and Perspective Projection
- take lines to lines
- perspective has some trickiness with bezier curves
- Lecture March 17-- cinema 4d with relation to math have been covering
- I will give three tracks for midterm and final
- Track 1 -- I will give a take-home set of computer graphics theory problems you should be able to do. The tests will cover those problems.
- Track 2 -- You will be expected to show expertise in Photoshop and Cinema 4d and be able to explain the math concepts that are behind the operations. I will give you take-home problems to do in cinema 4d or photoshop. You will have similar problems to work on in class and will write short answers describing the mathematics behind the actions taken in cinema 4d (I will be doing this in class this week)
- Track 3 --- Consulting with me pick programming or theoretical projects to complete.
- HW-- You may do any of the tracks for hw and chose a different one for tests.
- Track 1
- In plane calculate the P matrix for rotating the i and j vectors by 45 degrees to get new vectors i' , j'
- Show that coordinates in i',j' are the old coordinates in i,j rotated by -45 degrees.
- Track 2 , 3 -- demonstrate what happens in cinema 4d. Take screen shots to show new coordinates. You dont have to calculate things just show them with a good examples on the screen.
- March 24: Lighting-- Materials
- You might want to join Lynda.com and see with a free trial if can be helped. They have lessons on these concepts in cinema 4d-- This will help you understand the concepts and practical work. I will cover some subjects theoretically and those will be in lectures.
- Recommended tutorials
- CINEMA 4D Essentials 4: Materials, Texturing, and Lights with Rob Garrott -- at Lynda.com-- need membership or free trial
- Creating Materials in CINEMA 4D with Donovan Keith-- at lynda.com
- What is UV mapping -- free tutorial-- dont think uses bodypaint but gives idea of concept
- if you find a good tutorial for bodypaint I will post here
- Use of hdri imaging to light a scene
- In R15 you can find the hdri files in
- content browser (side of object manager-- upper right window-->Presets-->Visualize---Materials-->HDRI
- drag one into materials window
- put it on sky object
- will light your scene
- March 26
- ray hitting a plane
- how to interpolate on triangle derived
- March 31
- demonstration of material properties
- demonstration of different ray casting, ray tracing, global illumination, caustics etc.
- See the lectures on rendering below. Note I obtain triangle interpolation differently
- Preparation for Midterm -- Tue April 21-- Will be given subset of appropriate questions in your track-- hand in prep as takehome part of midterm
- April 29
- Discussion of Gamma
- Second Program-- Due May 7: Make a Processing program that implements the part of the levels command of Photoshop that lets you set what gets mapped to black and what gets mapped to white (will go over in class). Change it so that it does the inverse command.
- Go over a Processing program that blackens out the image not in a given range of lightness values. This is still a point operation.
- See that it is a little too fine grained and you might want a blurry picture.
- Play with Gaussian average and then create light ranges
- Masks and Convolution
- work examples in photoshop-- do box function
- intuition from calculus
- gaussian average
- do two d normalization
Next: Convolution
Next: HDR Imaging and Tone Mapping
- Major use in lighting-- Debevec
- use of lagrange pyramid
- overview 1
- overview 2
- use in tone mapping by picking best pixels
- use in focal plane stacking in Zerene Stacker
- auto pano giga
Next: Detecting Features for Matching
- Using a mask to find a pattern
- processing program
- data.txt
- test image ( must click on gray area of image when use program-- very small 20X20)
- Note that you should blow up the filteredPic.jpg to see result. The whitest square is where the best fit is centered. It is fairly white all around so will have to use a Photoshop eyedropper tool to see result. The best coordinates are written out.
- Final
- Will be asked to modify Processing programs to do simple image processing. Bring in an image to work with.
- could ask you to take two images and subtract one from other
- could ask you to do the threshold command
- could ask you to filter image with two gaussians (different standard deviation) and subtract one from another.
- You may try to present how/why of corner detection or homographies or how we decide which are the best 4 points to use when matching photos in lieu of a final
Next: Major subject will not cover -- Use techniques above (and more)to estimate camera position and object location from many photographs
- Snavely- PhotoTourism
- structure from motion--sfm
- autodesk 123d catch is free app that lets you use cellphone to create 3d model from pictures