LearnOpenGL§

欢迎来到图形学!!!

接下来我开始跟着 LearnOpenGL 教程正式入坑图形学啦~

LearnOpenGL 中文

Hello Window§

配置部分解决完成的话,运行这个示例代码应该很简单。

代码整体不难理解,都是对各自函数的解释,我们这里就continue了。

HelloWindow

Hello Window

Hello Triangle§

说实话,有点上强度了,不过读好几遍代码终于搞懂了。

编译着色器和链接部分比葫芦画瓢就行。

VAO,VBO,EBO,的理解就十分重要了。

教程本来就是翻译的刚开始有点看不懂,复制一些代码让GPT解释了一下才勉强理解了它们的概念。

简单来讲,你每一次让GPU绘制的任务都应该由VAO,VBO,EBO组合,当然EBO可以不需要。

组合的时候就照抄给的代码就行。VAO存储的是你对该任务的各种配置,VBO就啥都不管仅仅存储顶点的数据就行了,EBO存到就是你任务里的每个个体都是由VBO的那几个顶点组成的。

刚开始要给它们绑定到一块,代表它们是一家人了,之后调用这个任务时,就只找它们家长VAO就行了。

对于绑定的代码部分也可以通俗理解成,我们有一个小屋,刚开始人们都不在屋里,所以要把人们叫过来,到一个屋子里就是一家人了。

绑定0意味着,让这个家庭的某个职位的成员滚蛋。

HelloTriangle

Hello Triangle1 Hello Triangle2
  1. HelloTriangle_homework1

  2. HelloTriangle_homework2

  3. HelloTriangle_homework3

Shaders§

这一节难度较低,开始教了一部分`GLSL`的用法,接下来展示了如何让程序调用函数来与着色器交互。

之后就更简单了,封装一个着色器类便于使用,毕竟着色器编译链接部分很板。

Shaders1

Shaders1

Shaders2

Shaders2

Shaders3 Shaders4

Shaders34
  1. Shaders_homework1

  2. Shaders_homework2

  3. Shaders_homework3

Textures§

代码实际运行效果不是下方图片哦。

我自己改了一部分代码,教程的图片好难看(⊙﹏⊙),还是我的流萤好看。

Textures1

Textures2

Textures_流萤

原画链接

  1. Textures_homework1

  2. Textures_homework2

  3. Textures_homework3

  4. Textures_homework4

Transformations§

这一节讲了不少线性代数的知识。

有一说一,我不是很喜欢,但没办法还得学。

作业我没怎么看,之后用到再翻找吧。。。

Transformations

Transformations
  1. Transformations_homework1

  2. Transformations_homework2

Coordinate Systems§

这一个个系数矩阵有点迷糊呀,当然我是指具体实现方面。

它们各自的功能还是很好理解的。

\[V_{clip} = M_{projection} \cdot M_{view} \cdot M_{model} \cdot V_{local}\]

CoordinateSystems1

Coordinate Systems1

CoordinateSystems2

Coordinate Systems2

CoordinateSystems3

Coordinate Systems3
  1. CoordinateSystems_homework

Camera§

逻辑不难理解,所以代码直接跳到最后一部分了。

Camera

Camera_class

Camera_useclass

  1. Camera_homework1

  2. Camera_homework2

Review§