最爱午后红茶

Course Topics

日期图标
2023-03-09

Graphics’ Dependencies

  • Basic mathematics
    • Linear algebra, calculus, statistics
  • Basic physics
    • Optics, Mechanics
  • Misc
    • Signal processing
    • Numerical analysis
  • And a bit of aesthetics

Course Topics (mainly 4 parts)

  • Rasterization
  • Curves and Meshes
  • Ray Tracing
  • Animation / Simulation

光栅化 (Rasterization)

  • Project geometry primitives (3D triangles / polygons) onto the screen
  • Break projected primitives into fragments (pixels)
  • Gold standard in Video Games (Real-time Applications)

把三维空间的几何形体显示在屏幕上,这就是光栅化。这是游戏或实时计算机图形学的一个主要应用。实时在不同的领域有不同的定义,在计算机图形学里面,我们认为每秒能生成 30 帧画面就可以认为是实时,否则就叫离线(offline)。

投影成像(Projection imaging)

图十七:https://vispy.org/modern-gl.html

光栅化(Rasterization)

图十八:https://commons.wikimedia.org/wiki/Main_Page

曲线和曲面 (Curves and Meshes)

  • How to represent geometry in Computer Graphics
贝塞尔曲线(Bezier curve)

图十九:Bezier Curve (https://en.wikipedia.org/wiki/B%C3%A9zier_curve)

曲面(Curved surface)

图二十:Catmull-Clark subdivision (https://commons.wikimedia.org/wiki/Main_Page)

光线追踪 (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)

光线追踪在动画和电影里面广泛使用,是图形学里面的一个 trade off (权衡), 它慢,但有好处,它能生成非常真实的画面。人都是贪婪的,继光线追踪后,人们继续做出优化,做出了效果很好,速度又比较快的实时光线追踪

光线追踪(Ray tracing)

图二十一:https://en.wikipedia.org/wiki/Ray_tracing_(graphics)

动画/模拟仿真 (Animation/Simulation)

  • Key frame Animation
  • Mass-spring System
质点弹簧(Mass spring)

图二十二:模拟弹簧 (https://cs184.eecs.berkeley.edu/sp18/lecture/simulation/slide_011)

布料(cloth)

图二十三:模拟布料运动 (这本来是个动画,我这截了图片看不了效果: https://cs184.eecs.berkeley.edu/sp18/lecture/simulation/slide_010)

NOTE

  • 这门课不会说 OpenGL、DirectX 或 Vulkan 这些图形接口 api 或图形库相关的知识,而是让大家在学完后能明白从三维到二维是怎样投影的,如何才能把画面真正显示在屏幕上。在学习了这些知识之后,就能比较容易地掌握 OpenGL、DirectX 或 Vulkan 的使用。
  • 这门课也不会说三维的建模和游戏相关的知识,比如 UE 或 Unity 引擎等。这些属于图形学的应用相关。
  • 这门课也不会过多地提及计算机视觉(Computer Vision - CV)。

关于计算机视觉图形学的区别,可以用下图简单理解下(但随着科学发展,学科之间的联系越来越紧密,边界越来越模糊):

计算机视觉与计算机图形学

图二十四:The difference between CG and CV

  • 计算机图形学,可以理解为是从 Model 到 Image,即把三维空间的模型转化成一个图,特指渲染。
  • 计算机视觉,可以理解为从 Image 到 Model,即从一张图,如何识别出它里面的不同模型。
* 未经同意不得转载。