340 likes | 459 Views
SE 313 – Computer Graphics and Visual Programming. Lecture 1: Introduction Lecturer: Gazihan Alankuş. Please look at the last three slides for assignments (marked with TODO ). Briefly. A coding-heavy class with some simple math You should be comfortable with programming
E N D
SE 313 – Computer Graphics and Visual Programming Lecture 1: Introduction Lecturer: GazihanAlankuş Please look at the last three slides for assignments (marked with TODO)
Briefly • A coding-heavy class with some simple math • You should be comfortable with programming • 8 labs in which you code in class and get graded • Preparatory homeworks before each lab • Term project
Outline • Me • Logistics of class • You • Class • HOMEWORK 1!!!
Outline • Me • Logistics of class • You • Class • HOMEWORK 1!!!
Instructor • Dr. GazihanAlankuş • METU, BS 2002, MS 2005 • WUSTL, PhD 2011 • Currently a Lecturer (no office…) • Background • Some industry experience (including Google) • Some computer graphics research in the past • Now I get to teach computer graphics • reasonable > idealistic • Please use gazihan.ieu@gmail.com for class-related e-mail exchange
Can you understand me? • English language is just a tool, not a goal. • The goal is to communicate and learn. • Stop me when you don’t understand something. • In general, be active in class.
Outline • Me • Logistics of class • You • Class • HOMEWORK 1!!!
Logistics • Website • http://www.cse.wustl.edu/~gazihan/teaching/12spring/se313/ • Reach from my homepage (Google me if you must) • Slides and extra material • Google group • http://groups.google.com/group/ieu-se313-graphics-spring-2012 • I will send announcements using the Google group
Logistics • Grades • Attendance (except today) • Labs / homeworks • Project • Midterm • Final
Labs • A week before the lab • We will learn the topic in classroom • Homework • The lab will be much simpler if you do it • Graded at the beginning of the lab • Lab will be in the classroom • Last two hours of class • You will use your own laptops • I will supply boilerplate code • You will add code about the main topic
Projects • Programming project related to computer graphics • You choose the topic • I will supply suggestions that you can choose from • You can merge this with projects from other classes • Group of at most three • Expectation will be proportional with group size • Everybody contributes • You can use other people’s code (samples, libraries, etc.), but you have to clearly indicate it. I will not tolerate cheating.
Outline • Me • Logisticsof class • You • Class • HOMEWORK 1!!!
Let’s get to know you • Introduce in detail, from where, etc. • Registered? Why? • What do you expect • from this class? • to see happen by the end of semester? • Programmer? • C/C++? IDEs? Debugging? Open source? SE116? • What do you know about computer graphics?
Outline • Me • Logisticsof class • You • Class • HOMEWORK 1!!!
Class • What is computer graphics? • Let’s watch some videos
Computer Graphics and Visual Programming • What it is • Theoretical basis of 3D graphics • Coding them with OpenGL • Real-time rendering using the GPU • What it is not • Creating user interfaces with buttons, etc. • Take SE 204 Human-Computer Interaction for that
Graphics vs. Vision • Computer Vision • images -> computer • Computer Graphics • computer -> images
Computer Graphics • Using computers to store and generate images of virtual scenes • There are different ways • We will be focusing on using GPUs to render in real-time (using OpenGL) • We will also talk about the theory behind it
How Do Computers Create and Display Images? • Store abstract representation of a scene • Perform the necessary projection for the output device (2D image, 3D hologram) • Use the output device (monitor) to display it to the user
Today We Have Better Displays • Active matrix systems (LCD, Plasma, LED, etc) • 3D displays (with or without glasses)
They All Display Pixels • The images are stored and displayed as a matrix of colored points Mixture of red, green and blue [adobe.com]
The Goal is to Fill the Pixels • Various mathematical techniques to convert your data to pixel output • Good news: OpenGL does this for us using our GPUs in real-time. • We will learn how to use OpenGL
Class • Learning about computer graphics techniques and applying them in programs using OpenGL • This is my second time teaching this class, this is an improved version • Syllabus will be updated soon: • http://ects.ieu.edu.tr/syllabus.php?section=ce.cs.ieu.edu.tr&course_code=SE%20313&cer=0 • Book is accurate. • Get the book! • Reading assignments
Outline • Me • Logisticsof class • You • Class • HOMEWORK 1!!!
TODO: Google Group • Do either one of these: • Go to http://groups.google.com/group/ieu-se313-graphics-spring-2012 and apply for a membership. • Or, send an e-mail to gazihan.ieu@gmail.com and I will invite your e-mail to the Google group. You will have to accept the invitation. • I will use this for class announcements • You can also send questions, comments, helpful tips, or announcements to it but I will moderate your e-mails.
TODO: Homework 1 (bonus) • Download and install GLUT on your laptop • Windows: http://www.xmission.com/~nate/glut/glut-3.7.6-bin.zip • Linux: install freeglut-dev using your package manager • Try to compile this sample GLUT program: • http://www.cse.wustl.edu/~gazihan/teaching/12spring/se313/material/week1/gluttemplate.c • Compiling and linking • In Linux it should be easy, glut includes and libs will be in the right places • In Windows, you need to do either one of these: • Point your compiler’s include and library directories to the glut installation • Find where gl.h is in your system and copy glut files to appropriate locations. Below are examples from my system: • glut.h to C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\glor C:\MinGW\include\gl (for VC or mingw) • glut32.lib to C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib or C:\MinGW\lib • In compilers other than Visual Studio, you need to tell the linker to link against glut, glu and gl libraries (or glut32, glu32 and gl32). • Example for linux: gcc -Wall -o testprogtestprog.c -lglut -lGLU • Running • Linux should be fine. May need to do the following: • LIBGL_ALWAYS_INDIRECT=1 ./program • In Windows, the program needs to find glut32.dll. Either put it next to the exe, or to the windows system folder. C:\Windows\system in 64 bit machinez. May need to be C:\Windows\system32 in 32 bit • Last semester’s class website has useful links, too: http://www.cse.wustl.edu/~gazihan/teaching/11fall/se313/
TODO:Reading • Read Chapter 3 from your book. • Quickly skim Chapter 4 from your book.