计算机图形渲染管线

一、图形编程的发展

1.早期的图形编程
在这里插入图片描述
2.图形标准的产生
在这里插入图片描述
3.固定管线
在这里插入图片描述

二、GPU渲染管线

渲染管线的功能:决定在给定虚拟相机、三维物体、光源、照明模式,以及纹理等诸多条件的情况下生成或绘制一幅二维图像的过程。
在这里插入图片描述
流水线中的四个阶段
在这里插入图片描述
1.应用阶段
将需要在屏幕上显示出来绘制的几何体,也就是绘制图元,比如点、线、矩阵等输入到绘制管线的下一阶段。具体包括图元的顶点数据,摄像机位置,光照纹理等参数。这里是在CPU中机型计算的。
在这里插入图片描述
2.几何阶段
需要将顶点数据最终进行屏幕映射。这其中需要:

  • 将各个图元放入到世界坐标系中,也就是进行模型变换;
  • 根据光照纹理等计算顶点处材质的光照着色效果;
  • 根据摄像机位置、取景范围进行观察变化和裁剪。
  • 最后进行屏幕映射,也就是把三维模型转换到屏幕坐标系中。
    (1)顶点着色器
    在这里插入图片描述
    (2)几何、曲面细分着色器
    在这里插入图片描述
    (3)裁剪
    在这里插入图片描述
    (4)屏幕映射
    在这里插入图片描述
    3.光栅化阶段
    光栅化部分的输入是经过变化和投影后的顶点,颜色以及纹理坐标,他的工作是给每个像素正确配色,一遍绘制整幅图形。由于输入的是三角形顶点,所以需要根据三角形表面的差异,逐个遍历三角形计算各个像素的颜色值。之后根据其可见性等进行合并得到最后的输出。
    在这里插入图片描述

(1)三角形设置:将顶点连接成三角形网格。
在这里插入图片描述
(2)三角形遍历:根据顶点信息,计算得到覆盖三角网格的像素位置。对应的这些像素就生成一个片元。而片元中每个像素的状态都是根据三角形三个顶点的信息进行插值得到的。
在这里插入图片描述
(3)片元着色:根据数据信息计算每个片元的颜色值。
在这里插入图片描述
4 逐片元操作:融合阶段
在这里插入图片描述

5 后处理
就是对这个数据做一些列如模糊,景深,高光等处理。

三、着色器编程

1.着色器语言
在这里插入图片描述
2.GLSL
OpenGL的着色器语言GLSL,也就是OpenGL Shading Language.

  • 顶点着色器Vertex Shader
  • 几何着色器Geometry Shader
  • 曲面细分着色器Tessellation Shader
  • 片元着色器Fragment Shader

在OpenGL中使用着色器的流程:

  • 创建着色器对象
  • 源码关联到着色器对象
  • 编译着色器
  • 创建一个程序对象
  • 将着色器对象关联到程序对象

与OpenGL的通信
在这里插入图片描述
3.EBO、VBO和VAO
EBO(Element Buffer Object)也叫做IBO(Index Buffer Object)索引缓冲对象。这个缓冲区主要用于存储顶点索引信息
在这里插入图片描述
VBO(Vertex Buffer Object)顶点缓冲区对象,主要用来存储顶点的各种信息。好处是模型的顶点信息放进VBO,这样每次画模型时,数据不在从CPU的势力范围内存里取,而是直接从GPU的显存里取,从而提高效率。
在这里插入图片描述
VAO(Vertex Array Object)顶点数组对象,是一个保存了所有顶点数据属性的状态组合,它存储了顶点数据的格式以及顶点数据所需要的VBO对象的引用。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈游戏开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值