OpenGL 着色器学习笔记

https://learnopengl-cn.readthedocs.io/zh/latest/01%20Getting%20started/04%20Hello%20Triangle/

着色器(Shader)

图形渲染管线接受一组3D坐标,然后把它们转变为你屏幕上的有色2D像素输出。图形渲染管线可以被划分为几个阶段,每个阶段将会把前一个阶段的输出作为输入。所有这些阶段都是高度专门化的(它们都有一个特定的函数),并且很容易并行执行。正是由于它们具有并行执行的特性,当今大多数显卡都有成千上万的小处理核心,它们在GPU上为每一个(渲染管线)阶段运行各自的小程序,从而在图形渲染管线中快速处理你的数据。这些小程序叫做着色器(Shader)。
OpenGL着色器是用OpenGL着色器语言(OpenGL Shading Language, GLSL)写成的

OpenGL 着色器学习笔记_第1张图片
image.png

一个顶点(Vertex)是一个3D坐标的数据的集合
顶点数据是用顶点属性(Vertex Attribute)表示的
想把数据绘制成什么类型,由OpenGL用图元(Primitive)属性来表示把数据绘制成点线面。(GL_POINTS、GL_TRIANGLES、GL_LINE_STRIP。)

顶点渲染流程

顶点着色器(Vertex Shader) ->图元装配(Primitive Assembly) -> 几何着色器(Geometry Shader) ->光栅化阶段(Rasterization Stage) ->供片段着色器(Fragment Shader)使用的片段(Fragment) -> 裁切(Clipping) -> Alpha测试和混合(Blending)阶段
OpenGL中的一个片段是OpenGL渲染一个像素所需的所有数据。

片段着色器的主要目的是计算一个像素的最终颜色,这也是所有OpenGL高级效果产生的地方。通常,片段着色器包含3D场景的数据(比如光照、阴影、光的颜色等等),这些数据可以被用来计算最终像素的颜色。

对于大多数场合,我们只需要配置顶点和片段着色器就行了

顶点输入

OpenGL 着色器学习笔记_第2张图片
image.png

你可能感兴趣的:(OpenGL 着色器学习笔记)