Review
祝贺你完成了“开始入门”章节的结尾。现在你应该能够创建一个窗口,创建和编译着色器,发送顶点数据通过缓冲你的着色器对象或制服,画对象,使用纹理,理解向量和矩阵和结合所有这些知识来创建一个完整的3 d场景拿着相机到处玩。
唷,我们在最后几章中学到了很多东西。试着利用你所学到的知识,做一些实验,或者对一些问题提出你自己的想法和解决方案。一旦你觉得你掌握了我们所讨论的所有材料,就该进入下一个照明章节了。
Glossary
OpenGL
: 图形API的正式规范,定义每个函数的布局和输出。GLAD
: 一个扩展加载库,为我们加载和设置所有OpenGL的函数指针,这样我们就可以使用所有(现代)OpenGL的函数。Viewport
:我们渲染的2D窗口区域。Graphics Pipeline
:在最终成为屏幕上的一个或多个像素之前,必须遍历整个流程顶点。Shader
:一个运行在显卡上的小程序。图形管道的几个阶段可以使用用户制作的着色器来替代现有的功能。Vertex
: 表示单个点的数据集合。Normalized Device Coordinates
:规范化设备坐标:在剪辑坐标上执行透视分割后,你的顶点最终进入的坐标系统。在NDC中,所有在-1.0到1.0之间的顶点位置都不会被丢弃或裁剪,最终是可见的。Vertex Buffer Object
: 在GPU上分配内存并存储图形卡使用的所有顶点数据的缓冲对象。Vertex Array Object
: 存储缓冲区和顶点属性状态信息。Element Buffer Object
: 在GPU上存储索引以进行索引绘制的缓冲对象。Uniform
: 一种特殊类型的全局GLSL变量(着色程序中的每个着色器都可以访问这个统一变量),只需要设置一次。Texture
: 在着色器中使用的一种特殊类型的图像,通常包裹在物体周围,赋予物体非常详细的错觉。Texture Wrapping
: 定义了当纹理坐标超出范围时OpenGL应该如何采样纹理的模式:(0,1)。Texture Filtering
: 定义了当有几个纹理(纹理像素)可供选择时OpenGL应该如何采样纹理的模式。这通常发生在纹理被放大的时候。Mipmaps
: 存储更小的纹理版本,根据与观察者的距离选择合适的大小。stb_image
:图像加载库。Texture Units
:允许在一个着色程序中绑定多个纹理,每个纹理都是一个不同的纹理单位。Vector
: 一种数学实体,在任何维度上定义方向和/或位置。Matrix
:具有有用的变换性质的数学表达式的矩形数组。GLM
:为OpenGL定制的数学库。Local Space
: 对象开始的空间。所有相对于物体原点的坐标。World Space
: 所有坐标相对于一个全局原点。View Space
: 从摄像机的视角所看到的所有坐标。Clip Space
: 所有的坐标,从摄像机的角度看,但应用了投影。这是顶点坐标应该结束的空间,作为顶点着色器的输出。其余的工作由OpenGL完成(裁剪/透视分割)。Screen Space
:从屏幕上看到的所有坐标。坐标范围从0到屏幕宽度/高度。LookAt
: 一种特殊类型的视图矩阵,它创建了一个坐标系统,其中所有的坐标都被旋转和转换,这样用户就可以从一个给定的位置观察一个给定的目标。Euler Angles
::定义为偏航、俯仰和滚转,允许我们从这三个值形成任何三维方向向量。