OpenGL中的基本概念--着色器、光栅化、渲染管线
基本概念在 OpenGL 中,设置好顶点数据,设置好着色器,调用 drawcall 函数,3D 图形就被绘制出来了。那么在这背后,GPU 做了什么工作呢?其实,从输入的顶点 3D 信息,到输出每个像素点的颜色信息,中间经过了很多步操作。这些操作按照一定的顺序构成了一条图形流水线(Graphics Pipeline),或者叫渲染管线。每个步骤的输入都依赖于前一步骤输出的结果。其中的步骤包括顶点处理(
文章目录
基本概念

在 OpenGL 中,设置好顶点数据,设置好着色器,调用 drawcall 函数,3D 图形就被绘制出来了。那么在这背后,GPU 做了什么工作呢?其实,从输入的顶点 3D 信息,到输出每个像素点的颜色信息,中间经过了很多步操作。这些操作按照一定的顺序构成了一条图形流水线(Graphics Pipeline),或者叫渲染管线。每个步骤的输入都依赖于前一步骤输出的结果。其中的步骤包括顶点处理(vertex processing)、图元装配(triangle assembly)、光栅化(rasterization)、片段处理(fragment processing)、测试和混合(testing and blending)几个关键步骤。
作者:旷视科技
链接:https://www.zhihu.com/question/29163054/answer/2298413553
来源:知乎
OpenGL中的渲染管线
OpenGL中的整个光栅化渲染管线如下:
- 输入规范:顶点是什么?
我们将要渲染的几何图形的类型以一种便于我们使用的光栅化过程的形式指定。
- 顶点着色器:移动到相机的视角
世界/物体空间→屏幕坐标:我们将输入几何的坐标从世界空间转换到与相机的透视对齐的新空间。
- 光栅化:三角形内有哪些像素?
光栅化涉及确定给定图元在屏幕上覆盖的像素,以便我们可以计算每个覆盖像素的颜色。
- 片段着色器:每个像素是什么颜色?
对于图元覆盖的每个给定像素,计算预期颜色。对于初学者,我们可能只是将每个像素着色为特定颜色,例如红色。稍后,片段着色器可用于执行更复杂的每像素计算,例如确定像素是亮还是暗的照明计算。
- 测试和混合:哪些像素是可见的?
在这一点上,我们需要执行所谓的深度测试来确定是否已经为更近的物体计算了给定的像素。对于任何给定的透视图,某些几何图形可能会被其前面的其他几何图形隐藏。在光栅化阶段之后,我们将在每个像素的基础上解决这个问题。
光栅化


参考文献
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐

所有评论(0)