计算机图形学
简介
该课程由大连理工大学数学科学学院计算数学系开设,任课教师为曹俊杰讲师(个人主页)。 授课32学时(上机24学时). 内容涵盖光栅化rasterization和光线追踪等渲染算法,3D几何建模的数学概念和算法,计算机动画算法, 应用为主,理论为辅,提倡大家多动手实验,积极解决实际问题。 通过这门课程的学习,你将会学习到计算机视觉和计算机图形学的基本知识,学习和掌握一定的编程技能。
Homework
目标
By the end of the course, the student must be able to:
- Explain and apply the fundamental mathematical concepts of computer-based image and geometry synthesis (synthesis data for training deep learning; basis of VR and simulation)
- Implement a basic rendering pipeline based on rasterization and raytracing
- Design and implement basic computer animation algorithms
- Integrate individual components into a complete graphics application
- Coordinate a team during a software project?
Prerequisites: linear algebra, C/C++ programming, and Data Structures
进阶
You may want to browse interesting research papers in the top avenues in graphics (Siggraph, Siggraph Asia, ACM TOG, Eurographics) and computer vision (CVPR, ICCV, ECCV), as well as some more specialized but equally excellent conferences (SGP, SCA, 3DV).
作业提交
作业(Assignments): 根据指定内容,编写程序,运行程序,形成文档和动画。直接从网络或者他人处拷贝的0分! 举个栗子
按照Syllabus的due对应周的周日晚23:50之前提交电子版(Submit after deadline: -10%)
打印版,统一在结课2周内的周日晚23:50之前提交,要求参见第一次课的PPT。
2人1组;4.20作业汇报(每组5分钟,用PPT,可展示动画等, …);
上课时间
上课时间 | 上课地点 |
---|---|
周一15:35--17:10(1-8周) | 综356 |
周三13:30--15:05 (1-8周) | 综211 |
上机
3-8周 周一 晚18:00-21:00 |
C座 c-0119 |
Syllabus
Date | Topic | Material | Notes |
---|---|---|---|
2.25 | Introduction | introduction, history, application |
1.
A Short Introduction to Computer Graphics; 2. Introduction of FCG4 |
2.27 | Raster Image, Dithering | Raster image, Dithering, | Raster image of FCG4 |
3.4 | Geometry Representation | Introduction, Implicit, Explicit, Mesh, Conversion, Point1, Point2 | Data Structures for Graphics in FCG4 |
3.6 | Ray tracing, c++ | Ray tracing; c++ | 1.
[hw1 out] 2. Ray tracing & Surface shading in FCG4 |
ref: lab01_ConsoleApplication | |||
3.11 | Transformations |
Transformation | |
3.13 | viewing | Viewing | |
3.18 | Rasterization | Rasterization | |
3.20 | OpenGL 1 | GL Graphics pipeline 1; | |
Ex3: hierarchical modeling; Hw1; | |||
3.25 | OpenGL 2 | GL Graphics pipeline 2 | [Hw2 Out] |
3.27 | Curves 1 | Interpolating Curve | |
4.1 | Curve 2 | Approximating Curve | [Hw1 Due] |
4.3 | Designing Surface | Surfaces | |
4.8 | Texture mapping, scene graphs | texture, scene graphs | |
4.10 | Geometry Queries | Queries | |
[Hw2 Due] | |||
4.15 | Spatial Data Structures | Structures | |
4.17 | Animation | Introduction; Spatial and Skeletal Deformations; IK | |
[Hw3 Due] |
References
- [book, FCG4]: Fundamentals of Computer Graphics, 4th Edition, 2016. has slides.
- [book]: Introduction to Computer Graphics v1.2 2018, by David J. Eck, Free online, with live, interactive demos with webgl.
- [Book & Tutorial, GL]: Modern OpenGL Guide, excellent! elegent!!
- ...
- [course]: CSCI-GA 2270-001 Graduate Computer Graphics, 2018 @ NYU by Daniele Panozzo
- [course]: CS4620 (5620) Introduction to Computer Graphics, 2018 @ Cornell by Steve Marschner
- [course]: CSCI 420: Computer Graphics FS 2018, by Hao Li, cool assignments
- [course]: CMU 15-462/662 COMPUTER GRAPHICS (Fall 2018) by Keenan Crane
- ...
- [course, advance]: CS5625 Interactive Computer Graphics, 2019 @ Cornell by Steve Marschner.
- [course]: CS 148 Introduction to Computer Graphics and Imaging (Fall 2018) @ stanford
- [course, Animation]: 15-464 / 15-664: Technical Animation (Spring 2019) @ CMU, by Nacy Pollard
- [course]: CSE 5542: Real-Time Rendering @ ohio 2013
- ...
- [tutorial, GL]: Learn OpenGL (fundamental OpenGL tutorials and notes, practical techniques); 中文网站。使用了GLFW,而不是GLUT
- [tutorial, GL]: Modern OpenGL Tutorials, good explanation and code; 中文网站。 使用了FreeGLUT和GLEW,但是前面的code中,FreeGLUT的函数和glut的一样,可以照用。 我们在下边的Resources部分提供这两个库的visual c++ 2015, win64环境下的下载。
- [tutorial, GL]: OpenGL notes from Song Ho, advance, awesome explanation and code
- ...
- [tutorial]: MatLab
- [tutorial]: C++/C
- [tutorial]: Python
Resources
- git - 简明指南
- GUI for git: GitKraken is better than Sourcetree
- Markdown Tutorial
- [library, OpenGL] precomiiled FreeGLUT 和GLEW for visual c++ 2015 in win64 mode.
- [library, image] CImg: C++ Template Image Processing Toolkit (useful for homework), How to use CImg?
- ...
- [Coding on the web] Create 3D webpage content using Processing, a popular visual programming language for web using OpenGL integration for accelerated 2D and 3D
- [Coding on the web] KHAN ACADEMY: Create project using JavaScript & ProcessingJS (sister project of the above popular Processing visual programming language) library, Create Webpage, Create SQL script
- ...
- [code, tool]: Open source project for ray tracing
- [code, tool]: G3D: a modern 3d engine
- ...
- [code]: Modern C++11 library and programs by Hoppe that demonstrate mesh processing techniques in computer graphics published at ACM SIGGRAPH in 1992–1998