GAMES 202 - 学习笔记(02)
Lecture 2: Recap of CG Basics
原课程视频链接以及官网
b站视频链接: https://www.bilibili.com/video/av887241709/.
课程官网链接: https://sites.cs.ucsb.edu/~lingqi/teaching/games202.html.
Recap of CG Basics
今天的课程会回顾和探讨以下几个内容:
- Basic GPU hardware pipeline GPU渲染管线
- OpenGL
- OpenGL Shading Language (GLSL) OpenGL的着色语言
- The Rendering Equation
- Calculus 微积分
Graphics (Hardware) Pipeline
渲染管线的回顾:
- Vertex Processing:对输入的顶点进行变换处理(MVP变换等),投影至屏幕空间;输入顶点数据通常存储在模型文件中,如 .obj 文件
- Triangle Processing:将顶点连接成三角形
- Rasterization:将三角形离散化为屏幕上的像素
- Fragment Processing:考虑通过法线、光照、纹理等因素对像素进行着色
- Framebuffer Operations:通过一系列测试(深度测试等)、alpha 混合等操作将像素最终成像在屏幕上
这套渲染管线能较好的处理直接光照,但是对间接光照(光线多次弹射)、阴影等问题仍然无法很好的进行处理
OpenGL
这里直接搬运 wiki 的 OpenGL 定义 https://zh.wikipedia.org/wiki/OpenGL. :
OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。
它是在 CPU 端通过一系列函数调用 GPU 管线的 API,它是跨平台的。
如何使用 OpenGL?
这里老师打了一个比方十分贴切,把使用 OpenGL的过程看成是画油画的过程
A. Place objects/models 放置模型
这个步骤指定了场景模型以及对应的变换
存储:在 OpenGL 里通过 VBO 在显存里存储对应的模型数据(显存划分的一块区域),存储格式和 .obj 文件类似
变换:在 OpenGL 里通过 glTranslate
, glMultMatrix
就可以直接构造出想要的变换矩阵
B. Set up an easel 设置画板
包括通过 View transformation 定义<