## Please edit system and help pages ONLY in the moinmaster wiki! For more ## information, please see MoinMaster:MoinPagesEditorGroup. ##master-page:FrontPage #format wiki #language en #pragma section-numbers off = CS148 Wiki = This is the course wiki for cs148 - Introduction to Computer Graphics and Imaging http://www.graphics.stanford.edu/courses/cs148-07-winter/images/canon_eos.png http://www.graphics.stanford.edu/courses/cs148-07-winter/images/matting.png http://www.graphics.stanford.edu/courses/cs348b-06/images/donuts.jpg == Description == '''This course is being completely revised this year.''' This course provides a broad introduction to computer graphics and imaging. Topics: Input and output devices such as cameras and displays, graphics hardware and software, interactive techniques and the model-view-controller design pattern, typography and page layout, light and color representations, tone reproduction, image filtering, sampling, aliasing and antialiasing, compression, two- and three-dimensional geometry and transformations, modeling techniques including curves and surfaces, reflection models and illumination algorithms, and basic methods for animation. == Prerequisites == CS107, MATH 103. Programming using C/C++ and OpenGL and use of common graphics tools such as drawing programs and image processing toolkits. Masters students or students with a strong interest in continuing in graphics should take CS248. == Syllabus == || Week || Dates || Tue || Thu || || 1 || Jan 9, 11|| Introduction || Drawing || || 2 || Jan 16, 18 || Geometry || Transforms || || 3 || Jan 23, 25 || Typography|| Splines and Interpolation || || 4 || Jan 30, Feb 1 || Interaction || Model-View-Controller || || 5 || Feb 6, 8 || Light and Color || Digital Cameras || || 6 || Feb 13, 15|| Displays || Exposure and Tone Reproduction || || 7 || Feb 20, 22|| Mattes and Compositing || Filtering || || 8 || Feb 27, Mar 1 || Sampling: Aliasing and Antialiasing|| Compression || || 9 || Mar 6, 8 || Digital Video and HDTV || Modeling || || 10 || Mar 13, 15 || Rendering || Animation || == Information == * Time: 9:30-10:45am, Tu/Th, Winter 2007 * Room: Building 300, Room 300 * Course staff mailing list: cs148-wtr0607-staff@lists.stanford.edu * ["Instructors"] * ["Participants"] * ["Bibliography"] * ["Syllabus"] == Text and readings == There is one required text for the course. Peter Shirley[[BR]] ''Fundamentals of Computr Graphics, 2nd Edition''[[BR]] A. K. Peters, 2006. In addition, one of the following books on OpenGL are recommended. The first one, the primer, is easy to read and gives a good overview of OpenGL. The second book, often called 'The Red Book" is more detailed and covers more advanced features. These books are recomended- not required -because most of this information can be found online. In particular, the older 2nd Edition of the [http://www.opengl.org/documentation/red_book/ OpenGL Programming Guide] is freely available. Edward Angel[[BR]] ''OpenGL: A Primer, 2nd Edition''[[BR]] Addison-Wesley, 2005 Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis[[BR]] ''OpenGL Programming Guide, 5th Edition''[[BR]] Addison-Wesley, 2006 Additional readings will be assigned from journals and conference proceedings, and excerpts from conference tutorials. Only papers NOT available online will be handed out in class. Readings for each lecture are available from the ["Lectures"] page. == Assignments, exams and grading == This course will include 8 short assignments, one per week, in addition to a mid-term and a final. The assignments will be short and are meant to be completed in a few hours. Example code and data will be provided so that you can concentrate on the main conceptual ideas and not need to write a lot of code. In order to keep the workload managable, you are required to complete only 6 of the 8 assignments. The tentative list of assignments are:: Assignment 1: Drawing a mathematical object Assignment 2: Animating a clock escapement Assignment 3: Simple page layout system Assignment 4: Interactive zoom-and-pan over a large image using a gamepad Assignment 5: Bracketed exposure and high-dynamic range imaging Assignment 6: Matte extraction and compositing Assignment 7: Wavelet compression Assignment 8: Simple 3D screne Evaluation criteria: The 6 required programming assignments will count 60% of your grade. If you complete more than 6 assignments, your best 6 grades will be used for determining your final grade. The mid-term and the final will each count 20% of your grade. Collaboration: For the programming projects, you may discuss the assignment with friends, but you are expected to implement your own solutions. Late assignments: No late assignments will be accepted. Since you are allowed to skip two assignments, the late assignment will be considered one of your skipped assignments. == Hardware and software == You are welcome and encouraged to do class assignments on your own machines. OpenGL is readily available on linux, windows and mac platforms. The support code will be tested on each of these platforms. However, we cannot guarantee that all the support code will run on all platforms. If you do not wish to develop on a personal machine, you will have access to the 'myth' machines located on the second floor of [http://www.stanford.edu/services/cluster/ Sweet Hall]. These 3.2 Ghz DELL Dual-Xeon Linux boxes, named myth1 - myth29 are available for remote access. CS348b students are given non-exclusive priority access to these machines. All students with leland accounts automatically have accounts on these machines. Home directories on these machines are shared with other Stanford Computing Clusters using AFS. If you do not have a leland account, consult this [http://www.stanford.edu/home/computing/ids_and_accounts.shtml ITSS web page]. Registered students will get an extra 200MB of disk quota for the quarter. == How to use this site == Interesting starting points: * RecentChanges: see where people are currently working * WikiSandBox: feel free to change this page and experiment with editing * FindPage: search or browse the database in various ways * SyntaxReference: quick access to wiki syntax * SiteNavigation: get an overview over this site and what it contains A Wiki is a collaborative site, anyone can contribute and share: * Edit any page by pressing '''[[GetText(Edit)]]''' at the top or the bottom of the page * Create a link to another page with joined capitalized words (like WikiSandBox) or with {{{["quoted words in brackets"]}}} * Search for page titles or text within pages using the search box at the top of any page * See HelpForBeginners to get you going, HelpContents for all help pages. To learn more about what a WikiWikiWeb is, read about MoinMoin:WhyWikiWorks and the MoinMoin:WikiNature. Also, consult the MoinMoin:WikiWikiWebFaq. This wiki is powered by MoinMoin.