【译】GAMES101-现代计算机图形学入门(一):计算机图形学概述
1 什么是计算机图形学?What is Computer Graphics?[*]计算机图形学:操作计算机合成与操作视觉信息 The use of computers to synthesize and manipulate visual information
2 为什么学习计算机图形学 Why study Computer Graphics?
2.1 应用 Applications
[*]游戏 Video Games(写实、风格化衬着,看画面亮不亮可以浮现全局光照效果)
[*]电影 Movies(特效是图形学斗劲简单的应用,一些仿真效果往往很难实现,阿凡达的面部捕捉具有里程碑意义)
[*]动画 Animation(疯狂动物城中对毛发的模拟)
[*]设计 Design(CAD、在虚拟环境中预览视觉效果:汽车、家居)
[*]可视化 Visualization(科学、工程、医学、新闻图表)
[*]虚拟现实 Virtual Reality
[*]增强现实 Augmented Reality
[*]数字绘画 Digital Illustration(Photoshop)
[*]模拟 Simulation(精确的物理模拟仿真:尘土、黑洞对光线的影响)
[*]图形用户界面 Graphical User Interfaces(GUI)
[*]字体 Typography(运用了点阵和矢量,The Quick Brown Fox Jumps Over The Lazy Dog用尽了26个英文字母经常被拿来测试字体)
2.2 学习会遇到的挑战 Fundamental intellectual challenges
[*]缔造并与现实的虚拟世界互动 Creates and interacts with realistic virtual world
[*]需要理解各种物理世界的各个方面 Requires understanding of all aspects of physical world
[*]新的计算方式、显示方式、科技进步 New computing methods, displays, technologies
2.3 技术挑战 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
忘记以上原因——计算机图形学就是好!
Forget about the previous reasons——Computer Graphics is AWESOME!
3 课程主题 Course Topics
3.1 光栅化 Rasterization
[*]将几何图元(3D 三角形/多边形)投影到屏幕上
Project geometry primitives (3D triangles/polygons) onto screen
[*]将投影图元分化为片段(像素)
Break projected primitives into fragments (pixels)
[*]目前游戏的黄金尺度(实时应用)
Gold standards in Video Games (Real-time Applications)
3.2 曲线和网格 Curves and meshes
[*]如安在计算机图形学中暗示几何图形(曲面、概况细分时保持拓扑布局)
How to represent geometry in Computer Graphics
3.3 光线追踪 Ray Tracing
[*]从相机出发向每个像素发射射线(计算交点和暗影;继续反射光线直到击中光源)
shoot rays from the camera through each pixel(Calculate intersection and shading; Continue to bounce the rays till they hit light sources)
[*]动画/电影的黄金尺度(离线应用)目前已经有了实时光线追踪的算法
Gold standard in Animations/Movies (Offline Applaction)
3.4 动画/模拟 Animation/Simulation
[*]关键帧动画 Key frame Animation
[*]质量弹簧系统 Mass-spring System
3.5 GAMES101不包罗 GAMES101 is NOT about
[*]不包罗如何使用 OpenGL/DirectX/Vulkan 等API
[*]不包罗着色器的语法 The syntax of Shaders
[*]不包罗建模与游戏开发 3D modeling using Maya / 3DS MAX / Blender, or VR / game development using Unity / Unreal Engine
[*]不包罗计算机视觉、深度学习 Computer Vision / Deep Learning topics, e.g. XYZ-GAN
我们学的是图形学,不是图形学API!
We learn Graphics, not Graphics APIs!
3.6 计算机图形学与计算机视觉的关系
[*]个人理解 Personal Uderstanding
计算机图形学是从三维模型生成图像(衬着)或三维空间中的模拟(模拟);
计算机视觉是通过图像语义分割进行建模或依赖深度学习由图像生成其他图像
[*]各个学科、范围之间边界越来越模糊 No clear boundaries
4 参考 References
[*]保举虎书,第三版就可以
Steve Marschner and Peter Shirley, ”Fundamentals of Computer Graphics”, 3rd or later edition.
5 作业 Assignments
[*]大部门法式作业会提供框架和虚拟机映像 Mostly programming tasks with provided code skeletons and virtual machine image
[*]每周一般不超过20行代码 usually no more than 20 lines of code per week
[*]使用C++语言
6 使用集成开发环境 Use An IDE!
[*]IDE: 集成开发环境 Integrated Development Environment
[*]辅佐你解析整个项目并提供有关成员函数的语法/用法等的提示Helps you parse a entire project and gives hints on syntax / usages of member functions, etc.
[*]保举的IDE
[*]Visual Studio (Windows only) / Visual Studio Code (cross platform)
[*]Qt Creator (personal)
[*]不保举的IDE Not Recommended IDEs (for C++ programming)
[*]CLion, Eclipse
[*]Sublime Text, Vi / Vim, Emacs (not even IDEs)
页:
[1]