《计算机图形学编程》笔记——第四章

《计算机图形学编程》笔记——第四章

  • 管理3D图形数据
    • 关键模块介绍
      • 1. 缓冲区
      • 2. 统一变量
      • 3. 顶点属性插值
      • 4. 模型-视图
      • 5. 矩阵堆栈
    • 代码及结果
    • BUG
    • 引用
    • 碎碎念

管理3D图形数据

使用OpenGL渲染3D图形通常需要将若干数据集发送给OpenGL着色器管线。举个例子:想要绘制一个简单的3D对象,比如一个立方体,至少需要发送以下项目:

  1. 立方体模型的顶点;
  2. 控制立方体在3D空间中朝向表现的变换矩阵;
  3. 把数据发送给OpenGL管线。
    3.1. 通过顶点属性的缓冲区。
    3.2. 直接发送给统一变量。

关键模块介绍

渲染3D图形中需要频繁用到缓冲区、统一变量、顶点属性插值、模型-视图和透视矩阵、矩阵堆栈等关键模块。因此这一讲对这几个部分进行简单的总结。

1. 缓冲区

想要绘制一个对象,它的顶点数据需要被发送给顶点着色器。通常顶点数据会被放在一个缓冲区中,并把这个缓冲区和着色器中声明的顶点属性相关联。
OpenGL中提供了顶点缓冲对象(VBO) 和 顶点数组对象 (VAO),其中VBO就是缓冲区数组,VAO用于组织缓冲区,让缓冲区在复杂场景中更容易操控。
在应用中,我们可以声明多个缓冲区,并在各个缓冲区中绘制不同的模型。

2. 统一变量

统一变量采用“Uniform”关键字声明变量,可以让c++程序和顶点着色器进行信息交互,在渲染的过程中实现动态调整。

3. 顶点属性插值

通常我们采用顶点着色器是对单个顶点进行操作,而在光栅化的过程中我们需要对片段进行着色,于是

你可能感兴趣的:(图形学,图形学,opengl)