1 20200211 / 20210703 Overview of CG
- Topics
What is CG
The use of computers to synthesize and manipulate visual information.
Why study
Application
- Video Games
- 什么是好的画面 - 看画面是否足够亮 - 全局光照做得好不好
- 只狼
- 无主之地3
- 什么是好的画面 - 看画面是否足够亮 - 全局光照做得好不好
- Movies
- The Matrix
- Special Effects
- 特效是图形学中最简单的一类 - 平常见不到 - 做得不对也不会觉得意外
- 最困难的是最常见的
- The Matrix
- Avatar
- 引入了面部/动作捕捉
- Animations
- Zootopia - 疯狂动物城
- Frozen 2 - 冰雪奇缘 2
- Design
- Autodesk Gallary
- CAD
- 环境模拟
- 碰撞检测
- Ikea
- Visualization
- Science
- Engineering
- Medicine
- Journalism
- Virtual Reality
- Augmented Reality
- Digital Illustration
- PS
- Simulation
- The Dust Bowl phenomena
- Black hole from Interstellar
- Graphical User Interfaces - GUI
- Typography - 字体
- The Quick Brown Fox Jumps Over The Lazy Dog - 字体测试中的常见句
- 矢量图
Fundamental Intellectual Challenges
- Creates and interacts with realistic virtual world
- Requires understanding of all aspects of physical world
- New computing methods, displays, technologies
Technical Challenges
- Math of (perspective) projections, curves, surfaces
- Physics of lighting and shading
- Representing / operating shapes in 3D
- Animation / simulation
3D graphics software programming and hardware
WHY - CG is AWESOME
Course Topics (mainly 4 parts)
- Rasterization
- Project geometry primitives (3D triangles / polygons) onto the screen
- Break projected primitives into fragments (pixels)
- Gold standard in Video Games (Real-time (30fps) Applications)
- Curves and Meshes
- How to represent geometry in Computer Graphics
- Ray Tracing
- Shoot rays from the camera though each pixel
- Calculate intersection and shading
- Continue to bounce the rays till they hit light sources
- Gold standard in Animations / Movies (Offline Applications)
- trad off - 慢但效果好
- 两个都要 - 实时光线追踪
- Animation / Simulation
- Key frame Animation
- Mass-spring System
GAMES101 is NOT about
- Using OpenGL / DirectX / Vulcan
- The syntax of Shaders
- 3D modeling using Maya / 3DS MAX / Blender, or VR / game development using Unity / Unreal Engine (where can I learn them?)
- Computer Vision / Deep Learning topics, e.g. XYZ-GAN (where can I learn them?)
- CV - 一切需要猜测的内容
- We learn Graphics, not Graphics APIs!
- After this course, you’ll be able to learn these by yourself (I promise)
CG V.S. CV
Course Logic
General Information
- Modern Course
- Comprehensive but
without hardware programming! - Pace/ contents subject to change
- Comprehensive but
- Course Website
- http://www.cs.ucsb.edu/~lingqi/teaching/games101.html
- Has all the needed information
- Syllabus, slides, reading materials, etc.
- Course slides and (pre)-reading materials
- No Required Textbooks
- Reading materials (if any) will available online before lectures
- Lecture slides will be available after class
- Most recommended reference
- Steve Marschner and Peter Shirley, “Fundamentals of Computer Graphics”, 3rd or later edition.
- Sign up on our BBS for discussion
(http://games-cn.org/forums/forum/games-online-course-forum/)
Assignments
- Mostly programming tasks with provided code skeletons and virtual machine image
- Weekly (usually no more than 20 lines of code per week)
- Language: C++
Submission
- Submit your project by 11:59PM on/before the due dates (strictly enforced)
- Feedback will be provided in a week
- Assignment Submission Website
(http://www.smartchair.org/GAMES2020Course-YLQ/) - No Exams
- Course Project / Final Project
- Starting midway of this course
- References will be provided, but you decide the topic
- Best work will be posted online for showing off
Use An IDE!
- IDE: Integrated Development Environment
- Helps you parse a entire project
- And gives hints on syntax / usages of member functions, etc.
- Recommended IDEs
- Visual Studio (Windows only) / Visual Studio Code (cross platform)
- Qt Creator (personal)
- Not Recommended IDEs (for C++ programming)
- CLion (慢), Eclipse (代码分析不好)
- Sublime Text, Vi / Vim, Emacs (not even IDEs)
- Work alone for regular assignments
- no copy-pasting from any other sources
- Do not publish your code (on Github, etc.) for assignments using our skeleton code
- Do not post your solution online
- Discussion / explanation is welcomed